X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Fuserspace-probe-internal.h;fp=include%2Flttng%2Fuserspace-probe-internal.h;h=0000000000000000000000000000000000000000;hp=5e960c106db1b853224d12c4da59f8c6f1695e18;hb=c9e313bc594f40a86eed237dce222c0fc99c957f;hpb=4878de5c7deb512bbdac4fdfc498907efa06fb7c diff --git a/include/lttng/userspace-probe-internal.h b/include/lttng/userspace-probe-internal.h deleted file mode 100644 index 5e960c106..000000000 --- a/include/lttng/userspace-probe-internal.h +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (C) 2017 Jérémie Galarneau - * Copyright (C) 2018 Francis Deslauriers - * - * SPDX-License-Identifier: LGPL-2.1-only - * - */ - -#ifndef LTTNG_USERSPACE_PROBE_INTERNAL_H -#define LTTNG_USERSPACE_PROBE_INTERNAL_H - -#include -#include -#include -#include - -struct lttng_payload; -struct lttng_payload_view; -struct lttng_dynamic_buffer; -struct mi_writer; - -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); -typedef enum lttng_error_code (*userspace_probe_location_mi)( - const struct lttng_userspace_probe_location *location, - struct mi_writer); - -/* - * No elf-specific comm structure is defined since no elf-specific payload is - * currently needed. - */ -struct lttng_userspace_probe_location_lookup_method_comm { - /* enum lttng_userspace_probe_location_lookup_method_type */ - int8_t type; - /* type-specific payload */ - char payload[]; -}; - -/* Common ancestor of all userspace probe location lookup methods. */ -struct lttng_userspace_probe_location_lookup_method { - enum lttng_userspace_probe_location_lookup_method_type type; -}; - -struct lttng_userspace_probe_location_lookup_method_elf { - struct lttng_userspace_probe_location_lookup_method parent; -}; - -struct lttng_userspace_probe_location_lookup_method_sdt { - struct lttng_userspace_probe_location_lookup_method parent; -}; - -struct lttng_userspace_probe_location_comm { - /* enum lttng_userspace_probe_location_type */ - int8_t type; - /* - * Payload is composed of, in that order, - * - type-specific payload - * - struct lttng_userspace_probe_location_lookup_method_comm - */ - char payload[]; -}; - -struct lttng_userspace_probe_location_function_comm { - /* Both lengths include the trailing \0. */ - uint32_t function_name_len; - uint32_t binary_path_len; - /* - * Payload is composed of, in that order, - * - function name (with trailing \0), - * - absolute binary path (with trailing \0) - */ - char payload[]; -} LTTNG_PACKED; - -struct lttng_userspace_probe_location_tracepoint_comm { - /* The three lengths include the trailing \0. */ - uint32_t probe_name_len; - uint32_t provider_name_len; - uint32_t binary_path_len; - /* - * Payload is composed of, in that order, - * - probe name (with trailing \0), - * - provider name (with trailing \0), - * - absolute binary path (with trailing \0) - */ - char payload[]; -} LTTNG_PACKED; - -/* Common ancestor of all userspace probe locations. */ -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; - userspace_probe_location_hash_cb mi; -}; - -struct lttng_userspace_probe_location_function { - struct lttng_userspace_probe_location parent; - char *function_name; - char *binary_path; - /* - * 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. - */ - struct fd_handle *binary_fd_handle; - enum lttng_userspace_probe_location_function_instrumentation_type instrumentation_type; -}; - -struct lttng_userspace_probe_location_tracepoint { - struct lttng_userspace_probe_location parent; - char *probe_name; - char *provider_name; - char *binary_path; - /* - * 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. - */ - struct fd_handle *binary_fd_handle; -}; - -int lttng_userspace_probe_location_serialize( - const struct lttng_userspace_probe_location *location, - struct lttng_payload *payload); - -int lttng_userspace_probe_location_create_from_payload( - struct lttng_payload_view *view, - struct lttng_userspace_probe_location **probe_location); - -/* - * 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 - * flattened userspace probe location. - */ -int lttng_userspace_probe_location_flatten( - const struct lttng_userspace_probe_location *location, - struct lttng_dynamic_buffer *buffer); - -struct lttng_userspace_probe_location *lttng_userspace_probe_location_copy( - const struct lttng_userspace_probe_location *location); - -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); - -bool lttng_userspace_probe_location_is_equal( - const struct lttng_userspace_probe_location *a, - const struct lttng_userspace_probe_location *b); - -unsigned long lttng_userspace_probe_location_hash( - const struct lttng_userspace_probe_location *location); - -enum lttng_error_code lttng_userspace_probe_location_mi_serialize( - const struct lttng_userspace_probe_location *location, - struct mi_writer *writer); - -#endif /* LTTNG_USERSPACE_PROBE_INTERNAL_H */