/*
* The sessions mutex is the centralized mutex across UST tracing
* control and probe registration. All operations within this file are
/*
* The sessions mutex is the centralized mutex across UST tracing
* control and probe registration. All operations within this file are
- if (name_len > LTTNG_UST_SYM_NAME_LEN - 1) {
- WARN("Truncating tracepoint name %s which exceeds size limits of %u chars", name, LTTNG_UST_SYM_NAME_LEN - 1);
- name_len = LTTNG_UST_SYM_NAME_LEN - 1;
+ if (name_len > LTTNG_UST_SYM_NAME_LEN) {
+ WARN("Truncating tracepoint name %s which exceeds size limits of %u chars", name, LTTNG_UST_SYM_NAME_LEN);
+ name_len = LTTNG_UST_SYM_NAME_LEN;
head = &pending_probe_table[hash & (PENDING_PROBE_HASH_SIZE - 1)];
e = zmalloc(sizeof(struct ust_pending_probe) + name_len);
if (!e)
return -ENOMEM;
head = &pending_probe_table[hash & (PENDING_PROBE_HASH_SIZE - 1)];
e = zmalloc(sizeof(struct ust_pending_probe) + name_len);
if (!e)
return -ENOMEM;
- memcpy(&e->name[0], name, name_len + 1);
- e->name[name_len] = '\0';
+ memcpy(&e->name[0], name, name_len);
+ e->name[name_len - 1] = '\0';
e->loglevel_type = loglevel_type;
e->loglevel = loglevel;
cds_hlist_add_head(&e->node, head);
e->loglevel_type = loglevel_type;
e->loglevel = loglevel;
cds_hlist_add_head(&e->node, head);
- if (name_len > LTTNG_UST_SYM_NAME_LEN - 1) {
- WARN("Truncating tracepoint name %s which exceeds size limits of %u chars", name, LTTNG_UST_SYM_NAME_LEN - 1);
- name_len = LTTNG_UST_SYM_NAME_LEN - 1;
+ if (name_len > LTTNG_UST_SYM_NAME_LEN) {
+ WARN("Truncating tracepoint name %s which exceeds size limits of %u chars", name, LTTNG_UST_SYM_NAME_LEN);
+ name_len = LTTNG_UST_SYM_NAME_LEN;
head = &pending_probe_table[hash & (PENDING_PROBE_HASH_SIZE - 1)];
cds_hlist_for_each_entry_safe(e, node, p, head, node) {
struct ltt_event *event;
head = &pending_probe_table[hash & (PENDING_PROBE_HASH_SIZE - 1)];
cds_hlist_for_each_entry_safe(e, node, p, head, node) {
struct ltt_event *event;
CDS_INIT_LIST_HEAD(&session->chan);
CDS_INIT_LIST_HEAD(&session->events);
CDS_INIT_LIST_HEAD(&session->wildcards);
CDS_INIT_LIST_HEAD(&session->chan);
CDS_INIT_LIST_HEAD(&session->events);
CDS_INIT_LIST_HEAD(&session->wildcards);
"struct packet_context {\n"
" uint64_clock_monotonic_t timestamp_begin;\n"
" uint64_clock_monotonic_t timestamp_end;\n"
"struct packet_context {\n"
" uint64_clock_monotonic_t timestamp_begin;\n"
" uint64_clock_monotonic_t timestamp_end;\n"
int _ltt_session_metadata_statedump(struct ltt_session *session)
{
unsigned char *uuid_c = session->uuid;
int _ltt_session_metadata_statedump(struct ltt_session *session)
{
unsigned char *uuid_c = session->uuid;
"typealias integer { size = 16; align = %u; signed = false; } := uint16_t;\n"
"typealias integer { size = 32; align = %u; signed = false; } := uint32_t;\n"
"typealias integer { size = 64; align = %u; signed = false; } := uint64_t;\n"
"typealias integer { size = 16; align = %u; signed = false; } := uint16_t;\n"
"typealias integer { size = 32; align = %u; signed = false; } := uint32_t;\n"
"typealias integer { size = 64; align = %u; signed = false; } := uint64_t;\n"
"typealias integer { size = 5; align = 1; signed = false; } := uint5_t;\n"
"typealias integer { size = 27; align = 1; signed = false; } := uint27_t;\n"
"\n"
"typealias integer { size = 5; align = 1; signed = false; } := uint5_t;\n"
"typealias integer { size = 27; align = 1; signed = false; } := uint27_t;\n"
"\n"
lttng_alignof(uint16_t) * CHAR_BIT,
lttng_alignof(uint32_t) * CHAR_BIT,
lttng_alignof(uint64_t) * CHAR_BIT,
lttng_alignof(uint16_t) * CHAR_BIT,
lttng_alignof(uint32_t) * CHAR_BIT,
lttng_alignof(uint64_t) * CHAR_BIT,
- (void) prctl(PR_GET_NAME, (unsigned long) procname, 0, 0, 0);
- procname[PROCNAME_LEN - 1] = '\0';
+ lttng_ust_getprocname(procname);
+ procname[LTTNG_UST_PROCNAME_LEN - 1] = '\0';
cds_list_add(&e->list, &wildcard_list);
CDS_INIT_LIST_HEAD(&e->session_list);
}
cds_list_add(&e->list, &wildcard_list);
CDS_INIT_LIST_HEAD(&e->session_list);
}