X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fpayload-view.h;h=deaa9655ce2d23de89f46568e9017512c0af6cda;hp=a07c0be003c7e9638c0ab8af0f1bd0f0cb6e6326;hb=b66cbf1731486ab4dc7e0b2e1c3fa05cc5360c19;hpb=fe489250ce102edf511e99669025934ec9587c63 diff --git a/src/common/payload-view.h b/src/common/payload-view.h index a07c0be00..deaa9655c 100644 --- a/src/common/payload-view.h +++ b/src/common/payload-view.h @@ -46,13 +46,26 @@ struct fd_handle; struct lttng_payload_view { struct lttng_buffer_view buffer; /* private */ + const struct lttng_dynamic_pointer_array _fd_handles; + struct { size_t *p_fd_handles_position; size_t fd_handles_position; } _iterator; }; +/** + * Checks if a payload view's buffer is safe to access. + * + * After calling the payload view creation functions, callers should verify + * if the resquested length (if any is explicitly provided) could be mapped + * to a new view. + * + * @view Payload to validate + */ +bool lttng_payload_view_is_valid(const struct lttng_payload_view *view); + /** * Return a payload view referencing a subset of a payload. * @@ -62,7 +75,6 @@ struct lttng_payload_view { * cause the view to reference the whole payload from the * offset provided. */ -LTTNG_HIDDEN struct lttng_payload_view lttng_payload_view_from_payload( const struct lttng_payload *payload, size_t offset, ptrdiff_t len); @@ -77,7 +89,6 @@ struct lttng_payload_view lttng_payload_view_from_payload( * cause the payload view to reference the whole payload view's * buffer view from the offset provided. */ -LTTNG_HIDDEN struct lttng_payload_view lttng_payload_view_from_view( struct lttng_payload_view *view, size_t offset, ptrdiff_t len); @@ -94,7 +105,6 @@ struct lttng_payload_view lttng_payload_view_from_view( * cause the payload view to reference the whole payload from the * offset provided. */ -LTTNG_HIDDEN struct lttng_payload_view lttng_payload_view_from_dynamic_buffer( const struct lttng_dynamic_buffer *buffer, size_t offset, ptrdiff_t len); @@ -111,7 +121,6 @@ struct lttng_payload_view lttng_payload_view_from_dynamic_buffer( * cause the payload view to reference the whole payload from the * offset provided. */ -LTTNG_HIDDEN struct lttng_payload_view lttng_payload_view_from_buffer_view( const struct lttng_buffer_view *view, size_t offset, ptrdiff_t len); @@ -127,7 +136,6 @@ struct lttng_payload_view lttng_payload_view_from_buffer_view( * Note that a payload view never assumes the ownership of the memory it * references. */ -LTTNG_HIDDEN struct lttng_payload_view lttng_payload_view_init_from_buffer( const char *src, size_t offset, ptrdiff_t len); @@ -138,9 +146,8 @@ struct lttng_payload_view lttng_payload_view_init_from_buffer( * * Returns the number of file descriptor handles left on success, -1 on error. */ -LTTNG_HIDDEN int lttng_payload_view_get_fd_handle_count( - struct lttng_payload_view *payload_view); + const struct lttng_payload_view *payload_view); /** * Pop an fd handle from a payload view. @@ -151,7 +158,6 @@ int lttng_payload_view_get_fd_handle_count( * * Returns an fd_handle on success, -1 on error. */ -LTTNG_HIDDEN struct fd_handle *lttng_payload_view_pop_fd_handle( struct lttng_payload_view *payload_view);