-/* Health component for the health check function. */
-enum lttng_health_component {
- LTTNG_HEALTH_CMD,
- LTTNG_HEALTH_APP_MANAGE,
- LTTNG_HEALTH_APP_REG,
- LTTNG_HEALTH_KERNEL,
- LTTNG_HEALTH_CONSUMER,
- LTTNG_HEALTH_ALL,
-};
-
-/*
- * The structures should be initialized to zero before use.
- */
-#define LTTNG_DOMAIN_PADDING1 16
-#define LTTNG_DOMAIN_PADDING2 LTTNG_SYMBOL_NAME_LEN + 32
-struct lttng_domain {
- enum lttng_domain_type type;
- char padding[LTTNG_DOMAIN_PADDING1];
-
- union {
- pid_t pid;
- char exec_name[NAME_MAX];
- char padding[LTTNG_DOMAIN_PADDING2];
- } attr;
-};
-
-/*
- * Perf counter attributes
- *
- * The structures should be initialized to zero before use.
- */
-#define LTTNG_PERF_EVENT_PADDING1 16
-struct lttng_event_perf_counter_ctx {
- uint32_t type;
- uint64_t config;
- char name[LTTNG_SYMBOL_NAME_LEN];
-
- char padding[LTTNG_PERF_EVENT_PADDING1];
-};
-
-/*
- * Event/channel context
- *
- * The structures should be initialized to zero before use.
- */
-#define LTTNG_EVENT_CONTEXT_PADDING1 16
-#define LTTNG_EVENT_CONTEXT_PADDING2 LTTNG_SYMBOL_NAME_LEN + 32
-struct lttng_event_context {
- enum lttng_event_context_type ctx;
- char padding[LTTNG_EVENT_CONTEXT_PADDING1];
-
- union {
- struct lttng_event_perf_counter_ctx perf_counter;
- char padding[LTTNG_EVENT_CONTEXT_PADDING2];
- } u;
-};
-
-/*
- * Event probe.
- *
- * Either addr is used or symbol_name and offset.
- *
- * The structures should be initialized to zero before use.
- */
-#define LTTNG_EVENT_PROBE_PADDING1 16
-struct lttng_event_probe_attr {
- uint64_t addr;
-
- uint64_t offset;
- char symbol_name[LTTNG_SYMBOL_NAME_LEN];
-
- char padding[LTTNG_EVENT_PROBE_PADDING1];
-};
-
-/*
- * Function tracer
- *
- * The structures should be initialized to zero before use.
- */
-#define LTTNG_EVENT_FUNCTION_PADDING1 16
-struct lttng_event_function_attr {
- char symbol_name[LTTNG_SYMBOL_NAME_LEN];
-
- char padding[LTTNG_EVENT_FUNCTION_PADDING1];
-};
-
-/*
- * Generic lttng event
- *
- * The structures should be initialized to zero before use.
- */
-#define LTTNG_EVENT_PADDING1 15
-#define LTTNG_EVENT_PADDING2 LTTNG_SYMBOL_NAME_LEN + 32
-struct lttng_event {
- enum lttng_event_type type;
- char name[LTTNG_SYMBOL_NAME_LEN];
-
- enum lttng_loglevel_type loglevel_type;
- int loglevel;
-
- int32_t enabled; /* Does not apply: -1 */
- pid_t pid;
- unsigned char filter; /* filter enabled ? */
-
- char padding[LTTNG_EVENT_PADDING1];
-
- /* Per event type configuration */
- union {
- struct lttng_event_probe_attr probe;
- struct lttng_event_function_attr ftrace;
-
- char padding[LTTNG_EVENT_PADDING2];
- } attr;
-};
-
-enum lttng_event_field_type {
- LTTNG_EVENT_FIELD_OTHER = 0,
- LTTNG_EVENT_FIELD_INTEGER = 1,
- LTTNG_EVENT_FIELD_ENUM = 2,
- LTTNG_EVENT_FIELD_FLOAT = 3,
- LTTNG_EVENT_FIELD_STRING = 4,
-};
-
-#define LTTNG_EVENT_FIELD_PADDING LTTNG_SYMBOL_NAME_LEN + 32
-struct lttng_event_field {
- char field_name[LTTNG_SYMBOL_NAME_LEN];
- enum lttng_event_field_type type;
- char padding[LTTNG_EVENT_FIELD_PADDING];
- struct lttng_event event;
-};
-
-/*
- * Tracer channel attributes. For both kernel and user-space.
- *
- * The structures should be initialized to zero before use.
- */
-#define LTTNG_CHANNEL_ATTR_PADDING1 LTTNG_SYMBOL_NAME_LEN + 32
-struct lttng_channel_attr {
- int overwrite; /* 1: overwrite, 0: discard */
- uint64_t subbuf_size; /* bytes */
- uint64_t num_subbuf; /* power of 2 */
- unsigned int switch_timer_interval; /* usec */
- unsigned int read_timer_interval; /* usec */
- enum lttng_event_output output; /* splice, mmap */
-
- char padding[LTTNG_CHANNEL_ATTR_PADDING1];
-};
-
-/*
- * Channel information structure. For both kernel and user-space.
- *
- * The structures should be initialized to zero before use.
- */
-#define LTTNG_CHANNEL_PADDING1 16
-struct lttng_channel {
- char name[LTTNG_SYMBOL_NAME_LEN];
- uint32_t enabled;
- struct lttng_channel_attr attr;
-
- char padding[LTTNG_CHANNEL_PADDING1];