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-Tag: v2.13.0-rc1~643 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=fbd55aaefb30b4cda8d25a02975559724d387e55;p=lttng-tools.git 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 7005ef501..b6544e62b 100644 --- a/src/common/dynamic-buffer.c +++ b/src/common/dynamic-buffer.c @@ -6,6 +6,7 @@ */ #include +#include #include #include @@ -83,6 +84,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 1352a67c1..3435c846c 100644 --- a/src/common/dynamic-buffer.h +++ b/src/common/dynamic-buffer.h @@ -12,6 +12,8 @@ #include #include +struct lttng_buffer_view; + struct lttng_dynamic_buffer { char *data; /* size is the buffer's currently used capacity. */ @@ -48,6 +50,15 @@ LTTNG_HIDDEN int lttng_dynamic_buffer_append_buffer(struct lttng_dynamic_buffer *dst_buffer, const 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 accommodates new_size. Areas acquired by