X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fbuffer-registry.h;h=c2099b6883c7ff70174431635b33080eb3e4d4b2;hp=d77a07187b8e417359eddbec99a49ea2af0ccf57;hb=bd722d76b035766511f0b329f9bbaa2f4180c4ed;hpb=36b588eddce05ef840bd247f6a58316925b9a0a2 diff --git a/src/bin/lttng-sessiond/buffer-registry.h b/src/bin/lttng-sessiond/buffer-registry.h index d77a07187..c2099b688 100644 --- a/src/bin/lttng-sessiond/buffer-registry.h +++ b/src/bin/lttng-sessiond/buffer-registry.h @@ -43,10 +43,14 @@ struct buffer_reg_channel { uint64_t consumer_key; /* Stream registry object of this channel registry. */ struct cds_list_head streams; + /* Total number of stream in the list. */ + uint64_t stream_count; /* Used to ensure mutual exclusion to the stream's list. */ pthread_mutex_t stream_list_lock; /* Node for hash table usage. */ struct lttng_ht_node_u64 node; + /* Size of subbuffers in this channel. */ + size_t subbuf_size; union { /* Original object data that MUST be copied over. */ struct lttng_ust_object_data *ust; @@ -71,7 +75,7 @@ struct buffer_reg_uid { * Keys to match this object in a hash table. The following three variables * identify a unique per UID buffer registry. */ - int session_id; /* Unique tracing session id. */ + uint64_t session_id; /* Unique tracing session id. */ int bits_per_long; /* ABI */ uid_t uid; /* Owner. */ @@ -88,20 +92,20 @@ struct buffer_reg_uid { * Registry object for per PID buffers. */ struct buffer_reg_pid { - int session_id; + uint64_t session_id; struct buffer_reg_session *registry; /* Indexed by session id. */ - struct lttng_ht_node_ulong node; + struct lttng_ht_node_u64 node; }; /* Buffer registry per UID. */ void buffer_reg_init_uid_registry(void); -int buffer_reg_uid_create(int session_id, uint32_t bits_per_long, uid_t uid, +int buffer_reg_uid_create(uint64_t session_id, uint32_t bits_per_long, uid_t uid, enum lttng_domain_type domain, struct buffer_reg_uid **regp); void buffer_reg_uid_add(struct buffer_reg_uid *reg); -struct buffer_reg_uid *buffer_reg_uid_find(int session_id, +struct buffer_reg_uid *buffer_reg_uid_find(uint64_t session_id, uint32_t bits_per_long, uid_t uid); void buffer_reg_uid_remove(struct buffer_reg_uid *regp); void buffer_reg_uid_destroy(struct buffer_reg_uid *regp, @@ -109,9 +113,9 @@ void buffer_reg_uid_destroy(struct buffer_reg_uid *regp, /* Buffer registry per PID. */ void buffer_reg_init_pid_registry(void); -int buffer_reg_pid_create(int session_id, struct buffer_reg_pid **regp); +int buffer_reg_pid_create(uint64_t session_id, struct buffer_reg_pid **regp); void buffer_reg_pid_add(struct buffer_reg_pid *reg); -struct buffer_reg_pid *buffer_reg_pid_find(int session_id); +struct buffer_reg_pid *buffer_reg_pid_find(uint64_t session_id); void buffer_reg_pid_remove(struct buffer_reg_pid *regp); void buffer_reg_pid_destroy(struct buffer_reg_pid *regp);