-#ifndef LTTNG_VIEWER_H
-#define LTTNG_VIEWER_H
+#ifndef LTTNG_VIEWER_ABI_H
+#define LTTNG_VIEWER_ABI_H
/*
* Copyright (C) 2013 - Julien Desfossez <jdesfossez@efficios.com>
LTTNG_VIEWER_GET_PACKET = 5,
LTTNG_VIEWER_GET_METADATA = 6,
LTTNG_VIEWER_GET_NEW_STREAMS = 7,
+ LTTNG_VIEWER_CREATE_SESSION = 8,
};
enum lttng_viewer_attach_return_code {
LTTNG_VIEWER_ATTACH_UNK = 3, /* The session ID is unknown. */
LTTNG_VIEWER_ATTACH_NOT_LIVE = 4, /* The session is not live. */
LTTNG_VIEWER_ATTACH_SEEK_ERR = 5, /* Seek error. */
+ LTTNG_VIEWER_ATTACH_NO_SESSION = 6, /* No viewer session created. */
};
enum lttng_viewer_next_index_return_code {
LTTNG_VIEWER_NEW_STREAMS_OK = 1, /* If new streams are being sent. */
LTTNG_VIEWER_NEW_STREAMS_NO_NEW = 2, /* If no new streams are available. */
LTTNG_VIEWER_NEW_STREAMS_ERR = 3, /* Error. */
+ LTTNG_VIEWER_NEW_STREAMS_HUP = 4, /* Session closed. */
+};
+
+enum lttng_viewer_create_session_return_code {
+ LTTNG_VIEWER_CREATE_SESSION_OK = 1,
+ LTTNG_VIEWER_CREATE_SESSION_ERR = 2,
};
struct lttng_viewer_session {
struct lttng_viewer_stream {
uint64_t id;
uint64_t ctf_trace_id;
- int metadata_flag;
+ uint32_t metadata_flag;
char path_name[LTTNG_VIEWER_PATH_MAX];
char channel_name[LTTNG_VIEWER_NAME_MAX];
} __attribute__((__packed__));
char stream_list[];
} __attribute__((__packed__));
-#endif /* LTTNG_VIEWER_H */
+struct lttng_viewer_create_session_response {
+ /* enum lttng_viewer_create_session_return_code */
+ uint32_t status;
+} __attribute__((__packed__));
+
+#endif /* LTTNG_VIEWER_ABI_H */