Move to kernel style SPDX license identifiers
[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 #include "helper.h"
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
26 LTTNG_HIDDEN
27 void lttng_msgpack_writer_init(
28 struct lttng_msgpack_writer *writer,
29 uint8_t *buffer, size_t size);
30
31 LTTNG_HIDDEN
32 void lttng_msgpack_writer_fini(struct lttng_msgpack_writer *writer);
33
34 LTTNG_HIDDEN
35 int lttng_msgpack_write_nil(struct lttng_msgpack_writer *writer);
36 LTTNG_HIDDEN
37 int lttng_msgpack_write_true(struct lttng_msgpack_writer *writer);
38 LTTNG_HIDDEN
39 int lttng_msgpack_write_false(struct lttng_msgpack_writer *writer);
40 LTTNG_HIDDEN
41 int lttng_msgpack_write_unsigned_integer(
42 struct lttng_msgpack_writer *writer, uint64_t value);
43 LTTNG_HIDDEN
44 int lttng_msgpack_write_signed_integer(
45 struct lttng_msgpack_writer *writer, int64_t value);
46 LTTNG_HIDDEN
47 int lttng_msgpack_write_double(struct lttng_msgpack_writer *writer, double value);
48 LTTNG_HIDDEN
49 int lttng_msgpack_write_str(struct lttng_msgpack_writer *writer,
50 const char *value);
51 LTTNG_HIDDEN
52 int lttng_msgpack_begin_map(struct lttng_msgpack_writer *writer, size_t count);
53 LTTNG_HIDDEN
54 int lttng_msgpack_end_map(struct lttng_msgpack_writer *writer);
55 LTTNG_HIDDEN
56 int lttng_msgpack_begin_array(
57 struct lttng_msgpack_writer *writer, size_t count);
58 LTTNG_HIDDEN
59 int lttng_msgpack_end_array(struct lttng_msgpack_writer *writer);
60
61 #endif /* _LTTNG_UST_MSGPACK_H */
This page took 0.030543 seconds and 4 git commands to generate.