~lttng/lttng-modules/trunk

« back to all changes in this revision

Viewing changes to src/lttng-context-migratable.c

  • Committer: Mathieu Desnoyers
  • Author(s): Michael Jeanson
  • Date: 2021-04-15 17:03:31 UTC
  • Revision ID: git-v1:087e3f1b33319c80a5e3dbee7a77174db55647d9
fix: refactor contexts for type description structures

The 'preemptible' and 'migratable' contexts were not refactored along
the others in :

  commit 437d5aa59380583ce1cd14d394a53b398be1275d
  Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  Date:   Wed Apr 7 14:52:27 2021 -0400

    Refactoring: type description structures

Change-Id: I8a228c0ff982a4aded27b055baae1f5efec29164
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
        value->s64 = !current->migrate_disable;
46
46
}
47
47
 
 
48
static const struct lttng_kernel_ctx_field *ctx_field = lttng_kernel_static_ctx_field(
 
49
        lttng_kernel_static_event_field("migratable",
 
50
                lttng_kernel_static_type_integer_from_type(uint8_t, __BYTE_ORDER, 10),
 
51
                false, false, false),
 
52
        migratable_get_size,
 
53
        NULL,
 
54
        migratable_record,
 
55
        migratable_get_value,
 
56
        NULL, NULL);
 
57
 
48
58
int lttng_add_migratable_to_ctx(struct lttng_kernel_ctx **ctx)
49
59
{
50
 
        struct lttng_kernel_ctx_field *field;
 
60
        int ret;
51
61
 
52
 
        field = lttng_append_context(ctx);
53
 
        if (!field)
54
 
                return -ENOMEM;
55
 
        if (lttng_find_context(*ctx, "migratable")) {
56
 
                lttng_remove_context_field(ctx, field);
 
62
        if (lttng_kernel_find_context(*ctx, ctx_field->event_field->name))
57
63
                return -EEXIST;
58
 
        }
59
 
        field->event_field.name = "migratable";
60
 
        field->event_field.type.type = lttng_kernel_type_integer;
61
 
        field->event_field.type.u.integer.size = sizeof(uint8_t) * CHAR_BIT;
62
 
        field->event_field.type.u.integer.alignment = lttng_alignof(uint8_t) * CHAR_BIT;
63
 
        field->event_field.type.u.integer.signedness = lttng_is_signed_type(uint8_t);
64
 
        field->event_field.type.u.integer.reverse_byte_order = 0;
65
 
        field->event_field.type.u.integer.base = 10;
66
 
        field->event_field.type.u.integer.encoding = lttng_kernel_string_encoding_none;
67
 
        field->get_size = migratable_get_size;
68
 
        field->record = migratable_record;
69
 
        field->get_value = migratable_get_value;
70
 
        lttng_context_update(*ctx);
 
64
        ret = lttng_kernel_context_append(ctx, ctx_field);
71
65
        wrapper_vmalloc_sync_mappings();
72
 
        return 0;
 
66
        return ret;
73
67
}
74
68
EXPORT_SYMBOL_GPL(lttng_add_migratable_to_ctx);