- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#include <stdint.h>
-#include <common/macros.h>
-
-#define LTTNG_UST_SYM_NAME_LEN 256
-
-/* Version for comm protocol between sessiond and ust */
-#define LTTNG_UST_COMM_VERSION_MAJOR 2
-#define LTTNG_UST_COMM_VERSION_MINOR 1
-
-/* Version for ABI between liblttng-ust, sessiond, consumerd */
-#define LTTNG_UST_INTERNAL_MAJOR_VERSION 3
-#define LTTNG_UST_INTERNAL_MINOR_VERSION 0
-#define LTTNG_UST_INTERNAL_PATCHLEVEL_VERSION 0
-
-enum lttng_ust_instrumentation {
- LTTNG_UST_TRACEPOINT = 0,
- LTTNG_UST_PROBE = 1,
- LTTNG_UST_FUNCTION = 2,
-};
-
-enum lttng_ust_loglevel_type {
- LTTNG_UST_LOGLEVEL_ALL = 0,
- LTTNG_UST_LOGLEVEL_RANGE = 1,
- LTTNG_UST_LOGLEVEL_SINGLE = 2,
-};
-
-enum lttng_ust_output {
- LTTNG_UST_MMAP = 0,
-};
-
-struct lttng_ust_tracer_version {
- uint32_t major;
- uint32_t minor;
- uint32_t patchlevel;
-} LTTNG_PACKED;
-
-#define LTTNG_UST_CHANNEL_PADDING LTTNG_UST_SYM_NAME_LEN + 32
-struct lttng_ust_channel {
- uint64_t subbuf_size; /* in bytes */
- uint64_t num_subbuf;
- int overwrite; /* 1: overwrite, 0: discard */
- unsigned int switch_timer_interval; /* usecs */
- unsigned int read_timer_interval; /* usecs */
- enum lttng_ust_output output; /* output mode */
- char padding[LTTNG_UST_CHANNEL_PADDING];
-} LTTNG_PACKED;
-
-#define LTTNG_UST_STREAM_PADDING1 16
-#define LTTNG_UST_STREAM_PADDING2 LTTNG_UST_SYM_NAME_LEN + 32
-struct lttng_ust_stream {
- char padding[LTTNG_UST_STREAM_PADDING1];
-
- union {
- char padding[LTTNG_UST_STREAM_PADDING2];
- } u;
-} LTTNG_PACKED;
-
-#define LTTNG_UST_EVENT_PADDING1 16
-#define LTTNG_UST_EVENT_PADDING2 LTTNG_UST_SYM_NAME_LEN + 32
-struct lttng_ust_event {
- enum lttng_ust_instrumentation instrumentation;
- char name[LTTNG_UST_SYM_NAME_LEN]; /* event name */
-
- enum lttng_ust_loglevel_type loglevel_type;
- int loglevel; /* value, -1: all */
- char padding[LTTNG_UST_EVENT_PADDING1];
-
- /* Per instrumentation type configuration */
- union {
- char padding[LTTNG_UST_EVENT_PADDING2];
- } u;
-} LTTNG_PACKED;
-
-enum lttng_ust_field_type {
- LTTNG_UST_FIELD_OTHER = 0,
- LTTNG_UST_FIELD_INTEGER = 1,
- LTTNG_UST_FIELD_ENUM = 2,
- LTTNG_UST_FIELD_FLOAT = 3,
- LTTNG_UST_FIELD_STRING = 4,
-};
-
-#define LTTNG_UST_FIELD_ITER_PADDING LTTNG_UST_SYM_NAME_LEN + 28
-struct lttng_ust_field_iter {
- char event_name[LTTNG_UST_SYM_NAME_LEN];
- char field_name[LTTNG_UST_SYM_NAME_LEN];
- enum lttng_ust_field_type type;
- int loglevel; /* event loglevel */
- int nowrite;
- char padding[LTTNG_UST_FIELD_ITER_PADDING];
-} LTTNG_PACKED;
-
-enum lttng_ust_context_type {
- LTTNG_UST_CONTEXT_VTID = 0,
- LTTNG_UST_CONTEXT_VPID = 1,
- LTTNG_UST_CONTEXT_PTHREAD_ID = 2,
- LTTNG_UST_CONTEXT_PROCNAME = 3,
-};
-
-#define LTTNG_UST_CONTEXT_PADDING1 16
-#define LTTNG_UST_CONTEXT_PADDING2 LTTNG_UST_SYM_NAME_LEN + 32
-struct lttng_ust_context {
- enum lttng_ust_context_type ctx;
- char padding[LTTNG_UST_CONTEXT_PADDING1];
-
- union {
- char padding[LTTNG_UST_CONTEXT_PADDING2];
- } u;
-} LTTNG_PACKED;
-
-/*
- * Tracer channel attributes.