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> | |
cce1f4b6 | 15 | #include "helper.h" |
49705576 FD |
16 | #endif /* __KERNEL__ */ |
17 | ||
18 | struct lttng_msgpack_writer { | |
19 | uint8_t *buffer; | |
20 | uint8_t *write_pos; | |
21 | const uint8_t *end_write_pos; | |
22 | uint8_t array_nesting; | |
23 | uint8_t map_nesting; | |
24 | }; | |
25 | ||
cce1f4b6 | 26 | LTTNG_HIDDEN |
49705576 FD |
27 | void lttng_msgpack_writer_init( |
28 | struct lttng_msgpack_writer *writer, | |
29 | uint8_t *buffer, size_t size); | |
30 | ||
cce1f4b6 | 31 | LTTNG_HIDDEN |
49705576 FD |
32 | void lttng_msgpack_writer_fini(struct lttng_msgpack_writer *writer); |
33 | ||
cce1f4b6 | 34 | LTTNG_HIDDEN |
49705576 | 35 | int lttng_msgpack_write_nil(struct lttng_msgpack_writer *writer); |
cce1f4b6 | 36 | LTTNG_HIDDEN |
49705576 | 37 | int lttng_msgpack_write_true(struct lttng_msgpack_writer *writer); |
cce1f4b6 | 38 | LTTNG_HIDDEN |
49705576 | 39 | int lttng_msgpack_write_false(struct lttng_msgpack_writer *writer); |
cce1f4b6 | 40 | LTTNG_HIDDEN |
49705576 FD |
41 | int lttng_msgpack_write_unsigned_integer( |
42 | struct lttng_msgpack_writer *writer, uint64_t value); | |
cce1f4b6 | 43 | LTTNG_HIDDEN |
49705576 FD |
44 | int lttng_msgpack_write_signed_integer( |
45 | struct lttng_msgpack_writer *writer, int64_t value); | |
cce1f4b6 | 46 | LTTNG_HIDDEN |
49705576 | 47 | int lttng_msgpack_write_double(struct lttng_msgpack_writer *writer, double value); |
cce1f4b6 | 48 | LTTNG_HIDDEN |
49705576 FD |
49 | int lttng_msgpack_write_str(struct lttng_msgpack_writer *writer, |
50 | const char *value); | |
cce1f4b6 | 51 | LTTNG_HIDDEN |
49705576 | 52 | int lttng_msgpack_begin_map(struct lttng_msgpack_writer *writer, size_t count); |
cce1f4b6 | 53 | LTTNG_HIDDEN |
49705576 | 54 | int lttng_msgpack_end_map(struct lttng_msgpack_writer *writer); |
cce1f4b6 | 55 | LTTNG_HIDDEN |
49705576 FD |
56 | int lttng_msgpack_begin_array( |
57 | struct lttng_msgpack_writer *writer, size_t count); | |
cce1f4b6 | 58 | LTTNG_HIDDEN |
49705576 FD |
59 | int lttng_msgpack_end_array(struct lttng_msgpack_writer *writer); |
60 | ||
61 | #endif /* _LTTNG_UST_MSGPACK_H */ |