X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Fust%2Flttng-events.h;h=49bd6e9548b16bd8d8e577cbfd6b29265bcd239d;hb=38fae1d354502ffb37f471fbd0fef03412606cc0;hp=303d0dafc0a9d6393bb25ff8ff12b789c1e26455;hpb=8165c8da23fb8a3395d7e829f3d5734e18dd7db9;p=lttng-ust.git diff --git a/include/ust/lttng-events.h b/include/ust/lttng-events.h index 303d0daf..49bd6e95 100644 --- a/include/ust/lttng-events.h +++ b/include/ust/lttng-events.h @@ -72,11 +72,14 @@ struct lttng_integer_type { enum lttng_string_encodings encoding; }; +/* + * Only float and double are supported. long double is not supported at + * the moment. + */ #define _float_mant_dig(_type) \ (sizeof(_type) == sizeof(float) ? FLT_MANT_DIG \ : (sizeof(_type) == sizeof(double) ? DBL_MANT_DIG \ - : (sizeof(_type) == sizeof(long double) ? LDBL_MANT_DIG \ - : 0))) + : 0)) #define __type_float(_type) \ { \ @@ -198,7 +201,7 @@ struct ltt_event { }; struct channel; -struct shm_handle; +struct lttng_ust_shm_handle; struct ltt_channel_ops { struct ltt_channel *(*channel_create)(const char *name, @@ -206,12 +209,16 @@ 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 lttng_ust_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); + struct lttng_ust_shm_handle *handle); int (*event_reserve)(struct lib_ring_buffer_ctx *ctx, uint32_t event_id); void (*event_commit)(struct lib_ring_buffer_ctx *ctx); @@ -223,11 +230,12 @@ struct ltt_channel_ops { * may change due to concurrent writes. */ size_t (*packet_avail_size)(struct channel *chan, - struct shm_handle *handle); + struct lttng_ust_shm_handle *handle); //wait_queue_head_t *(*get_reader_wait_queue)(struct channel *chan); //wait_queue_head_t *(*get_hp_wait_queue)(struct channel *chan); int (*is_finalized)(struct channel *chan); int (*is_disabled)(struct channel *chan); + int (*flush_buffer)(struct channel *chan, struct lttng_ust_shm_handle *handle); }; struct ltt_channel { @@ -243,7 +251,7 @@ struct ltt_channel { struct cds_list_head list; /* Channel list */ struct ltt_channel_ops *ops; int header_type; /* 0: unset, 1: compact, 2: large */ - struct shm_handle *handle; /* shared-memory handle */ + struct lttng_ust_shm_handle *handle; /* shared-memory handle */ int metadata_dumped:1; }; @@ -276,12 +284,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, @@ -296,8 +308,6 @@ void ltt_transport_register(struct ltt_transport *transport); void ltt_transport_unregister(struct ltt_transport *transport); void synchronize_trace(void); -//int ltt_debugfs_abi_init(void); -//void ltt_debugfs_abi_exit(void); int ltt_probe_register(struct lttng_probe_desc *desc); void ltt_probe_unregister(struct lttng_probe_desc *desc); @@ -306,12 +316,16 @@ 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); void ltt_probes_exit(void); -struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx); -void lttng_remove_context_field(struct lttng_ctx **ctx, +int lttng_find_context(struct lttng_ctx *ctx, const char *name); +struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx_p); +void lttng_remove_context_field(struct lttng_ctx **ctx_p, struct lttng_ctx_field *field); void lttng_destroy_context(struct lttng_ctx *ctx); int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx); - -//extern const struct file_operations lttng_tracepoint_list_fops; +int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_pthread_id_to_ctx(struct lttng_ctx **ctx); +int lttng_add_procname_to_ctx(struct lttng_ctx **ctx); +void lttng_context_vtid_reset(void); +void lttng_context_vpid_reset(void); #endif /* _UST_LTTNG_EVENTS_H */