int opt_clock_force_correlate;
static
-struct declaration *ctf_type_specifier_list_visit(FILE *fd,
+struct bt_declaration *ctf_type_specifier_list_visit(FILE *fd,
int depth, struct ctf_node *type_specifier_list,
struct declaration_scope *declaration_scope,
struct ctf_trace *trace);
}
static
-struct declaration *ctf_type_declarator_visit(FILE *fd, int depth,
+struct bt_declaration *ctf_type_declarator_visit(FILE *fd, int depth,
struct ctf_node *type_specifier_list,
GQuark *field_name,
struct ctf_node *node_type_declarator,
struct declaration_scope *declaration_scope,
- struct declaration *nested_declaration,
+ struct bt_declaration *nested_declaration,
struct ctf_trace *trace)
{
/*
*field_name = 0;
return nested_declaration;
} else {
- struct declaration *declaration;
+ struct bt_declaration *declaration;
struct ctf_node *first;
/* TYPEDEC_NESTED */
GQuark field_name;
bt_list_for_each_entry(iter, type_declarators, siblings) {
- struct declaration *field_declaration;
+ struct bt_declaration *field_declaration;
field_declaration = ctf_type_declarator_visit(fd, depth,
type_specifier_list,
GQuark field_name;
bt_list_for_each_entry(iter, type_declarators, siblings) {
- struct declaration *field_declaration;
+ struct bt_declaration *field_declaration;
field_declaration = ctf_type_declarator_visit(fd, depth,
type_specifier_list,
GQuark identifier;
bt_list_for_each_entry(iter, type_declarators, siblings) {
- struct declaration *type_declaration;
+ struct bt_declaration *type_declaration;
int ret;
type_declaration = ctf_type_declarator_visit(fd, depth,
struct ctf_node *target, struct ctf_node *alias,
struct ctf_trace *trace)
{
- struct declaration *type_declaration;
+ struct bt_declaration *type_declaration;
struct ctf_node *node;
GQuark dummy_id;
GQuark alias_q;
switch (iter->type) {
case NODE_TYPEDEF:
- /* For each declarator, declare type and add type to struct declaration scope */
+ /* For each declarator, declare type and add type to struct bt_declaration scope */
ret = ctf_typedef_visit(fd, depth,
struct_declaration->scope,
iter->u._typedef.type_specifier_list,
return ret;
break;
case NODE_TYPEALIAS:
- /* Declare type with declarator and add type to struct declaration scope */
+ /* Declare type with declarator and add type to struct bt_declaration scope */
ret = ctf_typealias_visit(fd, depth,
struct_declaration->scope,
iter->u.typealias.target,
}
static
-struct declaration *ctf_declaration_struct_visit(FILE *fd,
+struct bt_declaration *ctf_declaration_struct_visit(FILE *fd,
int depth, const char *name, struct bt_list_head *declaration_list,
int has_body, struct bt_list_head *min_align,
struct declaration_scope *declaration_scope,
}
static
-struct declaration *ctf_declaration_variant_visit(FILE *fd,
+struct bt_declaration *ctf_declaration_variant_visit(FILE *fd,
int depth, const char *name, const char *choice,
struct bt_list_head *declaration_list,
int has_body, struct declaration_scope *declaration_scope,
}
static
-struct declaration *ctf_declaration_enum_visit(FILE *fd, int depth,
+struct bt_declaration *ctf_declaration_enum_visit(FILE *fd, int depth,
const char *name,
struct ctf_node *container_type,
struct bt_list_head *enumerator_list,
struct declaration_scope *declaration_scope,
struct ctf_trace *trace)
{
- struct declaration *declaration;
+ struct bt_declaration *declaration;
struct declaration_enum *enum_declaration;
struct declaration_integer *integer_declaration;
struct last_enum_value last_value;
}
static
-struct declaration *ctf_declaration_type_specifier_visit(FILE *fd, int depth,
+struct bt_declaration *ctf_declaration_type_specifier_visit(FILE *fd, int depth,
struct ctf_node *type_specifier_list,
struct declaration_scope *declaration_scope)
{
GString *str;
- struct declaration *declaration;
+ struct bt_declaration *declaration;
char *str_c;
int ret;
GQuark id_q;
str = g_string_new("");
ret = visit_type_specifier_list(fd, type_specifier_list, str);
- if (ret)
+ if (ret) {
+ (void) g_string_free(str, TRUE);
return NULL;
+ }
str_c = g_string_free(str, FALSE);
id_q = g_quark_from_string(str_c);
g_free(str_c);
declaration = bt_lookup_declaration(id_q, declaration_scope);
+ if (!declaration)
+ return NULL;
bt_declaration_ref(declaration);
return declaration;
}
else if (!strcmp(unary_expression->u.unary_expression.u.string, "le"))
byte_order = LITTLE_ENDIAN;
else {
- fprintf(fd, "[error] %s: unexpected string \"%s\". Should be \"native\", \"network\", \"be\" or \"le\".\n",
+ fprintf(fd, "[error] %s: unexpected string \"%s\". Should be \"be\" or \"le\".\n",
__func__, unary_expression->u.unary_expression.u.string);
return -EINVAL;
}
}
static
-struct declaration *ctf_declaration_integer_visit(FILE *fd, int depth,
+struct bt_declaration *ctf_declaration_integer_visit(FILE *fd, int depth,
struct bt_list_head *expressions,
struct ctf_trace *trace)
{
}
static
-struct declaration *ctf_declaration_floating_point_visit(FILE *fd, int depth,
+struct bt_declaration *ctf_declaration_floating_point_visit(FILE *fd, int depth,
struct bt_list_head *expressions,
struct ctf_trace *trace)
{
}
static
-struct declaration *ctf_declaration_string_visit(FILE *fd, int depth,
+struct bt_declaration *ctf_declaration_string_visit(FILE *fd, int depth,
struct bt_list_head *expressions,
struct ctf_trace *trace)
{
static
-struct declaration *ctf_type_specifier_list_visit(FILE *fd,
+struct bt_declaration *ctf_type_specifier_list_visit(FILE *fd,
int depth, struct ctf_node *type_specifier_list,
struct declaration_scope *declaration_scope,
struct ctf_trace *trace)
}
CTF_EVENT_SET_FIELD(event, stream_id);
} else if (!strcmp(left, "context")) {
- struct declaration *declaration;
+ struct bt_declaration *declaration;
if (event->context_decl) {
fprintf(fd, "[error] %s: context already declared in event declaration\n", __func__);
}
event->context_decl = container_of(declaration, struct declaration_struct, p);
} else if (!strcmp(left, "fields")) {
- struct declaration *declaration;
+ struct bt_declaration *declaration;
if (event->fields_decl) {
fprintf(fd, "[error] %s: fields already declared in event declaration\n", __func__);
}
CTF_STREAM_SET_FIELD(stream, stream_id);
} else if (!strcmp(left, "event.header")) {
- struct declaration *declaration;
+ struct bt_declaration *declaration;
if (stream->event_header_decl) {
fprintf(fd, "[error] %s: event.header already declared in stream declaration\n", __func__);
}
stream->event_header_decl = container_of(declaration, struct declaration_struct, p);
} else if (!strcmp(left, "event.context")) {
- struct declaration *declaration;
+ struct bt_declaration *declaration;
if (stream->event_context_decl) {
fprintf(fd, "[error] %s: event.context already declared in stream declaration\n", __func__);
}
stream->event_context_decl = container_of(declaration, struct declaration_struct, p);
} else if (!strcmp(left, "packet.context")) {
- struct declaration *declaration;
+ struct bt_declaration *declaration;
if (stream->packet_context_decl) {
fprintf(fd, "[error] %s: packet.context already declared in stream declaration\n", __func__);
}
CTF_TRACE_SET_FIELD(trace, byte_order);
} else if (!strcmp(left, "packet.header")) {
- struct declaration *declaration;
+ struct bt_declaration *declaration;
if (trace->packet_header_decl) {
fprintf(fd, "[error] %s: packet.header already declared in trace declaration\n", __func__);
if (opt_clock_force_correlate) {
/*
* User requested to forcibly correlate the clock
- * sources, even if we have no correlatation
+ * sources, even if we have no correlation
* information.
*/
if (!clock->absolute) {
break;
case NODE_TYPE_SPECIFIER_LIST:
{
- struct declaration *declaration;
+ struct bt_declaration *declaration;
/*
* Just add the type specifier to the root scope
struct ctf_node *iter;
int env_clock_done = 0;
- printf_verbose("CTF visitor: metadata construction... ");
+ printf_verbose("CTF visitor: metadata construction...\n");
trace->byte_order = byte_order;
trace->clocks = g_hash_table_new_full(g_direct_hash, g_direct_equal,
NULL, clock_free);