struct ltt_channel;
struct ltt_session;
struct lib_ring_buffer_ctx;
+struct perf_event;
/* Type description */
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 {
}
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;
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;
}
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;