X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lttng-events.h;h=2b1370520ecd85ab4d39364586ee08fe949d1f6a;hb=3c1a57e8ce82366ce96774e4ac1d7481c561cc4c;hp=8dd9241d4cc5d1b77e5fc6b472db4f1aa44deb24;hpb=3834b99f4341209754c4955ec853dc250b33ed4b;p=lttng-modules.git diff --git a/lttng-events.h b/lttng-events.h index 8dd9241d..2b137052 100644 --- a/lttng-events.h +++ b/lttng-events.h @@ -206,6 +206,9 @@ struct lttng_probe_ctx { struct lttng_ctx_field { struct lttng_event_field event_field; size_t (*get_size)(size_t offset); + size_t (*get_size_arg)(size_t offset, struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan); void (*record)(struct lttng_ctx_field *field, struct lib_ring_buffer_ctx *ctx, struct lttng_channel *chan); @@ -216,6 +219,12 @@ struct lttng_ctx_field { struct lttng_perf_counter_field *perf_counter; } u; void (*destroy)(struct lttng_ctx_field *field); + /* + * Private data to keep state between get_size and record. + * User must perform its own synchronization to protect against + * concurrent and reentrant contexts. + */ + void *priv; }; struct lttng_ctx { @@ -705,6 +714,9 @@ int lttng_add_migratable_to_ctx(struct lttng_ctx **ctx) return -ENOSYS; } #endif + +int lttng_add_callstack_to_ctx(struct lttng_ctx **ctx, int type); + #if defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) int lttng_add_perf_counter_to_ctx(uint32_t type, uint64_t config,