X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=libringbuffer%2Ffrontend.h;h=ce79cdeed2d3f1ed24ff90576fd6281b99b1a260;hb=a7859af5c73c3f7cc863702d322d86fc2c4523ab;hp=e1d9d575599e2baee592ccbe87b4c45097c2bf3d;hpb=4cfec15c93af7e0cfe3ce769ee90486bb8ab7c37;p=lttng-ust.git diff --git a/libringbuffer/frontend.h b/libringbuffer/frontend.h index e1d9d575..ce79cdee 100644 --- a/libringbuffer/frontend.h +++ b/libringbuffer/frontend.h @@ -34,17 +34,26 @@ * buf_addr is a pointer the the beginning of the preallocated buffer contiguous * address mapping. It is used only by RING_BUFFER_STATIC configuration. It can * be set to NULL for other backends. + * + * priv_data (output) is set to a pointer into a "priv_data_len"-sized + * memory area for client-specific data. This memory is managed by lib + * ring buffer. priv_data_align is the alignment required for the + * private data area. */ extern struct lttng_ust_shm_handle *channel_create(const struct lttng_ust_lib_ring_buffer_config *config, - const char *name, void *priv, + const char *name, + void **priv_data, + size_t priv_data_align, + size_t priv_data_size, + void *priv_data_init, void *buf_addr, size_t subbuf_size, size_t num_subbuf, unsigned int switch_timer_interval, unsigned int read_timer_interval, - int *shm_fd, int *wait_fd, - uint64_t *memory_map_size); + int **shm_fd, int **wait_fd, + uint64_t **memory_map_size); /* channel_handle_create - for consumer. */ extern @@ -57,12 +66,11 @@ int channel_handle_add_stream(struct lttng_ust_shm_handle *handle, int shm_fd, int wait_fd, uint64_t memory_map_size); /* - * channel_destroy returns the private data pointer. It finalizes all channel's - * buffers, waits for readers to release all references, and destroys the - * channel. + * channel_destroy finalizes all channel's buffers, waits for readers to + * release all references, and destroys the channel. */ extern -void *channel_destroy(struct channel *chan, struct lttng_ust_shm_handle *handle, +void channel_destroy(struct channel *chan, struct lttng_ust_shm_handle *handle, int shadow); @@ -81,8 +89,8 @@ extern struct lttng_ust_lib_ring_buffer *channel_get_ring_buffer( const struct lttng_ust_lib_ring_buffer_config *config, struct channel *chan, int cpu, struct lttng_ust_shm_handle *handle, - int *shm_fd, int *wait_fd, - uint64_t *memory_map_size); + int **shm_fd, int **wait_fd, + uint64_t **memory_map_size); extern int lib_ring_buffer_open_read(struct lttng_ust_lib_ring_buffer *buf, struct lttng_ust_shm_handle *handle, int shadow);