X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Flttng.h;h=83232454f865c5b38d5ed00dcd117c8b538c40e0;hb=12e2b88170b3bf7a55beb692c717470752ad51eb;hp=5a826aad78bd3262063de1f14011c5d06f01a5c4;hpb=a9e87764ffd56e6ab80432395223c1a5d7f7a8ac;p=lttng-tools.git diff --git a/include/lttng/lttng.h b/include/lttng/lttng.h index 5a826aad7..83232454f 100644 --- a/include/lttng/lttng.h +++ b/include/lttng/lttng.h @@ -33,10 +33,6 @@ extern "C" { #endif -#ifndef LTTNG_PACKED -#define LTTNG_PACKED __attribute__((__packed__)) -#endif - /* * Event symbol length. Copied from LTTng kernel ABI. */ @@ -143,16 +139,27 @@ enum lttng_health_component { LTTNG_HEALTH_APP_REG, LTTNG_HEALTH_KERNEL, LTTNG_HEALTH_CONSUMER, + LTTNG_HEALTH_HT_CLEANUP, + LTTNG_HEALTH_APP_MANAGE_NOTIFY, + LTTNG_HEALTH_APP_REG_DISPATCH, LTTNG_HEALTH_ALL, }; +/* Buffer type for a specific domain. */ +enum lttng_buffer_type { + LTTNG_BUFFER_PER_PID, /* Only supported by UST being the default. */ + LTTNG_BUFFER_PER_UID, /* Only supported by UST. */ + LTTNG_BUFFER_GLOBAL, /* Only supported by the Kernel. */ +}; + /* * The structures should be initialized to zero before use. */ -#define LTTNG_DOMAIN_PADDING1 16 +#define LTTNG_DOMAIN_PADDING1 12 #define LTTNG_DOMAIN_PADDING2 LTTNG_SYMBOL_NAME_LEN + 32 struct lttng_domain { enum lttng_domain_type type; + enum lttng_buffer_type buf_type; char padding[LTTNG_DOMAIN_PADDING1]; union { @@ -160,7 +167,7 @@ struct lttng_domain { char exec_name[NAME_MAX]; char padding[LTTNG_DOMAIN_PADDING2]; } attr; -} LTTNG_PACKED; +}; /* * Perf counter attributes @@ -174,7 +181,7 @@ struct lttng_event_perf_counter_ctx { char name[LTTNG_SYMBOL_NAME_LEN]; char padding[LTTNG_PERF_EVENT_PADDING1]; -} LTTNG_PACKED; +}; /* * Event/channel context @@ -191,7 +198,7 @@ struct lttng_event_context { struct lttng_event_perf_counter_ctx perf_counter; char padding[LTTNG_EVENT_CONTEXT_PADDING2]; } u; -} LTTNG_PACKED; +}; /* * Event probe. @@ -208,7 +215,7 @@ struct lttng_event_probe_attr { char symbol_name[LTTNG_SYMBOL_NAME_LEN]; char padding[LTTNG_EVENT_PROBE_PADDING1]; -} LTTNG_PACKED; +}; /* * Function tracer @@ -220,7 +227,7 @@ struct lttng_event_function_attr { char symbol_name[LTTNG_SYMBOL_NAME_LEN]; char padding[LTTNG_EVENT_FUNCTION_PADDING1]; -} LTTNG_PACKED; +}; /* * Generic lttng event @@ -249,7 +256,7 @@ struct lttng_event { char padding[LTTNG_EVENT_PADDING2]; } attr; -} LTTNG_PACKED; +}; enum lttng_event_field_type { LTTNG_EVENT_FIELD_OTHER = 0, @@ -266,14 +273,14 @@ struct lttng_event_field { char padding[LTTNG_EVENT_FIELD_PADDING]; struct lttng_event event; int nowrite; -} LTTNG_PACKED; +}; /* * 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 +#define LTTNG_CHANNEL_ATTR_PADDING1 LTTNG_SYMBOL_NAME_LEN + 16 struct lttng_channel_attr { int overwrite; /* 1: overwrite, 0: discard */ uint64_t subbuf_size; /* bytes */ @@ -281,9 +288,12 @@ struct lttng_channel_attr { unsigned int switch_timer_interval; /* usec */ unsigned int read_timer_interval; /* usec */ enum lttng_event_output output; /* splice, mmap */ + /* LTTng 2.1 padding limit */ + uint64_t tracefile_size; /* bytes */ + uint64_t tracefile_count; /* number of tracefiles */ char padding[LTTNG_CHANNEL_ATTR_PADDING1]; -} LTTNG_PACKED; +}; /* * Channel information structure. For both kernel and user-space. @@ -297,14 +307,14 @@ struct lttng_channel { struct lttng_channel_attr attr; char padding[LTTNG_CHANNEL_PADDING1]; -} LTTNG_PACKED; +}; #define LTTNG_CALIBRATE_PADDING1 16 struct lttng_calibrate { enum lttng_calibrate_type type; char padding[LTTNG_CALIBRATE_PADDING1]; -} LTTNG_PACKED; +}; /* * Basic session information. @@ -323,7 +333,7 @@ struct lttng_session { uint32_t enabled; /* enabled/started: 1, disabled/stopped: 0 */ char padding[LTTNG_SESSION_PADDING1]; -} LTTNG_PACKED; +}; /* * Handle used as a context for commands. @@ -336,7 +346,7 @@ struct lttng_handle { struct lttng_domain domain; char padding[LTTNG_HANDLE_PADDING1]; -} LTTNG_PACKED; +}; /* * Public LTTng control API @@ -594,12 +604,14 @@ extern int lttng_set_consumer_url(struct lttng_handle *handle, /* * Enable the consumer for a session and domain. */ -extern int lttng_enable_consumer(struct lttng_handle *handle); +extern LTTNG_DEPRECATED("This call is now obsolete.") +int lttng_enable_consumer(struct lttng_handle *handle); /* * Disable consumer for a session and domain. */ -extern int lttng_disable_consumer(struct lttng_handle *handle); +extern LTTNG_DEPRECATED("This call is now obsolete.") +int lttng_disable_consumer(struct lttng_handle *handle); /* * Check session daemon health for a specific component.