f75be91a779b5d825bf2f3c7b2f55c48b1b65011
[lttng-ust.git] / libmsgpack / msgpack.h
1 /*
2 * SPDX-License-Identifier: LGPL-2.1-only
3 *
4 * Copyright (C) 2020 Francis Deslauriers <francis.deslauriers@efficios.com>
5 */
6
7 #ifndef _LTTNG_UST_MSGPACK_H
8 #define _LTTNG_UST_MSGPACK_H
9
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 __attribute__((visibility("hidden")))
26 void lttng_msgpack_writer_init(
27 struct lttng_msgpack_writer *writer,
28 uint8_t *buffer, size_t size);
29
30 __attribute__((visibility("hidden")))
31 void lttng_msgpack_writer_fini(struct lttng_msgpack_writer *writer);
32
33 __attribute__((visibility("hidden")))
34 int lttng_msgpack_write_nil(struct lttng_msgpack_writer *writer);
35
36 __attribute__((visibility("hidden")))
37 int lttng_msgpack_write_true(struct lttng_msgpack_writer *writer);
38
39 __attribute__((visibility("hidden")))
40 int lttng_msgpack_write_false(struct lttng_msgpack_writer *writer);
41
42 __attribute__((visibility("hidden")))
43 int lttng_msgpack_write_unsigned_integer(
44 struct lttng_msgpack_writer *writer, uint64_t value);
45
46 __attribute__((visibility("hidden")))
47 int lttng_msgpack_write_signed_integer(
48 struct lttng_msgpack_writer *writer, int64_t value);
49
50 __attribute__((visibility("hidden")))
51 int lttng_msgpack_write_double(struct lttng_msgpack_writer *writer, double value);
52
53 __attribute__((visibility("hidden")))
54 int lttng_msgpack_write_str(struct lttng_msgpack_writer *writer,
55 const char *value);
56
57 __attribute__((visibility("hidden")))
58 int lttng_msgpack_begin_map(struct lttng_msgpack_writer *writer, size_t count);
59
60 __attribute__((visibility("hidden")))
61 int lttng_msgpack_end_map(struct lttng_msgpack_writer *writer);
62
63 __attribute__((visibility("hidden")))
64 int lttng_msgpack_begin_array(
65 struct lttng_msgpack_writer *writer, size_t count);
66
67 __attribute__((visibility("hidden")))
68 int lttng_msgpack_end_array(struct lttng_msgpack_writer *writer);
69
70 #endif /* _LTTNG_UST_MSGPACK_H */
This page took 0.029605 seconds and 3 git commands to generate.