int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx) { struct lttng_ctx_field *field; field = lttng_append_context(ctx); if (!field) return -ENOMEM; if (lttng_find_context(*ctx, "vpid")) { lttng_remove_context_field(ctx, field); return -EEXIST; } field->event_field.name = "vpid"; field->event_field.type.atype = atype_integer; field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); field->event_field.type.u.basic.integer.reverse_byte_order = 0; field->event_field.type.u.basic.integer.base = 10; field->event_field.type.u.basic.integer.encoding = lttng_encode_none; field->get_size = vpid_get_size; field->record = vpid_record; field->get_value = vpid_get_value; lttng_context_update(*ctx); wrapper_vmalloc_sync_all(); return 0; }
int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx) { struct lttng_ctx_field *field; field = lttng_append_context(ctx); if (!field) return -ENOMEM; if (lttng_find_context(*ctx, "hostname")) { lttng_remove_context_field(ctx, field); return -EEXIST; } field->event_field.name = "hostname"; field->event_field.type.atype = atype_array; field->event_field.type.u.array.elem_type.atype = atype_integer; field->event_field.type.u.array.elem_type.u.basic.integer.size = sizeof(char) * CHAR_BIT; field->event_field.type.u.array.elem_type.u.basic.integer.alignment = lttng_alignof(char) * CHAR_BIT; field->event_field.type.u.array.elem_type.u.basic.integer.signedness = lttng_is_signed_type(char); field->event_field.type.u.array.elem_type.u.basic.integer.reverse_byte_order = 0; field->event_field.type.u.array.elem_type.u.basic.integer.base = 10; field->event_field.type.u.array.elem_type.u.basic.integer.encoding = lttng_encode_UTF8; field->event_field.type.u.array.length = LTTNG_HOSTNAME_CTX_LEN; field->get_size = hostname_get_size; field->record = hostname_record; lttng_context_update(*ctx); wrapper_vmalloc_sync_all(); return 0; }
int lttng_add_prio_to_ctx(struct lttng_ctx **ctx) { struct lttng_ctx_field *field; int ret; if (!wrapper_task_prio_sym) { ret = wrapper_task_prio_init(); if (ret) return ret; } field = lttng_append_context(ctx); if (!field) return -ENOMEM; if (lttng_find_context(*ctx, "prio")) { lttng_remove_context_field(ctx, field); return -EEXIST; } field->event_field.name = "prio"; field->event_field.type.atype = atype_integer; field->event_field.type.u.basic.integer.size = sizeof(int) * CHAR_BIT; field->event_field.type.u.basic.integer.alignment = lttng_alignof(int) * CHAR_BIT; field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(int); field->event_field.type.u.basic.integer.reverse_byte_order = 0; field->event_field.type.u.basic.integer.base = 10; field->event_field.type.u.basic.integer.encoding = lttng_encode_none; field->get_size = prio_get_size; field->record = prio_record; lttng_context_update(*ctx); wrapper_vmalloc_sync_all(); return 0; }
int lttng_add_ip_to_ctx(struct lttng_ctx **ctx) { struct lttng_ctx_field *field; field = lttng_append_context(ctx); if (!field) return -ENOMEM; if (lttng_find_context(*ctx, "ip")) { lttng_remove_context_field(ctx, field); return -EEXIST; } field->event_field.name = "ip"; field->event_field.type.atype = atype_integer; field->event_field.type.u.basic.integer.size = sizeof(void *) * CHAR_BIT; field->event_field.type.u.basic.integer.alignment = lttng_alignof(void *) * CHAR_BIT; field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(void *); field->event_field.type.u.basic.integer.reverse_byte_order = 0; field->event_field.type.u.basic.integer.base = 16; field->event_field.type.u.basic.integer.encoding = lttng_encode_none; field->get_size = ip_get_size; field->record = ip_record; lttng_context_update(*ctx); return 0; }