Fix: scsi: sd: Atomic write support added in 6.11-rc1
[lttng-modules.git] / include / lttng / msgpack.h
1 /* SPDX-License-Identifier: LGPL-2.1-only
2 * SPDX-FileCopyrightText: 2020 Francis Deslauriers <francis.deslauriers@efficios.com>
3 */
4
5 #ifndef _LTTNG_KERNEL_MSGPACK_H
6 #define _LTTNG_KERNEL_MSGPACK_H
7
8 #ifdef __KERNEL__
9 #include <linux/types.h>
10 #else /* __KERNEL__ */
11 #include <stdint.h>
12 #endif /* __KERNEL__ */
13
14 struct lttng_msgpack_writer {
15 uint8_t *buffer;
16 uint8_t *write_pos;
17 const uint8_t *end_write_pos;
18 uint8_t array_nesting;
19 uint8_t map_nesting;
20 };
21
22 void lttng_msgpack_writer_init(
23 struct lttng_msgpack_writer *writer,
24 uint8_t *buffer, size_t size);
25
26 void lttng_msgpack_writer_fini(struct lttng_msgpack_writer *writer);
27
28 int lttng_msgpack_write_nil(struct lttng_msgpack_writer *writer);
29 int lttng_msgpack_write_true(struct lttng_msgpack_writer *writer);
30 int lttng_msgpack_write_false(struct lttng_msgpack_writer *writer);
31 int lttng_msgpack_write_unsigned_integer(
32 struct lttng_msgpack_writer *writer, uint64_t value);
33 int lttng_msgpack_write_signed_integer(
34 struct lttng_msgpack_writer *writer, int64_t value);
35 int lttng_msgpack_write_str(struct lttng_msgpack_writer *writer,
36 const char *value);
37 int lttng_msgpack_write_user_str(struct lttng_msgpack_writer *writer,
38 const char __user *value);
39 int lttng_msgpack_begin_map(struct lttng_msgpack_writer *writer, size_t count);
40 int lttng_msgpack_end_map(struct lttng_msgpack_writer *writer);
41 int lttng_msgpack_begin_array(
42 struct lttng_msgpack_writer *writer, size_t count);
43 int lttng_msgpack_end_array(struct lttng_msgpack_writer *writer);
44
45 int lttng_msgpack_save_writer_pos(struct lttng_msgpack_writer *writer, uint8_t **pos);
46 int lttng_msgpack_restore_writer_pos(struct lttng_msgpack_writer *writer, uint8_t *pos);
47
48 #endif /* _LTTNG_KERNEL_MSGPACK_H */
This page took 0.031957 seconds and 5 git commands to generate.