#include <urcu/list.h>
#include <urcu/hlist.h>
-#include <uuid/uuid.h>
#include <stdint.h>
#include <lttng/ust-abi.h>
#include <lttng/ust-tracer.h>
-#include <endian.h>
+#include <lttng/ust-endian.h>
#include <float.h>
+#define LTTNG_UST_UUID_LEN 16
+
struct ltt_channel;
struct ltt_session;
struct lttng_ust_lib_ring_buffer_ctx;
.size = sizeof(_type) * CHAR_BIT, \
.alignment = lttng_alignof(_type) * CHAR_BIT, \
.signedness = lttng_is_signed_type(_type), \
- .reverse_byte_order = _byte_order != __BYTE_ORDER, \
+ .reverse_byte_order = _byte_order != BYTE_ORDER, \
.base = _base, \
.encoding = lttng_encode_##_encoding, \
}, \
- _float_mant_dig(_type), \
.mant_dig = _float_mant_dig(_type), \
.alignment = lttng_alignof(_type) * CHAR_BIT, \
- .reverse_byte_order = __BYTE_ORDER != __FLOAT_WORD_ORDER, \
+ .reverse_byte_order = BYTE_ORDER != FLOAT_WORD_ORDER, \
}, \
} \
size_t subbuf_size, size_t num_subbuf,
unsigned int switch_timer_interval,
unsigned int read_timer_interval,
- int **shm_fd, int **wait_fd,
+ int **shm_fd, char **shm_path,
+ int **wait_fd, char **wait_pipe_path,
uint64_t **memory_map_size,
struct ltt_channel *chan_priv_init);
void (*channel_destroy)(struct ltt_channel *ltt_chan);
struct lttng_ust_lib_ring_buffer *(*buffer_read_open)(struct channel *chan,
struct lttng_ust_shm_handle *handle,
- int **shm_fd, int **wait_fd,
+ int **shm_fd, char **shm_path,
+ int **wait_fd, char **wait_pipe_path,
uint64_t **memory_map_size);
void (*buffer_read_close)(struct lttng_ust_lib_ring_buffer *buf,
struct lttng_ust_shm_handle *handle);
int (*is_finalized)(struct channel *chan);
int (*is_disabled)(struct channel *chan);
int (*flush_buffer)(struct channel *chan, struct lttng_ust_shm_handle *handle);
+ int (*channel_open_pipe)(struct channel *chan, struct lttng_ust_shm_handle *handle);
};
struct ltt_channel {
/* Channel ID, available for consumer too */
unsigned int id;
/* Copy of session UUID for consumer (availability through shm) */
- uuid_t uuid; /* Trace session unique ID */
+ unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */
};
struct ltt_session {
struct cds_list_head wildcards; /* Wildcard list head */
struct cds_list_head list; /* Session list */
unsigned int free_chan_id; /* Next chan ID to allocate */
- uuid_t uuid; /* Trace session unique ID */
+ unsigned char uuid[LTTNG_UST_UUID_LEN]; /* Trace session unique ID */
unsigned int metadata_dumped:1;
};
size_t subbuf_size, size_t num_subbuf,
unsigned int switch_timer_interval,
unsigned int read_timer_interval,
- int **shm_fd, int **wait_fd,
+ int **shm_fd, char **shm_path,
+ int **wait_fd, char **wait_pipe_path,
uint64_t **memory_map_size,
struct ltt_channel *chan_priv_init);
struct ltt_channel *ltt_global_channel_create(struct ltt_session *session,
size_t subbuf_size, size_t num_subbuf,
unsigned int switch_timer_interval,
unsigned int read_timer_interval,
- int **shm_fd, int **wait_fd,
+ int **shm_fd, char **shm_path,
+ int **wait_fd, char **wait_pipe_path,
uint64_t **memory_map_size);
int ltt_event_create(struct ltt_channel *chan,