X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Fust%2Flttng-events.h;h=31938327059c09ab218d92eed4c0cae0ba84fcf4;hb=1d4981969313da002983ca979bd85c95493f7316;hp=5ca156b7c74a81a025673aa6608fd2896c67f838;hpb=8d8a24c8565ce6dce7e7bd1045a95d1d2af5e536;p=ust.git diff --git a/include/ust/lttng-events.h b/include/ust/lttng-events.h index 5ca156b..3193832 100644 --- a/include/ust/lttng-events.h +++ b/include/ust/lttng-events.h @@ -15,12 +15,10 @@ #include #include #include +#include #include #include -#undef is_signed_type -#define is_signed_type(type) (((type)(-1)) < 0) - struct ltt_channel; struct ltt_session; struct lib_ring_buffer_ctx; @@ -57,8 +55,8 @@ struct lttng_enum_entry { .u.basic.integer = \ { \ .size = sizeof(_type) * CHAR_BIT, \ - .alignment = ltt_alignof(_type) * CHAR_BIT, \ - .signedness = is_signed_type(_type), \ + .alignment = lttng_alignof(_type) * CHAR_BIT, \ + .signedness = lttng_is_signed_type(_type), \ .reverse_byte_order = _byte_order != __BYTE_ORDER, \ .base = _base, \ .encoding = lttng_encode_##_encoding, \ @@ -88,8 +86,7 @@ struct lttng_integer_type { .exp_dig = sizeof(_type) * CHAR_BIT \ - _float_mant_dig(_type), \ .mant_dig = _float_mant_dig(_type), \ - .alignment = ltt_alignof(_type) * CHAR_BIT, \ - .signedness = is_signed_type(_type), \ + .alignment = lttng_alignof(_type) * CHAR_BIT, \ .reverse_byte_order = __BYTE_ORDER != __FLOAT_WORD_ORDER, \ }, \ } \ @@ -198,17 +195,20 @@ struct ltt_event { }; struct channel; +struct shm_handle; struct ltt_channel_ops { - struct shm_handle *(*channel_create)(const char *name, + struct ltt_channel *(*channel_create)(const char *name, struct ltt_channel *ltt_chan, void *buf_addr, size_t subbuf_size, size_t num_subbuf, unsigned int switch_timer_interval, unsigned int read_timer_interval); - void (*channel_destroy)(struct shm_handle *handle); - struct lib_ring_buffer *(*buffer_read_open)(struct channel *chan); - void (*buffer_read_close)(struct lib_ring_buffer *buf); + void (*channel_destroy)(struct ltt_channel *ltt_chan); + struct lib_ring_buffer *(*buffer_read_open)(struct channel *chan, + struct shm_handle *handle); + void (*buffer_read_close)(struct lib_ring_buffer *buf, + struct shm_handle *handle); int (*event_reserve)(struct lib_ring_buffer_ctx *ctx, uint32_t event_id); void (*event_commit)(struct lib_ring_buffer_ctx *ctx); @@ -219,7 +219,8 @@ struct ltt_channel_ops { * packet. Note that the size returned is only a hint, since it * may change due to concurrent writes. */ - size_t (*packet_avail_size)(struct channel *chan); + size_t (*packet_avail_size)(struct channel *chan, + struct shm_handle *handle); //wait_queue_head_t *(*get_reader_wait_queue)(struct channel *chan); //wait_queue_head_t *(*get_hp_wait_queue)(struct channel *chan); int (*is_finalized)(struct channel *chan);