From: Jérémie Galarneau Date: Fri, 15 May 2020 20:04:11 +0000 (-0400) Subject: Add lttng_dynamic_buffer_append_view util X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=commitdiff_plain;h=b7bce76449cfa7ca3db9fd900239eb25962349d7 Add lttng_dynamic_buffer_append_view util Add lttng_dynamic_buffer_append_view() which appends the contents of a buffer view to a dynamic buffer. Signed-off-by: Jérémie Galarneau Change-Id: I4082ba2c848b79aa2116847987067453638de441 --- diff --git a/src/common/dynamic-buffer.c b/src/common/dynamic-buffer.c index fd39f813b..0a4683b27 100644 --- a/src/common/dynamic-buffer.c +++ b/src/common/dynamic-buffer.c @@ -16,6 +16,7 @@ */ #include +#include #include #include @@ -93,6 +94,23 @@ end: return ret; } +LTTNG_HIDDEN +int lttng_dynamic_buffer_append_view(struct lttng_dynamic_buffer *buffer, + const struct lttng_buffer_view *src) +{ + int ret; + + if (!buffer || !src) { + ret = -1; + goto end; + } + + ret = lttng_dynamic_buffer_append(buffer, src->data, + src->size); +end: + return ret; +} + LTTNG_HIDDEN int lttng_dynamic_buffer_set_size(struct lttng_dynamic_buffer *buffer, size_t new_size) diff --git a/src/common/dynamic-buffer.h b/src/common/dynamic-buffer.h index d42a6a61d..b0239b1d0 100644 --- a/src/common/dynamic-buffer.h +++ b/src/common/dynamic-buffer.h @@ -22,6 +22,8 @@ #include #include +struct lttng_buffer_view; + struct lttng_dynamic_buffer { char *data; /* size is the buffer's currently used capacity. */ @@ -58,6 +60,15 @@ LTTNG_HIDDEN int lttng_dynamic_buffer_append_buffer(struct lttng_dynamic_buffer *dst_buffer, struct lttng_dynamic_buffer *src_buffer); +/* + * Performs the same action as lttng_dynamic_buffer_append(), but using a + * buffer view as the source buffer. The source buffer's size is used in lieu + * of "len". + */ +LTTNG_HIDDEN +int lttng_dynamic_buffer_append_view(struct lttng_dynamic_buffer *buffer, + const struct lttng_buffer_view *view); + /* * Set the buffer's size to new_size. The capacity of the buffer will * be expanded (if necessary) to accomodate new_size. Areas acquired by