Re-format new C++ files
[babeltrace.git] / src / plugins / ctf / lttng-live / lttng-viewer-abi.hpp
CommitLineData
7cdc2bab 1/*
0235b0db 2 * SPDX-License-Identifier: MIT
7cdc2bab 3 *
0235b0db
MJ
4 * Copyright (C) 2013 Julien Desfossez <jdesfossez@efficios.com>
5 * Copyright (C) 2013 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 * Copyright (C) 2013 David Goulet <dgoulet@efficios.com>
7cdc2bab
MD
7 */
8
0235b0db
MJ
9#ifndef LTTNG_VIEWER_ABI_H
10#define LTTNG_VIEWER_ABI_H
11
3c22a242 12#include <stdint.h>
578e048b 13#include "compat/limits.h"
7cdc2bab 14
4164020e
SM
15#define LTTNG_VIEWER_PATH_MAX 4096
16#define LTTNG_VIEWER_NAME_MAX 255
17#define LTTNG_VIEWER_HOST_NAME_MAX 64
7cdc2bab
MD
18
19/* Flags in reply to get_next_index and get_packet. */
4164020e
SM
20enum
21{
22 /* New metadata is required to read this packet. */
23 LTTNG_VIEWER_FLAG_NEW_METADATA = (1 << 0),
24 /* New stream got added to the trace. */
25 LTTNG_VIEWER_FLAG_NEW_STREAM = (1 << 1),
7cdc2bab
MD
26};
27
4164020e
SM
28enum lttng_viewer_command
29{
30 LTTNG_VIEWER_CONNECT = 1,
31 LTTNG_VIEWER_LIST_SESSIONS = 2,
32 LTTNG_VIEWER_ATTACH_SESSION = 3,
33 LTTNG_VIEWER_GET_NEXT_INDEX = 4,
34 LTTNG_VIEWER_GET_PACKET = 5,
35 LTTNG_VIEWER_GET_METADATA = 6,
36 LTTNG_VIEWER_GET_NEW_STREAMS = 7,
37 LTTNG_VIEWER_CREATE_SESSION = 8,
38 LTTNG_VIEWER_DETACH_SESSION = 9,
7cdc2bab
MD
39};
40
4164020e
SM
41enum lttng_viewer_attach_return_code
42{
43 LTTNG_VIEWER_ATTACH_OK = 1, /* The attach command succeeded. */
44 LTTNG_VIEWER_ATTACH_ALREADY = 2, /* A viewer is already attached. */
45 LTTNG_VIEWER_ATTACH_UNK = 3, /* The session ID is unknown. */
46 LTTNG_VIEWER_ATTACH_NOT_LIVE = 4, /* The session is not live. */
47 LTTNG_VIEWER_ATTACH_SEEK_ERR = 5, /* Seek error. */
48 LTTNG_VIEWER_ATTACH_NO_SESSION = 6, /* No viewer session created. */
7cdc2bab
MD
49};
50
4164020e
SM
51enum lttng_viewer_detach_session_return_code
52{
53 LTTNG_VIEWER_DETACH_SESSION_OK = 1,
54 LTTNG_VIEWER_DETACH_SESSION_UNK = 2,
55 LTTNG_VIEWER_DETACH_SESSION_ERR = 3,
7cdc2bab
MD
56};
57
4164020e
SM
58enum lttng_viewer_next_index_return_code
59{
60 LTTNG_VIEWER_INDEX_OK = 1, /* Index is available. */
61 LTTNG_VIEWER_INDEX_RETRY = 2, /* Index not yet available. */
62 LTTNG_VIEWER_INDEX_HUP = 3, /* Index closed (trace destroyed). */
63 LTTNG_VIEWER_INDEX_ERR = 4, /* Unknow error. */
64 LTTNG_VIEWER_INDEX_INACTIVE = 5, /* Inactive stream beacon. */
65 LTTNG_VIEWER_INDEX_EOF = 6, /* End of index file. */
7cdc2bab
MD
66};
67
4164020e
SM
68enum lttng_viewer_get_packet_return_code
69{
70 LTTNG_VIEWER_GET_PACKET_OK = 1,
71 LTTNG_VIEWER_GET_PACKET_RETRY = 2,
72 LTTNG_VIEWER_GET_PACKET_ERR = 3,
73 LTTNG_VIEWER_GET_PACKET_EOF = 4,
7cdc2bab
MD
74};
75
4164020e
SM
76enum lttng_viewer_get_metadata_return_code
77{
78 LTTNG_VIEWER_METADATA_OK = 1,
79 LTTNG_VIEWER_NO_NEW_METADATA = 2,
80 LTTNG_VIEWER_METADATA_ERR = 3,
7cdc2bab
MD
81};
82
4164020e
SM
83enum lttng_viewer_connection_type
84{
85 LTTNG_VIEWER_CLIENT_COMMAND = 1,
86 LTTNG_VIEWER_CLIENT_MESSAGE = 2,
7cdc2bab
MD
87};
88
4164020e
SM
89enum lttng_viewer_seek
90{
91 /* Receive the trace packets from the beginning. */
92 LTTNG_VIEWER_SEEK_BEGINNING = 1,
93 /* Receive the trace packets from now. */
94 LTTNG_VIEWER_SEEK_LAST = 2,
7cdc2bab
MD
95};
96
4164020e
SM
97enum lttng_viewer_new_streams_return_code
98{
99 LTTNG_VIEWER_NEW_STREAMS_OK = 1, /* If new streams are being sent. */
100 LTTNG_VIEWER_NEW_STREAMS_NO_NEW = 2, /* If no new streams are available. */
101 LTTNG_VIEWER_NEW_STREAMS_ERR = 3, /* Error. */
102 LTTNG_VIEWER_NEW_STREAMS_HUP = 4, /* Session closed. */
7cdc2bab
MD
103};
104
4164020e
SM
105enum lttng_viewer_create_session_return_code
106{
107 LTTNG_VIEWER_CREATE_SESSION_OK = 1,
108 LTTNG_VIEWER_CREATE_SESSION_ERR = 2,
7cdc2bab
MD
109};
110
4164020e
SM
111struct lttng_viewer_session
112{
113 uint64_t id;
114 uint32_t live_timer;
115 uint32_t clients;
116 uint32_t streams;
117 char hostname[LTTNG_VIEWER_HOST_NAME_MAX];
118 char session_name[LTTNG_VIEWER_NAME_MAX];
7cdc2bab
MD
119} __attribute__((__packed__));
120
4164020e
SM
121struct lttng_viewer_stream
122{
123 uint64_t id;
124 uint64_t ctf_trace_id;
125 uint32_t metadata_flag;
126 char path_name[LTTNG_VIEWER_PATH_MAX];
127 char channel_name[LTTNG_VIEWER_NAME_MAX];
7cdc2bab
MD
128} __attribute__((__packed__));
129
4164020e
SM
130struct lttng_viewer_cmd
131{
132 uint64_t data_size; /* data size following this header */
133 uint32_t cmd; /* enum lttcomm_relayd_command */
134 uint32_t cmd_version; /* command version */
7cdc2bab
MD
135} __attribute__((__packed__));
136
137/*
138 * LTTNG_VIEWER_CONNECT payload.
139 */
4164020e
SM
140struct lttng_viewer_connect
141{
142 /* session ID assigned by the relay for command connections */
143 uint64_t viewer_session_id;
144 uint32_t major;
145 uint32_t minor;
146 uint32_t type; /* enum lttng_viewer_connection_type */
7cdc2bab
MD
147} __attribute__((__packed__));
148
149/*
150 * LTTNG_VIEWER_LIST_SESSIONS payload.
151 */
4164020e
SM
152struct lttng_viewer_list_sessions
153{
154 uint32_t sessions_count;
155 char session_list[]; /* struct lttng_viewer_session */
7cdc2bab
MD
156} __attribute__((__packed__));
157
158/*
159 * LTTNG_VIEWER_ATTACH_SESSION payload.
160 */
4164020e
SM
161struct lttng_viewer_attach_session_request
162{
163 uint64_t session_id;
164 uint64_t offset; /* unused for now */
165 uint32_t seek; /* enum lttng_viewer_seek */
7cdc2bab
MD
166} __attribute__((__packed__));
167
4164020e
SM
168struct lttng_viewer_attach_session_response
169{
170 /* enum lttng_viewer_attach_return_code */
171 uint32_t status;
172 uint32_t streams_count;
173 /* struct lttng_viewer_stream */
174 char stream_list[];
7cdc2bab
MD
175} __attribute__((__packed__));
176
177/*
178 * LTTNG_VIEWER_GET_NEXT_INDEX payload.
179 */
4164020e
SM
180struct lttng_viewer_get_next_index
181{
182 uint64_t stream_id;
183} __attribute__((__packed__));
184
185struct lttng_viewer_index
186{
187 uint64_t offset;
188 uint64_t packet_size;
189 uint64_t content_size;
190 uint64_t timestamp_begin;
191 uint64_t timestamp_end;
192 uint64_t events_discarded;
193 uint64_t stream_id;
194 uint32_t status; /* enum lttng_viewer_next_index_return_code */
195 uint32_t flags; /* LTTNG_VIEWER_FLAG_* */
196} __attribute__((__packed__));
7cdc2bab
MD
197
198/*
199 * LTTNG_VIEWER_GET_PACKET payload.
200 */
4164020e
SM
201struct lttng_viewer_get_packet
202{
203 uint64_t stream_id;
204 uint64_t offset;
205 uint32_t len;
7cdc2bab
MD
206} __attribute__((__packed__));
207
4164020e
SM
208struct lttng_viewer_trace_packet
209{
210 uint32_t status; /* enum lttng_viewer_get_packet_return_code */
211 uint32_t len;
212 uint32_t flags; /* LTTNG_VIEWER_FLAG_* */
213 char data[];
7cdc2bab
MD
214} __attribute__((__packed__));
215
216/*
217 * LTTNG_VIEWER_GET_METADATA payload.
218 */
4164020e
SM
219struct lttng_viewer_get_metadata
220{
221 uint64_t stream_id;
7cdc2bab
MD
222} __attribute__((__packed__));
223
4164020e
SM
224struct lttng_viewer_metadata_packet
225{
226 uint64_t len;
227 uint32_t status; /* enum lttng_viewer_get_metadata_return_code */
228 char data[];
7cdc2bab
MD
229} __attribute__((__packed__));
230
231/*
232 * LTTNG_VIEWER_GET_NEW_STREAMS payload.
233 */
4164020e
SM
234struct lttng_viewer_new_streams_request
235{
236 uint64_t session_id;
7cdc2bab
MD
237} __attribute__((__packed__));
238
4164020e
SM
239struct lttng_viewer_new_streams_response
240{
241 /* enum lttng_viewer_new_streams_return_code */
242 uint32_t status;
243 uint32_t streams_count;
244 /* struct lttng_viewer_stream */
245 char stream_list[];
7cdc2bab
MD
246} __attribute__((__packed__));
247
4164020e
SM
248struct lttng_viewer_create_session_response
249{
250 /* enum lttng_viewer_create_session_return_code */
251 uint32_t status;
7cdc2bab
MD
252} __attribute__((__packed__));
253
254/*
255 * LTTNG_VIEWER_DETACH_SESSION payload.
256 */
4164020e
SM
257struct lttng_viewer_detach_session_request
258{
259 uint64_t session_id;
7cdc2bab
MD
260} __attribute__((__packed__));
261
4164020e
SM
262struct lttng_viewer_detach_session_response
263{
264 /* enum lttng_viewer_detach_session_return_code */
265 uint32_t status;
7cdc2bab
MD
266} __attribute__((__packed__));
267
268#endif /* LTTNG_VIEWER_ABI_H */
This page took 0.080518 seconds and 4 git commands to generate.