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);
+ size_t num_subbuf, struct lttng_ust_shm_handle *handle,
+ const int *stream_fds);
void channel_backend_free(struct channel_backend *chanb,
struct lttng_ust_shm_handle *handle);
return shmp(handle, pages->shmp)->data_size;
}
+static inline
+void subbuffer_inc_packet_count(const struct lttng_ust_lib_ring_buffer_config *config,
+ struct lttng_ust_lib_ring_buffer_backend *bufb,
+ unsigned long idx, struct lttng_ust_shm_handle *handle)
+{
+ shmp_index(handle, bufb->buf_cnt, idx)->seq_cnt++;
+}
+
/**
* lib_ring_buffer_clear_noref - Clear the noref subbuffer flag, called by
* writer.
inline_memcpy(dest, src, __len); \
} while (0)
+/*
+ * write len bytes to dest with c
+ */
+static inline
+void lib_ring_buffer_do_memset(char *dest, int c, unsigned long len)
+{
+ unsigned long i;
+
+ for (i = 0; i < len; i++)
+ dest[i] = c;
+}
+
/* arch-agnostic implementation */
static inline int lttng_ust_fls(unsigned int x)
r -= 2;
}
if (!(x & 0x80000000U)) {
- x <<= 1;
+ /* No need to bit shift on last operation */
r -= 1;
}
return r;