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 | ||
ddabe860 | 25 | __attribute__((visibility("hidden"))) |
49705576 FD |
26 | void lttng_msgpack_writer_init( |
27 | struct lttng_msgpack_writer *writer, | |
28 | uint8_t *buffer, size_t size); | |
29 | ||
ddabe860 | 30 | __attribute__((visibility("hidden"))) |
49705576 FD |
31 | void lttng_msgpack_writer_fini(struct lttng_msgpack_writer *writer); |
32 | ||
ddabe860 | 33 | __attribute__((visibility("hidden"))) |
49705576 | 34 | int lttng_msgpack_write_nil(struct lttng_msgpack_writer *writer); |
ddabe860 MJ |
35 | |
36 | __attribute__((visibility("hidden"))) | |
49705576 | 37 | int lttng_msgpack_write_true(struct lttng_msgpack_writer *writer); |
ddabe860 MJ |
38 | |
39 | __attribute__((visibility("hidden"))) | |
49705576 | 40 | int lttng_msgpack_write_false(struct lttng_msgpack_writer *writer); |
ddabe860 MJ |
41 | |
42 | __attribute__((visibility("hidden"))) | |
49705576 FD |
43 | int lttng_msgpack_write_unsigned_integer( |
44 | struct lttng_msgpack_writer *writer, uint64_t value); | |
ddabe860 MJ |
45 | |
46 | __attribute__((visibility("hidden"))) | |
49705576 FD |
47 | int lttng_msgpack_write_signed_integer( |
48 | struct lttng_msgpack_writer *writer, int64_t value); | |
ddabe860 MJ |
49 | |
50 | __attribute__((visibility("hidden"))) | |
49705576 | 51 | int lttng_msgpack_write_double(struct lttng_msgpack_writer *writer, double value); |
ddabe860 MJ |
52 | |
53 | __attribute__((visibility("hidden"))) | |
49705576 FD |
54 | int lttng_msgpack_write_str(struct lttng_msgpack_writer *writer, |
55 | const char *value); | |
ddabe860 MJ |
56 | |
57 | __attribute__((visibility("hidden"))) | |
49705576 | 58 | int lttng_msgpack_begin_map(struct lttng_msgpack_writer *writer, size_t count); |
ddabe860 MJ |
59 | |
60 | __attribute__((visibility("hidden"))) | |
49705576 | 61 | int lttng_msgpack_end_map(struct lttng_msgpack_writer *writer); |
ddabe860 MJ |
62 | |
63 | __attribute__((visibility("hidden"))) | |
49705576 FD |
64 | int lttng_msgpack_begin_array( |
65 | struct lttng_msgpack_writer *writer, size_t count); | |
ddabe860 MJ |
66 | |
67 | __attribute__((visibility("hidden"))) | |
49705576 FD |
68 | int lttng_msgpack_end_array(struct lttng_msgpack_writer *writer); |
69 | ||
70 | #endif /* _LTTNG_UST_MSGPACK_H */ |