- field = &length_field->event_field;
- field->name = ctx_length_name;
- field->type.type = lttng_kernel_type_integer;
- field->type.u.integer.size = sizeof(unsigned int) * CHAR_BIT;
- field->type.u.integer.alignment = lttng_alignof(unsigned int) * CHAR_BIT;
- field->type.u.integer.signedness = lttng_is_signed_type(unsigned int);
- field->type.u.integer.reverse_byte_order = 0;
- field->type.u.integer.base = 10;
- field->type.u.integer.encoding = lttng_kernel_string_encoding_none;
- length_field->get_size_arg = lttng_callstack_length_get_size;
- length_field->record = lttng_callstack_length_record;
- length_field->priv = fdata;
-
- field = &sequence_field->event_field;
- field->name = ctx_name;
- field->type.type = lttng_kernel_type_sequence_nestable;
- field->type.u.sequence_nestable.length_name = ctx_length_name;
- field->type.u.sequence_nestable.elem_type = &sequence_elem_type;
- field->type.u.sequence_nestable.alignment = 0;
- sequence_field->get_size_arg = lttng_callstack_sequence_get_size;
- sequence_field->record = lttng_callstack_sequence_record;
- sequence_field->priv = fdata;
- sequence_field->destroy = lttng_callstack_sequence_destroy;
-
- wrapper_vmalloc_sync_mappings();
+ memset(&ctx_field, 0, sizeof(ctx_field));
+ ctx_field.event_field = event_fields[1];
+ ctx_field.get_size = lttng_callstack_sequence_get_size;
+ ctx_field.record = lttng_callstack_sequence_record;
+ ctx_field.destroy = lttng_callstack_sequence_destroy;
+ ctx_field.priv = fdata;
+ ret = lttng_kernel_context_append(ctx, &ctx_field);
+ if (ret) {
+ ret = -ENOMEM;
+ goto error_append1;
+ }