#define LTTNG_H
#include <limits.h>
+/*
+ * Necessary to include the fixed width type limits on glibc versions older
+ * than 2.18 when building with a C++ compiler.
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS
#include <stdint.h>
+#undef __STDC_LIMIT_MACROS
+#else /* #ifndef __STDC_LIMIT_MACROS */
+#include <stdint.h>
+#endif /* #else #ifndef __STDC_LIMIT_MACROS */
#include <sys/types.h>
/* Error codes that can be returned by API calls */
LTTNG_EVENT_CONTEXT_VPPID = 9,
LTTNG_EVENT_CONTEXT_PTHREAD_ID = 10,
LTTNG_EVENT_CONTEXT_HOSTNAME = 11,
+ LTTNG_EVENT_CONTEXT_IP = 12,
};
enum lttng_calibrate_type {
LTTNG_HEALTH_CONSUMER,
LTTNG_HEALTH_HT_CLEANUP,
LTTNG_HEALTH_APP_MANAGE_NOTIFY,
+ LTTNG_HEALTH_APP_REG_DISPATCH,
LTTNG_HEALTH_ALL,
};
*
* The structures should be initialized to zero before use.
*/
-#define LTTNG_SESSION_PADDING1 16
+#define LTTNG_SESSION_PADDING1 12
struct lttng_session {
char name[NAME_MAX];
/* The path where traces are written */
char path[PATH_MAX];
uint32_t enabled; /* enabled/started: 1, disabled/stopped: 0 */
+ uint32_t snapshot_mode;
char padding[LTTNG_SESSION_PADDING1];
};
*/
extern int lttng_create_session(const char *name, const char *url);
+/*
+ * Create a tracing session that will exclusively be used for snapshot meaning
+ * the session will be in no output mode and every channel enabled for that
+ * session will be set in overwrite mode and in mmap output since splice is not
+ * supported.
+ *
+ * If an url is given, it will be used to create a default snapshot output
+ * using it as a destination. If NULL, no output will be defined and an
+ * add-output call will be needed.
+ *
+ * Name can't be NULL.
+ */
+extern int lttng_create_session_snapshot(const char *name,
+ const char *snapshot_url);
+
/*
* Destroy a tracing session.
*