From: Mathieu Desnoyers Date: Sat, 21 May 2011 00:59:00 +0000 (-0400) Subject: Take care of units in description for ftrace and kprobes X-Git-Tag: v2.0-pre1~132 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=ba1f598672d39e16402219556a911edf3a7fb7c8;p=lttng-modules.git Take care of units in description for ftrace and kprobes Signed-off-by: Mathieu Desnoyers --- diff --git a/ltt-events.h b/ltt-events.h index 45d459d4..6bdacf6e 100644 --- a/ltt-events.h +++ b/ltt-events.h @@ -17,6 +17,7 @@ struct ltt_channel; struct ltt_session; struct lib_ring_buffer_ctx; +struct perf_event; /* Type description */ @@ -112,9 +113,22 @@ struct lttng_event_field { struct lttng_type type; }; -struct lttng_event_ctx { - const struct lttng_event_field *fields; +struct lttng_ctx_field { + const char *name; + struct lttng_type type; + void *ctx_field_callback; + union { + struct { + struct perf_event **e; /* per-cpu array */ + struct list_head *head; + } perf_counter; + } u; +}; + +struct lttng_ctx { + const struct lttng_ctx_field *fields; unsigned int nr_fields; + unsigned int allocated_fields; }; struct lttng_event_desc { diff --git a/probes/lttng-ftrace.c b/probes/lttng-ftrace.c index 061da25a..f583ab6e 100644 --- a/probes/lttng-ftrace.c +++ b/probes/lttng-ftrace.c @@ -76,8 +76,8 @@ int lttng_create_ftrace_event(const char *name, struct ltt_event *event) } fields[0].name = "ip"; fields[0].type.atype = atype_integer; - fields[0].type.u.basic.integer.size = sizeof(unsigned long); - fields[0].type.u.basic.integer.alignment = ltt_alignof(unsigned long); + fields[0].type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + fields[0].type.u.basic.integer.alignment = ltt_alignof(unsigned long) * CHAR_BIT; fields[0].type.u.basic.integer.signedness = 0; fields[0].type.u.basic.integer.reverse_byte_order = 0; fields[0].type.u.basic.integer.base = 16; @@ -85,8 +85,8 @@ int lttng_create_ftrace_event(const char *name, struct ltt_event *event) fields[1].name = "parent_ip"; fields[1].type.atype = atype_integer; - fields[1].type.u.basic.integer.size = sizeof(unsigned long); - fields[1].type.u.basic.integer.alignment = ltt_alignof(unsigned long); + fields[1].type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + fields[1].type.u.basic.integer.alignment = ltt_alignof(unsigned long) * CHAR_BIT; fields[1].type.u.basic.integer.signedness = 0; fields[1].type.u.basic.integer.reverse_byte_order = 0; fields[1].type.u.basic.integer.base = 16; diff --git a/probes/lttng-kprobes.c b/probes/lttng-kprobes.c index 96e7509c..87806e37 100644 --- a/probes/lttng-kprobes.c +++ b/probes/lttng-kprobes.c @@ -65,8 +65,8 @@ int lttng_create_kprobe_event(const char *name, struct ltt_event *event) } field->name = "ip"; field->type.atype = atype_integer; - field->type.u.basic.integer.size = sizeof(unsigned long); - field->type.u.basic.integer.alignment = ltt_alignof(unsigned long); + field->type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + field->type.u.basic.integer.alignment = ltt_alignof(unsigned long) * CHAR_BIT; field->type.u.basic.integer.signedness = 0; field->type.u.basic.integer.reverse_byte_order = 0; field->type.u.basic.integer.base = 16;