/*
* Copyright (C) 2014 - David Goulet <dgoulet@efficios.com>
+ * Copyright (C) 2016 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License, version 2.1 only,
LTTNG_LOGLEVEL_LOG4J_ALL = INT32_MIN,
};
+/*
+ * Available loglevels for the Python domain. Those are an exact map from the
+ * Level class.
+ */
+enum lttng_loglevel_python {
+ LTTNG_LOGLEVEL_PYTHON_CRITICAL = 50,
+ LTTNG_LOGLEVEL_PYTHON_ERROR = 40,
+ LTTNG_LOGLEVEL_PYTHON_WARNING = 30,
+ LTTNG_LOGLEVEL_PYTHON_INFO = 20,
+ LTTNG_LOGLEVEL_PYTHON_DEBUG = 10,
+ LTTNG_LOGLEVEL_PYTHON_NOTSET = 0,
+};
+
/*
* LTTng consumer mode
*/
/* Event context possible type */
enum lttng_event_context_type {
- LTTNG_EVENT_CONTEXT_PID = 0,
- LTTNG_EVENT_CONTEXT_PERF_COUNTER = 1, /* Backward compat. */
- LTTNG_EVENT_CONTEXT_PROCNAME = 2,
- LTTNG_EVENT_CONTEXT_PRIO = 3,
- LTTNG_EVENT_CONTEXT_NICE = 4,
- LTTNG_EVENT_CONTEXT_VPID = 5,
- LTTNG_EVENT_CONTEXT_TID = 6,
- LTTNG_EVENT_CONTEXT_VTID = 7,
- LTTNG_EVENT_CONTEXT_PPID = 8,
- LTTNG_EVENT_CONTEXT_VPPID = 9,
- LTTNG_EVENT_CONTEXT_PTHREAD_ID = 10,
- LTTNG_EVENT_CONTEXT_HOSTNAME = 11,
- LTTNG_EVENT_CONTEXT_IP = 12,
- LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER = 13,
+ LTTNG_EVENT_CONTEXT_PID = 0,
+ LTTNG_EVENT_CONTEXT_PERF_COUNTER = 1, /* Backward compat. */
+ LTTNG_EVENT_CONTEXT_PROCNAME = 2,
+ LTTNG_EVENT_CONTEXT_PRIO = 3,
+ LTTNG_EVENT_CONTEXT_NICE = 4,
+ LTTNG_EVENT_CONTEXT_VPID = 5,
+ LTTNG_EVENT_CONTEXT_TID = 6,
+ LTTNG_EVENT_CONTEXT_VTID = 7,
+ LTTNG_EVENT_CONTEXT_PPID = 8,
+ LTTNG_EVENT_CONTEXT_VPPID = 9,
+ LTTNG_EVENT_CONTEXT_PTHREAD_ID = 10,
+ LTTNG_EVENT_CONTEXT_HOSTNAME = 11,
+ LTTNG_EVENT_CONTEXT_IP = 12,
+ LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER = 13,
LTTNG_EVENT_CONTEXT_PERF_THREAD_COUNTER = 14,
+ LTTNG_EVENT_CONTEXT_APP_CONTEXT = 15,
};
enum lttng_event_field_type {
LTTNG_EVENT_FIELD_STRING = 4,
};
+enum lttng_event_flag {
+ LTTNG_EVENT_FLAG_SYSCALL_32 = (1U << 0),
+ LTTNG_EVENT_FLAG_SYSCALL_64 = (1U << 1),
+};
+
/*
* Perf counter attributes
*
union {
struct lttng_event_perf_counter_ctx perf_counter;
+ struct {
+ char *provider_name;
+ char *ctx_name;
+ } app_ctx;
char padding[LTTNG_EVENT_CONTEXT_PADDING2];
} u;
};
*
* The structures should be initialized to zero before use.
*/
-#define LTTNG_EVENT_PADDING1 14
+#define LTTNG_EVENT_PADDING1 10
#define LTTNG_EVENT_PADDING2 LTTNG_SYMBOL_NAME_LEN + 32
struct lttng_event {
enum lttng_event_type type;
unsigned char filter; /* filter enabled ? */
unsigned char exclusion; /* exclusions added ? */
+ /* Event flag, from 2.6 and above. */
+ enum lttng_event_flag flags;
+
char padding[LTTNG_EVENT_PADDING1];
/* Per event type configuration */
extern int lttng_list_tracepoint_fields(struct lttng_handle *handle,
struct lttng_event_field **fields);
+/*
+ * List the available kernel syscall.
+ *
+ * Return the size (number of entries) of the allocated "lttng_event" array.
+ * All events in will be of type syscall. Caller must free events. On error a
+ * negative LTTng error code is returned.
+ */
+extern int lttng_list_syscalls(struct lttng_event **events);
+
/*
* Add context to event(s) for a specific channel (or for all).
*