X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Fuserspace-probe-internal.h;h=b530e2963b70dfe4a2e9155e8754bbe0fd0b951c;hb=352b58f55f53e7d11fb286ddc26a3bd0ecdd02f5;hp=fe356b9747d351cbe8229e37be8db04c8f05d20b;hpb=dfcfa983c4135e134eb3f48234da119a7a9d3f6d;p=lttng-tools.git diff --git a/include/lttng/userspace-probe-internal.h b/include/lttng/userspace-probe-internal.h index fe356b974..b530e2963 100644 --- a/include/lttng/userspace-probe-internal.h +++ b/include/lttng/userspace-probe-internal.h @@ -11,12 +11,18 @@ #include #include -#include -#include +#include +#include + +struct lttng_payload; +struct lttng_payload_view; +struct lttng_dynamic_buffer; typedef bool (*userspace_probe_location_equal_cb)( const struct lttng_userspace_probe_location *a, const struct lttng_userspace_probe_location *b); +typedef unsigned long (*userspace_probe_location_hash_cb)( + const struct lttng_userspace_probe_location *location); /* * No elf-specific comm structure is defined since no elf-specific payload is @@ -84,6 +90,7 @@ struct lttng_userspace_probe_location { enum lttng_userspace_probe_location_type type; struct lttng_userspace_probe_location_lookup_method *lookup_method; userspace_probe_location_equal_cb equal; + userspace_probe_location_hash_cb hash; }; struct lttng_userspace_probe_location_function { @@ -94,9 +101,8 @@ struct lttng_userspace_probe_location_function { * binary_fd is a file descriptor to the executable file. It's open * early on to keep the backing inode valid over the course of the * intrumentation and use. It prevents deletion and reuse races. - * Set to -1 if not open. */ - int binary_fd; + struct fd_handle *binary_fd_handle; enum lttng_userspace_probe_location_function_instrumentation_type instrumentation_type; }; @@ -109,30 +115,20 @@ struct lttng_userspace_probe_location_tracepoint { * binary_fd is a file descriptor to the executable file. It's open * early on to keep the backing inode valid over the course of the * intrumentation and use. It prevents deletion and reuse races. - * Set to -1 if not open. */ - int binary_fd; + struct fd_handle *binary_fd_handle; }; LTTNG_HIDDEN int lttng_userspace_probe_location_serialize( const struct lttng_userspace_probe_location *location, - struct lttng_dynamic_buffer *buffer, - int *binary_fd); + struct lttng_payload *payload); LTTNG_HIDDEN -int lttng_userspace_probe_location_create_from_buffer( - const struct lttng_buffer_view *buffer, +int lttng_userspace_probe_location_create_from_payload( + struct lttng_payload_view *view, struct lttng_userspace_probe_location **probe_location); -LTTNG_HIDDEN -int lttng_userspace_probe_location_function_set_binary_fd( - struct lttng_userspace_probe_location *location, int binary_fd); - -LTTNG_HIDDEN -int lttng_userspace_probe_location_tracepoint_set_binary_fd( - struct lttng_userspace_probe_location *location, int binary_fd); - /* * Returns a version of the location that is serialized to a contiguous region * of memory. Pass NULL to buffer to only get the storage requirement of the @@ -157,4 +153,8 @@ bool lttng_userspace_probe_location_is_equal( const struct lttng_userspace_probe_location *a, const struct lttng_userspace_probe_location *b); +LTTNG_HIDDEN +unsigned long lttng_userspace_probe_location_hash( + const struct lttng_userspace_probe_location *location); + #endif /* LTTNG_USERSPACE_PROBE_INTERNAL_H */