Cygwin: Introduce new LTTNG_UST_STREAM_PIPE command to open wakeup pipe
[lttng-ust.git] / include / lttng / ust-abi.h
index 470645e6cf9e4ff58f37524febf4ebd26f088893..cc9fa76a5f9b9f3a1bf7087f1120ab15d17ad57d 100644 (file)
@@ -4,32 +4,38 @@
 /*
  * lttng/ust-abi.h
  *
- * Copyright 2010-2011 (c) - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- *
  * LTTng-UST ABI header
  *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ * Copyright 2010-2012 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
  *
- * Permission is hereby granted to use or copy this program
- * for any purpose,  provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
  */
 
 #include <stdint.h>
 
 #define LTTNG_UST_SYM_NAME_LEN 256
 
-#define LTTNG_UST_COMM_VERSION_MAJOR           0
-#define LTTNG_UST_COMM_VERSION_MINOR           1
+#define LTTNG_UST_COMM_VERSION_MAJOR           2
+#define LTTNG_UST_COMM_VERSION_MINOR           0
 
 enum lttng_ust_instrumentation {
        LTTNG_UST_TRACEPOINT            = 0,
        LTTNG_UST_PROBE                 = 1,
        LTTNG_UST_FUNCTION              = 2,
-       LTTNG_UST_TRACEPOINT_LOGLEVEL   = 3,
+};
+
+enum lttng_ust_loglevel_type {
+       LTTNG_UST_LOGLEVEL_ALL          = 0,
+       LTTNG_UST_LOGLEVEL_RANGE        = 1,
+       LTTNG_UST_LOGLEVEL_SINGLE       = 2,
 };
 
 enum lttng_ust_output {
@@ -42,6 +48,7 @@ struct lttng_ust_tracer_version {
        uint32_t patchlevel;
 };
 
+#define LTTNG_UST_CHANNEL_PADDING      LTTNG_UST_SYM_NAME_LEN + 32
 struct lttng_ust_channel {
        int overwrite;                          /* 1: overwrite, 0: discard */
        uint64_t subbuf_size;                   /* in bytes */
@@ -49,16 +56,32 @@ struct lttng_ust_channel {
        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];
 };
 
+#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;
 };
 
+#define LTTNG_UST_EVENT_PADDING1       16
+#define LTTNG_UST_EVENT_PADDING2       LTTNG_UST_SYM_NAME_LEN + 32
 struct lttng_ust_event {
-       char name[LTTNG_UST_SYM_NAME_LEN];      /* event name */
        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;
 };
 
@@ -69,15 +92,21 @@ enum lttng_ust_context_type {
        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;
 };
 
 /*
  * Tracer channel attributes.
  */
+#define LTTNG_UST_CHANNEL_ATTR_PADDING LTTNG_UST_SYM_NAME_LEN + 32
 struct lttng_ust_channel_attr {
        int overwrite;                          /* 1: overwrite, 0: discard */
        uint64_t subbuf_size;                   /* bytes */
@@ -85,27 +114,40 @@ struct lttng_ust_channel_attr {
        unsigned int switch_timer_interval;     /* usec */
        unsigned int read_timer_interval;       /* usec */
        enum lttng_ust_output output;           /* splice, mmap */
+       char padding[LTTNG_UST_CHANNEL_ATTR_PADDING];
 };
 
+#define LTTNG_UST_TRACEPOINT_ITER_PADDING      16
 struct lttng_ust_tracepoint_iter {
        char name[LTTNG_UST_SYM_NAME_LEN];      /* provider:name */
-       char loglevel[LTTNG_UST_SYM_NAME_LEN];  /* loglevel */
-       int64_t loglevel_value;
+       int loglevel;
+       char padding[LTTNG_UST_TRACEPOINT_ITER_PADDING];
 };
 
+#define LTTNG_UST_OBJECT_DATA_PADDING          LTTNG_UST_SYM_NAME_LEN + 32
 struct lttng_ust_object_data {
        int handle;
        int shm_fd;
+       char *shm_path;
        int wait_fd;
+       char *wait_pipe_path;
        uint64_t memory_map_size;
+       char padding[LTTNG_UST_OBJECT_DATA_PADDING];
 };
 
 enum lttng_ust_calibrate_type {
        LTTNG_UST_CALIBRATE_TRACEPOINT,
 };
 
+#define LTTNG_UST_CALIBRATE_PADDING1   16
+#define LTTNG_UST_CALIBRATE_PADDING2   LTTNG_UST_SYM_NAME_LEN + 32
 struct lttng_ust_calibrate {
        enum lttng_ust_calibrate_type type;     /* type (input) */
+       char padding[LTTNG_UST_CALIBRATE_PADDING1];
+
+       union {
+               char padding[LTTNG_UST_CALIBRATE_PADDING2];
+       } u;
 };
 
 #define _UST_CMD(minor)                                (minor)
@@ -137,7 +179,7 @@ struct lttng_ust_calibrate {
 #define LTTNG_UST_STREAM                       _UST_CMD(0x60)
 #define LTTNG_UST_EVENT                        \
        _UST_CMDW(0x61, struct lttng_ust_event)
-
+#define LTTNG_UST_STREAM_PIPE                  _UST_CMD(0x62)
 /* Event and Channel FD commands */
 #define LTTNG_UST_CONTEXT                      \
        _UST_CMDW(0x70, struct lttng_ust_context)
@@ -158,12 +200,16 @@ struct lttng_ust_obj;
 union ust_args {
        struct {
                int *shm_fd;
+               char *shm_path;
                int *wait_fd;
+               char *wait_pipe_path;
                uint64_t *memory_map_size;
        } channel;
        struct {
                int *shm_fd;
+               char *shm_path;
                int *wait_fd;
+               char *wait_pipe_path;
                uint64_t *memory_map_size;
        } stream;
 };
This page took 0.025028 seconds and 4 git commands to generate.