Implement LTTng-UST perf counters support
[lttng-tools.git] / include / lttng / lttng.h
index 255f7c42eeae2c9a3f447ce445f16fa6d62c97dc..e59b2d31d41c6ad18c1b936f41cf47679454d50c 100644 (file)
 #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 */
@@ -95,6 +105,22 @@ enum lttng_loglevel {
        LTTNG_LOGLEVEL_DEBUG                  = 14,
 };
 
+/*
+ * Available loglevels for the JUL domain. Those are an exact map from the
+ * class java.util.logging.Level.
+ */
+enum lttng_loglevel_jul {
+       LTTNG_LOGLEVEL_JUL_OFF                = INT32_MAX,
+       LTTNG_LOGLEVEL_JUL_SEVERE             = 1000,
+       LTTNG_LOGLEVEL_JUL_WARNING            = 900,
+       LTTNG_LOGLEVEL_JUL_INFO               = 800,
+       LTTNG_LOGLEVEL_JUL_CONFIG             = 700,
+       LTTNG_LOGLEVEL_JUL_FINE               = 500,
+       LTTNG_LOGLEVEL_JUL_FINER              = 400,
+       LTTNG_LOGLEVEL_JUL_FINEST             = 300,
+       LTTNG_LOGLEVEL_JUL_ALL                = INT32_MIN,
+};
+
 /*
  * LTTng consumer mode
  */
@@ -106,7 +132,7 @@ enum lttng_event_output {
 /* Event context possible type */
 enum lttng_event_context_type {
        LTTNG_EVENT_CONTEXT_PID               = 0,
-       LTTNG_EVENT_CONTEXT_PERF_COUNTER      = 1,
+       LTTNG_EVENT_CONTEXT_PERF_COUNTER      = 1,      /* Backward compat. */
        LTTNG_EVENT_CONTEXT_PROCNAME          = 2,
        LTTNG_EVENT_CONTEXT_PRIO              = 3,
        LTTNG_EVENT_CONTEXT_NICE              = 4,
@@ -118,6 +144,8 @@ enum lttng_event_context_type {
        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,
 };
 
 enum lttng_calibrate_type {
@@ -226,7 +254,7 @@ struct lttng_event_function_attr {
  *
  * The structures should be initialized to zero before use.
  */
-#define LTTNG_EVENT_PADDING1               15
+#define LTTNG_EVENT_PADDING1               14
 #define LTTNG_EVENT_PADDING2               LTTNG_SYMBOL_NAME_LEN + 32
 struct lttng_event {
        enum lttng_event_type type;
@@ -238,6 +266,7 @@ struct lttng_event {
        int32_t enabled;        /* Does not apply: -1 */
        pid_t pid;
        unsigned char filter;   /* filter enabled ? */
+       unsigned char exclusion; /* exclusions added ? */
 
        char padding[LTTNG_EVENT_PADDING1];
 
This page took 0.025575 seconds and 4 git commands to generate.