X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Fevent-field-value-internal.h;fp=include%2Flttng%2Fevent-field-value-internal.h;h=0000000000000000000000000000000000000000;hp=510420ac09aab7b91b26a684b46d2eb4c684fc05;hb=c9e313bc594f40a86eed237dce222c0fc99c957f;hpb=4878de5c7deb512bbdac4fdfc498907efa06fb7c diff --git a/include/lttng/event-field-value-internal.h b/include/lttng/event-field-value-internal.h deleted file mode 100644 index 510420ac0..000000000 --- a/include/lttng/event-field-value-internal.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (C) 2020 Philippe Proulx - * - * SPDX-License-Identifier: LGPL-2.1-only - * - */ - -#ifndef LTTNG_EVENT_FIELD_VALUE_INTERNAL_H -#define LTTNG_EVENT_FIELD_VALUE_INTERNAL_H - -#include -#include -#include - -struct lttng_event_field_value { - enum lttng_event_field_value_type type; -}; - -/* - * `LTTNG_EVENT_FIELD_VALUE_TYPE_UNSIGNED_INT`. - */ -struct lttng_event_field_value_uint { - struct lttng_event_field_value parent; - uint64_t val; -}; - -/* - * `LTTNG_EVENT_FIELD_VALUE_TYPE_SIGNED_INT`. - */ -struct lttng_event_field_value_int { - struct lttng_event_field_value parent; - int64_t val; -}; - -/* - * `LTTNG_EVENT_FIELD_VALUE_TYPE_UNSIGNED_ENUM` and - * `LTTNG_EVENT_FIELD_VALUE_TYPE_SIGNED_ENUM` (base). - */ -struct lttng_event_field_value_enum { - struct lttng_event_field_value parent; - - /* - * Array of `char *` (owned by this). - */ - struct lttng_dynamic_pointer_array labels; -}; - -/* - * `LTTNG_EVENT_FIELD_VALUE_TYPE_UNSIGNED_ENUM`. - */ -struct lttng_event_field_value_enum_uint { - struct lttng_event_field_value_enum parent; - uint64_t val; -}; - -/* - * `LTTNG_EVENT_FIELD_VALUE_TYPE_SIGNED_ENUM`. - */ -struct lttng_event_field_value_enum_int { - struct lttng_event_field_value_enum parent; - int64_t val; -}; - -/* `LTTNG_EVENT_FIELD_VALUE_TYPE_REAL` */ -struct lttng_event_field_value_real { - struct lttng_event_field_value parent; - double val; -}; - -/* `LTTNG_EVENT_FIELD_VALUE_TYPE_STRING` */ -struct lttng_event_field_value_string { - struct lttng_event_field_value parent; - - /* Owned by this */ - char *val; -}; - -/* `LTTNG_EVENT_FIELD_VALUE_TYPE_STRING` */ -struct lttng_event_field_value_array { - struct lttng_event_field_value parent; - - /* - * Array of `struct lttng_event_field_value *` (owned by this). - * - * A `NULL` element means it's unavailable - * (`LTTNG_EVENT_FIELD_VALUE_STATUS_UNAVAILABLE` status). - */ - struct lttng_dynamic_pointer_array elems; -}; - -/* - * This is internal since the session daemon knows nothing about the - * enumeration fields produced by the kernel tracer. Indeed, the kernel tracer - * manages its own metadata which remains opaque to the rest of the toolchain. - * - * Enumerations could be supported for the user space tracer, but it is not the - * case right now. - */ - -/* - * Sets `*count` to the number of labels of the enumeration event field - * value `field_val`. - * - * Returns: - * - * `LTTNG_EVENT_FIELD_VALUE_STATUS_OK`: - * Success. - * - * `LTTNG_EVENT_FIELD_VALUE_STATUS_INVALID`: - * * `field_val` is `NULL`. - * * The type of `field_val` is not - * `LTTNG_EVENT_FIELD_VALUE_TYPE_UNSIGNED_ENUM` or - * `LTTNG_EVENT_FIELD_VALUE_TYPE_SIGNED_ENUM`. - * * `count` is `NULL`. - */ -enum lttng_event_field_value_status -lttng_event_field_value_enum_get_label_count( - const struct lttng_event_field_value *field_val, - unsigned int *count); - -/* - * Returns the label at index `index` of the enumeration event field - * value `field_val`, or `NULL` if: - * - * * `field_val` is `NULL`. - * * The type of `field_val` is not - * `LTTNG_EVENT_FIELD_VALUE_TYPE_UNSIGNED_ENUM` or - * `LTTNG_EVENT_FIELD_VALUE_TYPE_SIGNED_ENUM`. - * * `index` is greater than or equal to the label count of `field_val`, - * as returned by lttng_event_field_value_enum_get_label_count(). - */ -const char *lttng_event_field_value_enum_get_label_at_index( - const struct lttng_event_field_value *field_val, - unsigned int index); - -struct lttng_event_field_value *lttng_event_field_value_uint_create( - uint64_t val); - -struct lttng_event_field_value *lttng_event_field_value_int_create( - int64_t val); - -struct lttng_event_field_value *lttng_event_field_value_enum_uint_create( - uint64_t val); - -struct lttng_event_field_value *lttng_event_field_value_enum_int_create( - int64_t val); - -struct lttng_event_field_value *lttng_event_field_value_real_create(double val); - -struct lttng_event_field_value *lttng_event_field_value_string_create( - const char *val); - -struct lttng_event_field_value *lttng_event_field_value_string_create_with_size( - const char *val, size_t size); - -struct lttng_event_field_value *lttng_event_field_value_array_create(void); - -int lttng_event_field_value_enum_append_label( - struct lttng_event_field_value *field_val, const char *label); - -int lttng_event_field_value_enum_append_label_with_size( - struct lttng_event_field_value *field_val, const char *label, - size_t size); - -int lttng_event_field_value_array_append( - struct lttng_event_field_value *array_field_val, - struct lttng_event_field_value *field_val); - -int lttng_event_field_value_array_append_unavailable( - struct lttng_event_field_value *array_field_val); - -void lttng_event_field_value_destroy(struct lttng_event_field_value *field_val); - -#endif /* LTTNG_EVENT_FIELD_VALUE_INTERNAL_H */