Cygwin: Introduce new LTTNG_UST_STREAM_PIPE command to open wakeup pipe
[lttng-ust.git] / include / lttng / ust-abi.h
index 2f21e49b1d4f9efe69ca9395aa50a237ef399376..cc9fa76a5f9b9f3a1bf7087f1120ab15d17ad57d 100644 (file)
@@ -4,26 +4,27 @@
 /*
  * 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,
@@ -47,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 */
@@ -54,20 +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 {
        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;
 };
 
@@ -78,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 */
@@ -94,26 +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 */
        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)
@@ -145,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)
@@ -166,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.027629 seconds and 4 git commands to generate.