Commit | Line | Data |
---|---|---|
49705576 | 1 | /* |
c0c0989a | 2 | * SPDX-License-Identifier: LGPL-2.1-only |
49705576 FD |
3 | * |
4 | * Copyright (C) 2020 Francis Deslauriers <francis.deslauriers@efficios.com> | |
49705576 FD |
5 | */ |
6 | ||
c0c0989a MJ |
7 | #ifndef _LTTNG_UST_MSGPACK_H |
8 | #define _LTTNG_UST_MSGPACK_H | |
9 | ||
49705576 FD |
10 | #include <stddef.h> |
11 | #ifdef __KERNEL__ | |
12 | #include <linux/types.h> | |
13 | #else /* __KERNEL__ */ | |
14 | #include <stdint.h> | |
15 | #endif /* __KERNEL__ */ | |
16 | ||
17 | struct lttng_msgpack_writer { | |
18 | uint8_t *buffer; | |
19 | uint8_t *write_pos; | |
20 | const uint8_t *end_write_pos; | |
21 | uint8_t array_nesting; | |
22 | uint8_t map_nesting; | |
23 | }; | |
24 | ||
25 | void lttng_msgpack_writer_init( | |
26 | struct lttng_msgpack_writer *writer, | |
1d18d519 MJ |
27 | uint8_t *buffer, size_t size) |
28 | __attribute__((visibility("hidden"))); | |
49705576 | 29 | |
1d18d519 MJ |
30 | void lttng_msgpack_writer_fini(struct lttng_msgpack_writer *writer) |
31 | __attribute__((visibility("hidden"))); | |
49705576 | 32 | |
1d18d519 MJ |
33 | int lttng_msgpack_write_nil(struct lttng_msgpack_writer *writer) |
34 | __attribute__((visibility("hidden"))); | |
ddabe860 | 35 | |
1d18d519 MJ |
36 | int lttng_msgpack_write_true(struct lttng_msgpack_writer *writer) |
37 | __attribute__((visibility("hidden"))); | |
ddabe860 | 38 | |
1d18d519 MJ |
39 | int lttng_msgpack_write_false(struct lttng_msgpack_writer *writer) |
40 | __attribute__((visibility("hidden"))); | |
ddabe860 | 41 | |
49705576 | 42 | int lttng_msgpack_write_unsigned_integer( |
1d18d519 MJ |
43 | struct lttng_msgpack_writer *writer, uint64_t value) |
44 | __attribute__((visibility("hidden"))); | |
ddabe860 | 45 | |
49705576 | 46 | int lttng_msgpack_write_signed_integer( |
1d18d519 MJ |
47 | struct lttng_msgpack_writer *writer, int64_t value) |
48 | __attribute__((visibility("hidden"))); | |
ddabe860 | 49 | |
1d18d519 MJ |
50 | int lttng_msgpack_write_double(struct lttng_msgpack_writer *writer, double value) |
51 | __attribute__((visibility("hidden"))); | |
ddabe860 | 52 | |
49705576 | 53 | int lttng_msgpack_write_str(struct lttng_msgpack_writer *writer, |
1d18d519 MJ |
54 | const char *value) |
55 | __attribute__((visibility("hidden"))); | |
ddabe860 | 56 | |
1d18d519 MJ |
57 | int lttng_msgpack_begin_map(struct lttng_msgpack_writer *writer, size_t count) |
58 | __attribute__((visibility("hidden"))); | |
ddabe860 | 59 | |
1d18d519 MJ |
60 | int lttng_msgpack_end_map(struct lttng_msgpack_writer *writer) |
61 | __attribute__((visibility("hidden"))); | |
ddabe860 | 62 | |
49705576 | 63 | int lttng_msgpack_begin_array( |
1d18d519 MJ |
64 | struct lttng_msgpack_writer *writer, size_t count) |
65 | __attribute__((visibility("hidden"))); | |
ddabe860 | 66 | |
1d18d519 MJ |
67 | int lttng_msgpack_end_array(struct lttng_msgpack_writer *writer) |
68 | __attribute__((visibility("hidden"))); | |
49705576 FD |
69 | |
70 | #endif /* _LTTNG_UST_MSGPACK_H */ |