2 * Copyright (C) 2020 Jérémie Galarneau <jeremie.galarneau@efficios.com>
4 * SPDX-License-Identifier: LGPL-2.1-only
9 #include <common/dynamic-array.h>
10 #include <common/dynamic-buffer.h>
11 #include <common/error.h>
14 void lttng_payload_init(struct lttng_payload
*payload
)
17 lttng_dynamic_buffer_init(&payload
->buffer
);
18 lttng_dynamic_array_init(&payload
->_fds
, sizeof(int), NULL
);
22 int lttng_payload_copy(const struct lttng_payload
*src_payload
,
23 struct lttng_payload
*dst_payload
)
28 ret
= lttng_dynamic_buffer_append_buffer(
29 &dst_payload
->buffer
, &src_payload
->buffer
);
34 for (i
= 0; i
< lttng_dynamic_array_get_count(&src_payload
->_fds
);
37 const int src_fd
= *((int *) lttng_dynamic_array_get_element(
38 &src_payload
->_fds
, i
));
42 PERROR("Failed to duplicate file descriptor while copying a payload");
47 ret
= lttng_payload_push_fd(dst_payload
, dst_fd
);
49 const int close_ret
= close(dst_fd
);
52 PERROR("Failed to close duplicated file descriptor while copying a payload");
66 void lttng_payload_reset(struct lttng_payload
*payload
)
72 lttng_dynamic_buffer_reset(&payload
->buffer
);
73 lttng_dynamic_array_reset(&payload
->_fds
);
77 int lttng_payload_push_fd(struct lttng_payload
*payload
, int fd
)
86 ret
= lttng_dynamic_array_add_element(&payload
->_fds
, &fd
);
This page took 0.039986 seconds and 6 git commands to generate.