Commit | Line | Data |
---|---|---|
b178f53e | 1 | /* |
ab5be9fa | 2 | * Copyright (C) 2019 Jérémie Galarneau <jeremie.galarneau@efficios.com> |
b178f53e | 3 | * |
ab5be9fa | 4 | * SPDX-License-Identifier: LGPL-2.1-only |
b178f53e | 5 | * |
b178f53e JG |
6 | */ |
7 | ||
8 | #ifndef LTTNG_SESSION_INTERNAL_H | |
9 | #define LTTNG_SESSION_INTERNAL_H | |
10 | ||
2d321d3e | 11 | #include <common/buffer-view.hpp> |
c9e313bc | 12 | #include <common/macros.hpp> |
2d321d3e JR |
13 | #include <common/optional.hpp> |
14 | #include <lttng/constant.h> | |
15 | #include <lttng/lttng-error.h> | |
16 | ||
17 | struct lttng_session; | |
18 | struct lttng_payload_view; | |
b178f53e JG |
19 | |
20 | struct lttng_session_extended { | |
2d321d3e JR |
21 | LTTNG_OPTIONAL(uint64_t) creation_time; |
22 | }; | |
23 | ||
24 | struct lttng_session_comm { | |
25 | uint32_t name_len; | |
26 | uint32_t path_len; | |
27 | uint8_t enabled; | |
28 | uint32_t snapshot_mode; | |
29 | uint32_t live_timer_interval; | |
30 | /* lttng_session_extended data */ | |
31 | LTTNG_OPTIONAL(uint64_t) LTTNG_PACKED creation_time; | |
32 | /* | |
33 | * Dynamic payload: | |
34 | * - name[name_len] | |
35 | * - path[path_len] | |
36 | */ | |
37 | char payload[]; | |
b178f53e JG |
38 | } LTTNG_PACKED; |
39 | ||
2d321d3e JR |
40 | int lttng_session_serialize(const struct lttng_session *session, struct lttng_payload *payload); |
41 | ||
42 | ssize_t lttng_session_create_from_payload( | |
43 | struct lttng_payload_view *view, struct lttng_session **out_session); | |
44 | ||
45 | enum lttng_error_code lttng_sessions_create_and_flatten_from_payload( | |
46 | struct lttng_payload_view *view, | |
47 | unsigned int count, | |
48 | struct lttng_session **sessions); | |
49 | ||
b178f53e | 50 | #endif /* LTTNG_SESSION_INTERNAL_H */ |