X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Fringbuffer-config.h;h=9de9a73807ca634e4795bf70e39e44e5e0f9bf11;hb=d6297168f9042cdc550507bb5e97cee7037c34d3;hp=42889ccd0e4b5e8a197589c3294afbadafc79211;hpb=46d522007b647e0b64d18d0ed518205c2bbad424;p=lttng-ust.git diff --git a/include/lttng/ringbuffer-config.h b/include/lttng/ringbuffer-config.h index 42889ccd..9de9a738 100644 --- a/include/lttng/ringbuffer-config.h +++ b/include/lttng/ringbuffer-config.h @@ -133,7 +133,7 @@ struct lttng_ust_lib_ring_buffer_client_cb { * RING_BUFFER_WAKEUP_NONE does not perform any wakeup whatsoever. The client * has the responsibility to perform wakeups. */ -#define LTTNG_UST_RING_BUFFER_CONFIG_PADDING 32 +#define LTTNG_UST_RING_BUFFER_CONFIG_PADDING 20 enum lttng_ust_lib_ring_buffer_alloc_types { RING_BUFFER_ALLOC_PER_CPU, @@ -204,6 +204,8 @@ struct lttng_ust_lib_ring_buffer_config { * callbacks and update the cb pointers. */ int client_type; + int _unused1; + const struct lttng_ust_lib_ring_buffer_client_cb *cb_ptr; char padding[LTTNG_UST_RING_BUFFER_CONFIG_PADDING]; }; @@ -218,7 +220,8 @@ struct lttng_ust_lib_ring_buffer_config { * UST. Fields need to be only added at the end, never reordered, never * removed. */ -#define LTTNG_UST_RING_BUFFER_CTX_PADDING 24 +#define LTTNG_UST_RING_BUFFER_CTX_PADDING \ + (24 - sizeof(int) - sizeof(void *)) struct lttng_ust_lib_ring_buffer_ctx { /* input received by lib_ring_buffer_reserve(), saved here. */ struct channel *chan; /* channel */ @@ -246,7 +249,9 @@ struct lttng_ust_lib_ring_buffer_ctx { */ uint64_t tsc; /* time-stamp counter value */ unsigned int rflags; /* reservation flags */ - char padding[LTTNG_UST_RING_BUFFER_CTX_PADDING]; + unsigned int padding1; /* padding to realign on pointer */ + void *ip; /* caller ip address */ + char padding2[LTTNG_UST_RING_BUFFER_CTX_PADDING]; }; /** @@ -276,7 +281,9 @@ void lib_ring_buffer_ctx_init(struct lttng_ust_lib_ring_buffer_ctx *ctx, ctx->cpu = cpu; ctx->rflags = 0; ctx->handle = handle; - memset(ctx->padding, 0, LTTNG_UST_RING_BUFFER_CTX_PADDING); + ctx->padding1 = 0; + ctx->ip = 0; + memset(ctx->padding2, 0, LTTNG_UST_RING_BUFFER_CTX_PADDING); } /*