struct lttng_ust_calibrate;
int ustctl_calibrate(int sock, struct lttng_ust_calibrate *calibrate);
-/* TODO: object_data send/recv between sessiond and consumer */
-/* TODO: release shm_handle */
-
/*
* Map channel shm_handle and add streams. Typically performed by the
* consumer to map the objects into its memory space.
struct shm_handle *ustctl_map_channel(struct object_data *chan_data);
int ustctl_add_stream(struct shm_handle *shm_handle,
struct object_data *stream_data);
+/*
+ * Note: the object_data from which the shm_handle is derived can only
+ * be released after unmapping the handle.
+ */
+void ustctl_unmap_channel(struct shm_handle *shm_handle);
/* Buffer operations */
struct shm_handle;
struct lib_ring_buffer;
+void *ustctl_get_mmap_base(struct shm_handle *handle,
+ struct lib_ring_buffer *buf);
+
+/* Open/close stream buffers for read */
+struct lib_ring_buffer *ustctl_open_stream_read(struct shm_handle *handle,
+ int cpu);
+void ustctl_close_stream_read(struct shm_handle *handle,
+ struct lib_ring_buffer *buf);
+
/* For mmap mode, readable without "get" operation */
int ustctl_get_mmap_len(struct shm_handle *handle,
struct lib_ring_buffer *buf,
* For mmap mode, operate on the current packet (between get/put or
* get_next/put_next).
*/
+void *ustctl_get_mmap_base(struct shm_handle *handle,
+ struct lib_ring_buffer *buf);
int ustctl_get_mmap_read_offset(struct shm_handle *handle,
struct lib_ring_buffer *buf, unsigned long *off);
int ustctl_get_subbuf_size(struct shm_handle *handle,