Fix: scsi: sd: Atomic write support added in 6.11-rc1
[lttng-modules.git] / include / lttng / msgpack.h
... / ...
CommitLineData
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
14struct 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
22void lttng_msgpack_writer_init(
23 struct lttng_msgpack_writer *writer,
24 uint8_t *buffer, size_t size);
25
26void lttng_msgpack_writer_fini(struct lttng_msgpack_writer *writer);
27
28int lttng_msgpack_write_nil(struct lttng_msgpack_writer *writer);
29int lttng_msgpack_write_true(struct lttng_msgpack_writer *writer);
30int lttng_msgpack_write_false(struct lttng_msgpack_writer *writer);
31int lttng_msgpack_write_unsigned_integer(
32 struct lttng_msgpack_writer *writer, uint64_t value);
33int lttng_msgpack_write_signed_integer(
34 struct lttng_msgpack_writer *writer, int64_t value);
35int lttng_msgpack_write_str(struct lttng_msgpack_writer *writer,
36 const char *value);
37int lttng_msgpack_write_user_str(struct lttng_msgpack_writer *writer,
38 const char __user *value);
39int lttng_msgpack_begin_map(struct lttng_msgpack_writer *writer, size_t count);
40int lttng_msgpack_end_map(struct lttng_msgpack_writer *writer);
41int lttng_msgpack_begin_array(
42 struct lttng_msgpack_writer *writer, size_t count);
43int lttng_msgpack_end_array(struct lttng_msgpack_writer *writer);
44
45int lttng_msgpack_save_writer_pos(struct lttng_msgpack_writer *writer, uint8_t **pos);
46int lttng_msgpack_restore_writer_pos(struct lttng_msgpack_writer *writer, uint8_t *pos);
47
48#endif /* _LTTNG_KERNEL_MSGPACK_H */
This page took 0.024192 seconds and 5 git commands to generate.