X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fbuffer-view.h;h=ecd764d7c019f1c5e5902b848676f78df93ef223;hb=348ddc5c9107149d48b1f12d31a7e75e9b73b4da;hp=f22dc524c743afbdb0f9e2ec52e3d3405ff69f8e;hpb=67d8e2ef48ea2cd334bf9efd90b58b976437a3cd;p=lttng-tools.git diff --git a/src/common/buffer-view.h b/src/common/buffer-view.h index f22dc524c..ecd764d7c 100644 --- a/src/common/buffer-view.h +++ b/src/common/buffer-view.h @@ -13,6 +13,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + struct lttng_dynamic_buffer; struct lttng_buffer_view { @@ -31,10 +35,20 @@ struct lttng_buffer_view { * Note that a buffer view never assumes the ownership of the memory it * references. */ -LTTNG_HIDDEN struct lttng_buffer_view lttng_buffer_view_init( const char *src, size_t offset, ptrdiff_t len); +/** + * Checks if a buffer view is safe to access. + * + * After calling the buffer view creation functions, callers should verify + * if the resquested length (if any is explicitly provided) could be mapped + * to a new view. + * + * @view Buffer view to validate + */ +bool lttng_buffer_view_is_valid(const struct lttng_buffer_view *view); + /** * Return a buffer view referencing a subset of the memory referenced by another * view. @@ -48,7 +62,6 @@ struct lttng_buffer_view lttng_buffer_view_init( * Note that a buffer view never assumes the ownership of the memory it * references. */ -LTTNG_HIDDEN struct lttng_buffer_view lttng_buffer_view_from_view( const struct lttng_buffer_view *src, size_t offset, ptrdiff_t len); @@ -66,7 +79,6 @@ struct lttng_buffer_view lttng_buffer_view_from_view( * Note that a buffer view never assumes the ownership of the memory it * references. */ -LTTNG_HIDDEN struct lttng_buffer_view lttng_buffer_view_from_dynamic_buffer( const struct lttng_dynamic_buffer *src, size_t offset, ptrdiff_t len); @@ -80,9 +92,12 @@ struct lttng_buffer_view lttng_buffer_view_from_dynamic_buffer( * @len_with_null_terminator Expected length of the string, including the * NULL terminator. */ -LTTNG_HIDDEN bool lttng_buffer_view_contains_string(const struct lttng_buffer_view *buf, const char *str, size_t len_with_null_terminator); +#ifdef __cplusplus +} +#endif + #endif /* LTTNG_BUFFER_VIEW_H */