X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Fust%2Flttng-events.h;h=005bf0d26013831a3295be6c0a5d65d7cdff6956;hb=69851cf5017c8c8cd2d6ff67592d59387510d7a7;hp=31938327059c09ab218d92eed4c0cae0ba84fcf4;hpb=1d4981969313da002983ca979bd85c95493f7316;p=lttng-ust.git diff --git a/include/ust/lttng-events.h b/include/ust/lttng-events.h index 31938327..005bf0d2 100644 --- a/include/ust/lttng-events.h +++ b/include/ust/lttng-events.h @@ -176,6 +176,8 @@ struct lttng_probe_desc { struct cds_list_head head; /* chain registered probes */ }; +struct ust_pending_probe; + /* * ltt_event structure is referred to by the tracing fast path. It must be * kept small. @@ -191,6 +193,7 @@ struct ltt_event { union { } u; struct cds_list_head list; /* Event list */ + struct ust_pending_probe *pending_probe; int metadata_dumped:1; }; @@ -203,10 +206,14 @@ struct ltt_channel_ops { void *buf_addr, size_t subbuf_size, size_t num_subbuf, unsigned int switch_timer_interval, - unsigned int read_timer_interval); + unsigned int read_timer_interval, + int *shm_fd, int *wait_fd, + uint64_t *memory_map_size); void (*channel_destroy)(struct ltt_channel *ltt_chan); struct lib_ring_buffer *(*buffer_read_open)(struct channel *chan, - struct shm_handle *handle); + struct shm_handle *handle, + int *shm_fd, int *wait_fd, + uint64_t *memory_map_size); void (*buffer_read_close)(struct lib_ring_buffer *buf, struct shm_handle *handle); int (*event_reserve)(struct lib_ring_buffer_ctx *ctx, @@ -236,6 +243,7 @@ struct ltt_channel { struct ltt_session *session; int objd; /* Object associated to channel */ unsigned int free_event_id; /* Next event ID to allocate */ + unsigned int used_event_id; /* Max allocated event IDs */ struct cds_list_head list; /* Channel list */ struct ltt_channel_ops *ops; int header_type; /* 0: unset, 1: compact, 2: large */ @@ -272,12 +280,16 @@ struct ltt_channel *ltt_channel_create(struct ltt_session *session, void *buf_addr, size_t subbuf_size, size_t num_subbuf, unsigned int switch_timer_interval, - unsigned int read_timer_interval); + unsigned int read_timer_interval, + int *shm_fd, int *wait_fd, + uint64_t *memory_map_size); struct ltt_channel *ltt_global_channel_create(struct ltt_session *session, int overwrite, void *buf_addr, size_t subbuf_size, size_t num_subbuf, unsigned int switch_timer_interval, - unsigned int read_timer_interval); + unsigned int read_timer_interval, + int *shm_fd, int *wait_fd, + uint64_t *memory_map_size); struct ltt_event *ltt_event_create(struct ltt_channel *chan, struct lttng_ust_event *event_param, @@ -297,6 +309,7 @@ void synchronize_trace(void); int ltt_probe_register(struct lttng_probe_desc *desc); void ltt_probe_unregister(struct lttng_probe_desc *desc); +int pending_probe_fix_events(const struct lttng_event_desc *desc); const struct lttng_event_desc *ltt_event_get(const char *name); void ltt_event_put(const struct lttng_event_desc *desc); int ltt_probes_init(void);