mmap_offset += subbuf_size;
}
}
-
return 0;
free_array:
* @subbuf_size: size of sub-buffers (> PAGE_SIZE, power of 2)
* @num_subbuf: number of sub-buffers (power of 2)
* @lttng_ust_shm_handle: shared memory handle
+ * @stream_fds: stream file descriptors.
*
* Returns channel pointer if successful, %NULL otherwise.
*
const char *name,
const struct lttng_ust_lib_ring_buffer_config *config,
size_t subbuf_size, size_t num_subbuf,
- struct lttng_ust_shm_handle *handle)
+ struct lttng_ust_shm_handle *handle,
+ const int *stream_fds)
{
struct channel *chan = caa_container_of(chanb, struct channel, backend);
unsigned int i;
struct shm_object *shmobj;
shmobj = shm_object_table_alloc(handle->table, shmsize,
- SHM_OBJECT_SHM);
+ SHM_OBJECT_SHM, stream_fds[i]);
if (!shmobj)
goto end;
align_shm(shmobj, __alignof__(struct lttng_ust_lib_ring_buffer));
struct lttng_ust_lib_ring_buffer *buf;
shmobj = shm_object_table_alloc(handle->table, shmsize,
- SHM_OBJECT_SHM);
+ SHM_OBJECT_SHM, stream_fds[0]);
if (!shmobj)
goto end;
align_shm(shmobj, __alignof__(struct lttng_ust_lib_ring_buffer));