fprintf(fd, "[error] %s: cannot create array declaration.\n", __func__);
return NULL;
}
- declaration_unref(nested_declaration);
+ bt_declaration_unref(nested_declaration);
declaration = &array_declaration->p;
break;
}
g_free(length_name);
return NULL;
}
- declaration_unref(nested_declaration);
+ bt_declaration_unref(nested_declaration);
declaration = &sequence_declaration->p;
g_free(length_name);
break;
struct_declaration_add_field(struct_declaration,
g_quark_to_string(field_name),
field_declaration);
- declaration_unref(field_declaration);
+ bt_declaration_unref(field_declaration);
}
return 0;
}
untagged_variant_declaration_add_field(untagged_variant_declaration,
g_quark_to_string(field_name),
field_declaration);
- declaration_unref(field_declaration);
+ bt_declaration_unref(field_declaration);
}
return 0;
}
*/
if (type_declaration->id == CTF_TYPE_UNTAGGED_VARIANT) {
fprintf(fd, "[error] %s: typedef of untagged variant is not permitted.\n", __func__);
- declaration_unref(type_declaration);
+ bt_declaration_unref(type_declaration);
return -EPERM;
}
ret = register_declaration(identifier, type_declaration, scope);
type_declaration->declaration_free(type_declaration);
return ret;
}
- declaration_unref(type_declaration);
+ bt_declaration_unref(type_declaration);
}
return 0;
}
*/
if (type_declaration->id == CTF_TYPE_UNTAGGED_VARIANT) {
fprintf(fd, "[error] %s: typedef of untagged variant is not permitted.\n", __func__);
- declaration_unref(type_declaration);
+ bt_declaration_unref(type_declaration);
return -EPERM;
}
/*
err = register_declaration(alias_q, type_declaration, scope);
if (err)
goto error;
- declaration_unref(type_declaration);
+ bt_declaration_unref(type_declaration);
return 0;
error:
struct_declaration =
lookup_struct_declaration(g_quark_from_string(name),
declaration_scope);
- declaration_ref(&struct_declaration->p);
+ bt_declaration_ref(&struct_declaration->p);
return &struct_declaration->p;
} else {
uint64_t min_align_value = 0;
untagged_variant_declaration =
lookup_variant_declaration(g_quark_from_string(name),
declaration_scope);
- declaration_ref(&untagged_variant_declaration->p);
+ bt_declaration_ref(&untagged_variant_declaration->p);
} else {
/* For unnamed variant, create type */
/* For named variant (with body), create type and add to declaration scope */
variant_declaration = variant_declaration_new(untagged_variant_declaration, choice);
if (!variant_declaration)
goto error;
- declaration_unref(&untagged_variant_declaration->p);
+ bt_declaration_unref(&untagged_variant_declaration->p);
return &variant_declaration->p;
}
error:
enum_declaration =
lookup_enum_declaration(g_quark_from_string(name),
declaration_scope);
- declaration_ref(&enum_declaration->p);
+ bt_declaration_ref(&enum_declaration->p);
return &enum_declaration->p;
} else {
/* For unnamed enum, create type */
}
integer_declaration = container_of(declaration, struct declaration_integer, p);
enum_declaration = enum_declaration_new(integer_declaration);
- declaration_unref(&integer_declaration->p); /* leave ref to enum */
+ bt_declaration_unref(&integer_declaration->p); /* leave ref to enum */
if (enum_declaration->integer_declaration->signedness) {
last_value.u.s = 0;
} else {
enum_declaration,
declaration_scope);
assert(!ret);
- declaration_unref(&enum_declaration->p);
+ bt_declaration_unref(&enum_declaration->p);
}
return &enum_declaration->p;
}
id_q = g_quark_from_string(str_c);
g_free(str_c);
declaration = lookup_declaration(id_q, declaration_scope);
- declaration_ref(declaration);
+ bt_declaration_ref(declaration);
return declaration;
}
error:
if (event->fields_decl)
- declaration_unref(&event->fields_decl->p);
+ bt_declaration_unref(&event->fields_decl->p);
if (event->context_decl)
- declaration_unref(&event->context_decl->p);
+ bt_declaration_unref(&event->context_decl->p);
free_declaration_scope(event->declaration_scope);
g_free(event_decl);
return ret;
error:
if (stream->event_header_decl)
- declaration_unref(&stream->event_header_decl->p);
+ bt_declaration_unref(&stream->event_header_decl->p);
if (stream->event_context_decl)
- declaration_unref(&stream->event_context_decl->p);
+ bt_declaration_unref(&stream->event_context_decl->p);
if (stream->packet_context_decl)
- declaration_unref(&stream->packet_context_decl->p);
+ bt_declaration_unref(&stream->packet_context_decl->p);
g_ptr_array_free(stream->streams, TRUE);
g_ptr_array_free(stream->events_by_id, TRUE);
g_hash_table_destroy(stream->event_quark_to_id);
error:
if (trace->packet_header_decl) {
- declaration_unref(&trace->packet_header_decl->p);
+ bt_declaration_unref(&trace->packet_header_decl->p);
trace->packet_header_decl = NULL;
}
g_ptr_array_free(trace->streams, TRUE);
node, trace->root_declaration_scope, trace);
if (!declaration)
return -ENOMEM;
- declaration_unref(declaration);
+ bt_declaration_unref(declaration);
break;
}
default:
g_free(stream_def);
}
if (stream->event_header_decl)
- declaration_unref(&stream->event_header_decl->p);
+ bt_declaration_unref(&stream->event_header_decl->p);
if (stream->event_context_decl)
- declaration_unref(&stream->event_context_decl->p);
+ bt_declaration_unref(&stream->event_context_decl->p);
if (stream->packet_context_decl)
- declaration_unref(&stream->packet_context_decl->p);
+ bt_declaration_unref(&stream->packet_context_decl->p);
g_ptr_array_free(stream->streams, TRUE);
g_ptr_array_free(stream->events_by_id, TRUE);
g_hash_table_destroy(stream->event_quark_to_id);
event = &event_decl->parent;
if (event->fields_decl)
- declaration_unref(&event->fields_decl->p);
+ bt_declaration_unref(&event->fields_decl->p);
if (event->context_decl)
- declaration_unref(&event->context_decl->p);
+ bt_declaration_unref(&event->context_decl->p);
free_declaration_scope(event->declaration_scope);
g_free(event);
g_ptr_array_free(trace->event_declarations, TRUE);
}
if (trace->packet_header_decl)
- declaration_unref(&trace->packet_header_decl->p);
+ bt_declaration_unref(&trace->packet_header_decl->p);
free_declaration_scope(trace->root_declaration_scope);
free_declaration_scope(trace->declaration_scope);
static
void __attribute__((destructor)) ctf_float_fini(void)
{
- declaration_unref(&static_float_declaration->p);
- declaration_unref(&static_double_declaration->p);
+ bt_declaration_unref(&static_float_declaration->p);
+ bt_declaration_unref(&static_double_declaration->p);
}
return definition->path == path;
}
-void declaration_ref(struct declaration *declaration);
-void declaration_unref(struct declaration *declaration);
+void bt_declaration_ref(struct declaration *declaration);
+void bt_declaration_unref(struct declaration *declaration);
void definition_ref(struct definition *definition);
void definition_unref(struct definition *definition);
container_of(declaration, struct declaration_array, p);
free_declaration_scope(array_declaration->scope);
- declaration_unref(array_declaration->elem);
+ bt_declaration_unref(array_declaration->elem);
g_free(array_declaration);
}
array_declaration = g_new(struct declaration_array, 1);
declaration = &array_declaration->p;
array_declaration->len = len;
- declaration_ref(elem_declaration);
+ bt_declaration_ref(elem_declaration);
array_declaration->elem = elem_declaration;
array_declaration->scope = new_declaration_scope(parent_scope);
declaration->id = CTF_TYPE_ARRAY;
int i;
array = g_new(struct definition_array, 1);
- declaration_ref(&array_declaration->p);
+ bt_declaration_ref(&array_declaration->p);
array->p.declaration = declaration;
array->declaration = array_declaration;
array->p.ref = 1;
}
(void) g_ptr_array_free(array->elems, TRUE);
free_definition_scope(array->p.scope);
- declaration_unref(array->p.declaration);
+ bt_declaration_unref(array->p.declaration);
g_free(array);
return NULL;
}
(void) g_ptr_array_free(array->elems, TRUE);
}
free_definition_scope(array->p.scope);
- declaration_unref(array->p.declaration);
+ bt_declaration_unref(array->p.declaration);
g_free(array);
}
g_free(iter);
}
g_hash_table_destroy(enum_declaration->table.quark_to_range_set);
- declaration_unref(&enum_declaration->integer_declaration->p);
+ bt_declaration_unref(&enum_declaration->integer_declaration->p);
g_free(enum_declaration);
}
enum_declaration->table.quark_to_range_set = g_hash_table_new_full(g_direct_hash,
g_direct_equal,
NULL, enum_range_set_free);
- declaration_ref(&integer_declaration->p);
+ bt_declaration_ref(&integer_declaration->p);
enum_declaration->integer_declaration = integer_declaration;
enum_declaration->p.id = CTF_TYPE_ENUM;
enum_declaration->p.alignment = 1;
int ret;
_enum = g_new(struct definition_enum, 1);
- declaration_ref(&enum_declaration->p);
+ bt_declaration_ref(&enum_declaration->p);
_enum->p.declaration = declaration;
_enum->declaration = enum_declaration;
_enum->p.ref = 1;
definition_unref(&_enum->integer->p);
free_definition_scope(_enum->p.scope);
- declaration_unref(_enum->p.declaration);
+ bt_declaration_unref(_enum->p.declaration);
if (_enum->value)
g_array_unref(_enum->value);
g_free(_enum);
struct declaration_float *float_declaration =
container_of(declaration, struct declaration_float, p);
- declaration_unref(&float_declaration->exp->p);
- declaration_unref(&float_declaration->mantissa->p);
- declaration_unref(&float_declaration->sign->p);
+ bt_declaration_unref(&float_declaration->exp->p);
+ bt_declaration_unref(&float_declaration->mantissa->p);
+ bt_declaration_unref(&float_declaration->sign->p);
g_free(float_declaration);
}
struct definition *tmp;
_float = g_new(struct definition_float, 1);
- declaration_ref(&float_declaration->p);
+ bt_declaration_ref(&float_declaration->p);
_float->p.declaration = declaration;
_float->declaration = float_declaration;
_float->p.scope = new_definition_scope(parent_scope, field_name, root_name);
definition_unref(&_float->exp->p);
definition_unref(&_float->mantissa->p);
free_definition_scope(_float->p.scope);
- declaration_unref(_float->p.declaration);
+ bt_declaration_unref(_float->p.declaration);
g_free(_float);
}
int ret;
integer = g_new(struct definition_integer, 1);
- declaration_ref(&integer_declaration->p);
+ bt_declaration_ref(&integer_declaration->p);
integer->p.declaration = declaration;
integer->declaration = integer_declaration;
integer->p.ref = 1;
struct definition_integer *integer =
container_of(definition, struct definition_integer, p);
- declaration_unref(integer->p.declaration);
+ bt_declaration_unref(integer->p.declaration);
g_free(integer);
}
free_declaration_scope(sequence_declaration->scope);
g_array_free(sequence_declaration->length_name, TRUE);
- declaration_unref(sequence_declaration->elem);
+ bt_declaration_unref(sequence_declaration->elem);
g_free(sequence_declaration);
}
sequence_declaration->length_name = g_array_new(FALSE, TRUE, sizeof(GQuark));
bt_append_scope_path(length, sequence_declaration->length_name);
- declaration_ref(elem_declaration);
+ bt_declaration_ref(elem_declaration);
sequence_declaration->elem = elem_declaration;
sequence_declaration->scope = new_declaration_scope(parent_scope);
declaration->id = CTF_TYPE_SEQUENCE;
int ret;
sequence = g_new(struct definition_sequence, 1);
- declaration_ref(&sequence_declaration->p);
+ bt_declaration_ref(&sequence_declaration->p);
sequence->p.declaration = declaration;
sequence->declaration = sequence_declaration;
sequence->p.ref = 1;
error:
free_definition_scope(sequence->p.scope);
- declaration_unref(&sequence_declaration->p);
+ bt_declaration_unref(&sequence_declaration->p);
g_free(sequence);
return NULL;
}
}
definition_unref(len_definition);
free_definition_scope(sequence->p.scope);
- declaration_unref(sequence->p.declaration);
+ bt_declaration_unref(sequence->p.declaration);
g_free(sequence);
}
int ret;
string = g_new(struct definition_string, 1);
- declaration_ref(&string_declaration->p);
+ bt_declaration_ref(&string_declaration->p);
string->p.declaration = declaration;
string->declaration = string_declaration;
string->p.ref = 1;
struct definition_string *string =
container_of(definition, struct definition_string, p);
- declaration_unref(string->p.declaration);
+ bt_declaration_unref(string->p.declaration);
g_free(string->value);
g_free(string);
}
struct declaration_field *declaration_field =
&g_array_index(struct_declaration->fields,
struct declaration_field, i);
- declaration_unref(declaration_field->declaration);
+ bt_declaration_unref(declaration_field->declaration);
}
g_array_free(struct_declaration->fields, true);
g_free(struct_declaration);
int ret;
_struct = g_new(struct definition_struct, 1);
- declaration_ref(&struct_declaration->p);
+ bt_declaration_ref(&struct_declaration->p);
_struct->p.declaration = declaration;
_struct->declaration = struct_declaration;
_struct->p.ref = 1;
definition_unref(field);
}
free_definition_scope(_struct->p.scope);
- declaration_unref(&struct_declaration->p);
+ bt_declaration_unref(&struct_declaration->p);
g_free(_struct);
return NULL;
}
definition_unref(field);
}
free_definition_scope(_struct->p.scope);
- declaration_unref(_struct->p.declaration);
+ bt_declaration_unref(_struct->p.declaration);
g_ptr_array_free(_struct->fields, TRUE);
g_free(_struct);
}
index = struct_declaration->fields->len - 1; /* last field (new) */
field = &g_array_index(struct_declaration->fields, struct declaration_field, index);
field->name = g_quark_from_string(field_name);
- declaration_ref(field_declaration);
+ bt_declaration_ref(field_declaration);
field->declaration = field_declaration;
/* Keep index in hash rather than pointer, because array can relocate */
g_hash_table_insert(struct_declaration->fields_by_name,
g_hash_table_insert(scope->typedef_declarations,
(gpointer) (unsigned long) name,
declaration);
- declaration_ref(declaration);
+ bt_declaration_ref(declaration);
return 0;
}
return 0;
}
-void declaration_ref(struct declaration *declaration)
+void bt_declaration_ref(struct declaration *declaration)
{
declaration->ref++;
}
-void declaration_unref(struct declaration *declaration)
+void bt_declaration_unref(struct declaration *declaration)
{
if (!declaration)
return;
scope->typedef_declarations = g_hash_table_new_full(g_direct_hash,
g_direct_equal, NULL,
- (GDestroyNotify) declaration_unref);
+ (GDestroyNotify) bt_declaration_unref);
scope->struct_declarations = g_hash_table_new_full(g_direct_hash,
g_direct_equal, NULL,
- (GDestroyNotify) declaration_unref);
+ (GDestroyNotify) bt_declaration_unref);
scope->variant_declarations = g_hash_table_new_full(g_direct_hash,
g_direct_equal, NULL,
- (GDestroyNotify) declaration_unref);
+ (GDestroyNotify) bt_declaration_unref);
scope->enum_declarations = g_hash_table_new_full(g_direct_hash,
g_direct_equal, NULL,
- (GDestroyNotify) declaration_unref);
+ (GDestroyNotify) bt_declaration_unref);
scope->parent_scope = parent_scope;
return scope;
}
g_hash_table_insert(scope->struct_declarations,
(gpointer) (unsigned long) struct_name,
struct_declaration);
- declaration_ref(&struct_declaration->p);
+ bt_declaration_ref(&struct_declaration->p);
/* Also add in typedef/typealias scopes */
prefix_name = prefix_quark("struct ", struct_name);
g_hash_table_insert(scope->variant_declarations,
(gpointer) (unsigned long) variant_name,
untagged_variant_declaration);
- declaration_ref(&untagged_variant_declaration->p);
+ bt_declaration_ref(&untagged_variant_declaration->p);
/* Also add in typedef/typealias scopes */
prefix_name = prefix_quark("variant ", variant_name);
g_hash_table_insert(scope->enum_declarations,
(gpointer) (unsigned long) enum_name,
enum_declaration);
- declaration_ref(&enum_declaration->p);
+ bt_declaration_ref(&enum_declaration->p);
/* Also add in typedef/typealias scopes */
prefix_name = prefix_quark("enum ", enum_name);
struct declaration_field *declaration_field =
&g_array_index(untagged_variant_declaration->fields,
struct declaration_field, i);
- declaration_unref(declaration_field->declaration);
+ bt_declaration_unref(declaration_field->declaration);
}
g_array_free(untagged_variant_declaration->fields, true);
g_free(untagged_variant_declaration);
struct declaration_variant *variant_declaration =
container_of(declaration, struct declaration_variant, p);
- declaration_unref(&variant_declaration->untagged_variant->p);
+ bt_declaration_unref(&variant_declaration->untagged_variant->p);
g_array_free(variant_declaration->tag_name, TRUE);
g_free(variant_declaration);
}
variant_declaration = g_new(struct declaration_variant, 1);
declaration = &variant_declaration->p;
variant_declaration->untagged_variant = untagged_variant;
- declaration_ref(&untagged_variant->p);
+ bt_declaration_ref(&untagged_variant->p);
variant_declaration->tag_name = g_array_new(FALSE, TRUE, sizeof(GQuark));
bt_append_scope_path(tag, variant_declaration->tag_name);
declaration->id = CTF_TYPE_VARIANT;
int ret;
variant = g_new(struct definition_variant, 1);
- declaration_ref(&variant_declaration->p);
+ bt_declaration_ref(&variant_declaration->p);
variant->p.declaration = declaration;
variant->declaration = variant_declaration;
variant->p.ref = 1;
return &variant->p;
error:
free_definition_scope(variant->p.scope);
- declaration_unref(&variant_declaration->p);
+ bt_declaration_unref(&variant_declaration->p);
g_free(variant);
return NULL;
}
}
definition_unref(variant->enum_tag);
free_definition_scope(variant->p.scope);
- declaration_unref(variant->p.declaration);
+ bt_declaration_unref(variant->p.declaration);
g_ptr_array_free(variant->fields, TRUE);
g_free(variant);
}
index = untagged_variant_declaration->fields->len - 1; /* last field (new) */
field = &g_array_index(untagged_variant_declaration->fields, struct declaration_field, index);
field->name = g_quark_from_string(field_name);
- declaration_ref(field_declaration);
+ bt_declaration_ref(field_declaration);
field->declaration = field_declaration;
/* Keep index in hash rather than pointer, because array can relocate */
g_hash_table_insert(untagged_variant_declaration->fields_by_tag,