X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=libringbuffer%2Fbackend_types.h;h=2eb03b55dee2628e6bcca25a74cfd50702289d93;hb=193183fb924aef705f30358e54e7386a3a64c78d;hp=3bc36ba81ee896fbd295e5973b6f9cbe052cdbfe;hpb=a6352fd40a2090fd883a6c369144bf405c9e9ec4;p=lttng-ust.git diff --git a/libringbuffer/backend_types.h b/libringbuffer/backend_types.h index 3bc36ba8..2eb03b55 100644 --- a/libringbuffer/backend_types.h +++ b/libringbuffer/backend_types.h @@ -11,7 +11,7 @@ * Dual LGPL v2.1/GPL v2 license. */ -#include "shm.h" +#include "shm_internal.h" struct lib_ring_buffer_backend_pages { unsigned long mmap_offset; /* offset of the subbuffer in mmap */ @@ -32,6 +32,10 @@ struct lib_ring_buffer_backend_subbuffer { struct channel; struct lib_ring_buffer; +struct lib_ring_buffer_backend_pages_shmp { + DECLARE_SHMP(struct lib_ring_buffer_backend_pages, shmp); +}; + struct lib_ring_buffer_backend { /* Array of ring_buffer_backend_subbuffer for writer */ DECLARE_SHMP(struct lib_ring_buffer_backend_subbuffer, buf_wsb); @@ -41,7 +45,7 @@ struct lib_ring_buffer_backend { * Pointer array of backend pages, for whole buffer. * Indexed by ring_buffer_backend_subbuffer identifier (id) index. */ - DECLARE_SHMP(struct lib_ring_buffer_backend_pages *, array); + DECLARE_SHMP(struct lib_ring_buffer_backend_pages_shmp, array); DECLARE_SHMP(char, memory_map); /* memory mapping */ DECLARE_SHMP(struct channel, chan); /* Associated channel */ @@ -50,6 +54,10 @@ struct lib_ring_buffer_backend { unsigned int allocated:1; /* Bool: is buffer allocated ? */ }; +struct lib_ring_buffer_shmp { + DECLARE_SHMP(struct lib_ring_buffer, shmp); /* Channel per-cpu buffers */ +}; + struct channel_backend { unsigned long buf_size; /* Size of the buffer */ unsigned long subbuf_size; /* Sub-buffer size */ @@ -60,12 +68,12 @@ struct channel_backend { */ unsigned int buf_size_order; /* Order of buffer size */ int extra_reader_sb:1; /* Bool: has extra reader subbuffer */ - DECLARE_SHMP(struct lib_ring_buffer, buf); /* Channel per-cpu buffers */ unsigned long num_subbuf; /* Number of sub-buffers for writer */ u64 start_tsc; /* Channel creation TSC value */ void *priv; /* Client-specific information */ - const struct lib_ring_buffer_config *config; /* Ring buffer configuration */ + struct lib_ring_buffer_config config; /* Ring buffer configuration */ char name[NAME_MAX]; /* Channel name */ + struct lib_ring_buffer_shmp buf[]; }; #endif /* _LINUX_RING_BUFFER_BACKEND_TYPES_H */