X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Fuserspace-probe-internal.h;h=e602a64e748bccee6fa91aaa230b60f8aee66799;hp=8287954931791e21bf3b7e0e5f595c91e46f605d;hb=2cde05107ba33959b71d623579ea3d6c93346488;hpb=ab5be9fa2eb5ba9600a82cd18fd3cfcbac69169a diff --git a/include/lttng/userspace-probe-internal.h b/include/lttng/userspace-probe-internal.h index 828795493..e602a64e7 100644 --- a/include/lttng/userspace-probe-internal.h +++ b/include/lttng/userspace-probe-internal.h @@ -11,8 +11,16 @@ #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); /* * No elf-specific comm structure is defined since no elf-specific payload is @@ -79,6 +87,7 @@ struct lttng_userspace_probe_location_tracepoint_comm { 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; }; struct lttng_userspace_probe_location_function { @@ -89,9 +98,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; }; @@ -104,30 +112,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 @@ -142,4 +140,14 @@ LTTNG_HIDDEN struct lttng_userspace_probe_location *lttng_userspace_probe_location_copy( const struct lttng_userspace_probe_location *location); +LTTNG_HIDDEN +bool lttng_userspace_probe_location_lookup_method_is_equal( + const struct lttng_userspace_probe_location_lookup_method *a, + const struct lttng_userspace_probe_location_lookup_method *b); + +LTTNG_HIDDEN +bool lttng_userspace_probe_location_is_equal( + const struct lttng_userspace_probe_location *a, + const struct lttng_userspace_probe_location *b); + #endif /* LTTNG_USERSPACE_PROBE_INTERNAL_H */