uint64_t memory_map_size;
};
+int ustctl_register_done(int sock);
int ustctl_create_session(int sock);
int ustctl_open_metadata(int sock, int session_handle,
struct lttng_ust_channel_attr *chops,
int ustctl_tracer_version(int sock, struct lttng_ust_tracer_version *v);
int ustctl_wait_quiescent(int sock);
+/* Flush each buffers in this channel */
+int ustctl_flush_buffers(int sock, struct object_data *channel_data);
+
/* not implemented yet */
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,