} scopes;
/* Root scope being visited */
- enum bt_scope root_scope;
+ enum ctf_scope root_scope;
field_class_stack *field_class_stack;
struct ctf_field_class *cur_fc;
};
/* TSDL dynamic scope prefixes as defined in CTF Section 7.3.2 */
static const char * const absolute_path_prefixes[] = {
- [BT_SCOPE_PACKET_HEADER] = "trace.packet.header.",
- [BT_SCOPE_PACKET_CONTEXT] = "stream.packet.context.",
- [BT_SCOPE_EVENT_HEADER] = "stream.event.header.",
- [BT_SCOPE_EVENT_COMMON_CONTEXT] = "stream.event.context.",
- [BT_SCOPE_EVENT_SPECIFIC_CONTEXT] = "event.context.",
- [BT_SCOPE_EVENT_PAYLOAD] = "event.fields.",
+ [CTF_SCOPE_PACKET_HEADER] = "trace.packet.header.",
+ [CTF_SCOPE_PACKET_CONTEXT] = "stream.packet.context.",
+ [CTF_SCOPE_EVENT_HEADER] = "stream.event.header.",
+ [CTF_SCOPE_EVENT_COMMON_CONTEXT] = "stream.event.context.",
+ [CTF_SCOPE_EVENT_SPECIFIC_CONTEXT] = "event.context.",
+ [CTF_SCOPE_EVENT_PAYLOAD] = "event.fields.",
};
/* Number of path tokens used for the absolute prefixes */
static const uint64_t absolute_path_prefix_ptoken_counts[] = {
- [BT_SCOPE_PACKET_HEADER] = 3,
- [BT_SCOPE_PACKET_CONTEXT] = 3,
- [BT_SCOPE_EVENT_HEADER] = 3,
- [BT_SCOPE_EVENT_COMMON_CONTEXT] = 3,
- [BT_SCOPE_EVENT_SPECIFIC_CONTEXT] = 2,
- [BT_SCOPE_EVENT_PAYLOAD] = 2,
+ [CTF_SCOPE_PACKET_HEADER] = 3,
+ [CTF_SCOPE_PACKET_CONTEXT] = 3,
+ [CTF_SCOPE_EVENT_HEADER] = 3,
+ [CTF_SCOPE_EVENT_COMMON_CONTEXT] = 3,
+ [CTF_SCOPE_EVENT_SPECIFIC_CONTEXT] = 2,
+ [CTF_SCOPE_EVENT_PAYLOAD] = 2,
};
static
*/
static
struct ctf_field_class *borrow_class_from_ctx(struct resolve_context *ctx,
- enum bt_scope scope)
+ enum ctf_scope scope)
{
switch (scope) {
- case BT_SCOPE_PACKET_HEADER:
+ case CTF_SCOPE_PACKET_HEADER:
return ctx->scopes.packet_header;
- case BT_SCOPE_PACKET_CONTEXT:
+ case CTF_SCOPE_PACKET_CONTEXT:
return ctx->scopes.packet_context;
- case BT_SCOPE_EVENT_HEADER:
+ case CTF_SCOPE_EVENT_HEADER:
return ctx->scopes.event_header;
- case BT_SCOPE_EVENT_COMMON_CONTEXT:
+ case CTF_SCOPE_EVENT_COMMON_CONTEXT:
return ctx->scopes.event_common_context;
- case BT_SCOPE_EVENT_SPECIFIC_CONTEXT:
+ case CTF_SCOPE_EVENT_SPECIFIC_CONTEXT:
return ctx->scopes.event_spec_context;
- case BT_SCOPE_EVENT_PAYLOAD:
+ case CTF_SCOPE_EVENT_PAYLOAD:
return ctx->scopes.event_payload;
default:
abort();
* is found to be relative.
*/
static
-enum bt_scope get_root_scope_from_absolute_pathstr(const char *pathstr)
+enum ctf_scope get_root_scope_from_absolute_pathstr(const char *pathstr)
{
- enum bt_scope scope;
- enum bt_scope ret = -1;
+ enum ctf_scope scope;
+ enum ctf_scope ret = -1;
const size_t prefixes_count = sizeof(absolute_path_prefixes) /
sizeof(*absolute_path_prefixes);
- for (scope = BT_SCOPE_PACKET_HEADER; scope < BT_SCOPE_PACKET_HEADER +
+ for (scope = CTF_SCOPE_PACKET_HEADER; scope < CTF_SCOPE_PACKET_HEADER +
prefixes_count; scope++) {
/*
* Chech if path string starts with a known absolute
BT_LOGV("Current path token: token=\"%s\"", ft_name);
/* Find to which index corresponds the current path token */
- if (fc->id == CTF_FIELD_CLASS_ID_ARRAY ||
- fc->id == CTF_FIELD_CLASS_ID_SEQUENCE) {
+ if (fc->type == CTF_FIELD_CLASS_TYPE_ARRAY ||
+ fc->type == CTF_FIELD_CLASS_TYPE_SEQUENCE) {
child_index = -1;
} else {
child_index =
* object.
*/
switch (field_path->root) {
- case BT_SCOPE_PACKET_HEADER:
+ case CTF_SCOPE_PACKET_HEADER:
if (ctx->tc->is_translated) {
BT_LOGE("Trace class is already translated: "
"root-scope=%s",
}
break;
- case BT_SCOPE_PACKET_CONTEXT:
- case BT_SCOPE_EVENT_HEADER:
- case BT_SCOPE_EVENT_COMMON_CONTEXT:
+ case CTF_SCOPE_PACKET_CONTEXT:
+ case CTF_SCOPE_EVENT_HEADER:
+ case CTF_SCOPE_EVENT_COMMON_CONTEXT:
if (!ctx->sc) {
BT_LOGE("No current stream class: "
"root-scope=%s",
}
break;
- case BT_SCOPE_EVENT_SPECIFIC_CONTEXT:
- case BT_SCOPE_EVENT_PAYLOAD:
+ case CTF_SCOPE_EVENT_SPECIFIC_CONTEXT:
+ case CTF_SCOPE_EVENT_PAYLOAD:
if (!ctx->ec) {
BT_LOGE("No current event class: "
"root-scope=%s",
struct ctf_field_path *field_path, struct resolve_context *ctx)
{
int ret = 0;
- enum bt_scope root_scope;
+ enum ctf_scope root_scope;
GList *ptokens = NULL;
/* Convert path string to path tokens */
/*
* Make sure the target class has the right class and properties.
*/
- switch (ctx->cur_fc->id) {
- case CTF_FIELD_CLASS_ID_VARIANT:
- if (target_fc->id != CTF_FIELD_CLASS_ID_ENUM) {
+ switch (ctx->cur_fc->type) {
+ case CTF_FIELD_CLASS_TYPE_VARIANT:
+ if (target_fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
BT_LOGE("Variant field class's tag field class is not an enumeration field class: "
"tag-fc-addr=%p, tag-fc-id=%d",
- target_fc, target_fc->id);
+ target_fc, target_fc->type);
ret = -1;
goto end;
}
break;
- case CTF_FIELD_CLASS_ID_SEQUENCE:
+ case CTF_FIELD_CLASS_TYPE_SEQUENCE:
{
struct ctf_field_class_int *int_fc = (void *) target_fc;
- if (target_fc->id != CTF_FIELD_CLASS_ID_INT &&
- target_fc->id != CTF_FIELD_CLASS_ID_ENUM) {
+ if (target_fc->type != CTF_FIELD_CLASS_TYPE_INT &&
+ target_fc->type != CTF_FIELD_CLASS_TYPE_ENUM) {
BT_LOGE("Sequence field class's length field class is not an unsigned integer field class: "
"length-fc-addr=%p, length-fc-id=%d",
- target_fc, target_fc->id);
+ target_fc, target_fc->type);
ret = -1;
goto end;
}
if (int_fc->is_signed) {
BT_LOGE("Sequence field class's length field class is not an unsigned integer field class: "
"length-fc-addr=%p, length-fc-id=%d",
- target_fc, target_fc->id);
+ target_fc, target_fc->type);
ret = -1;
goto end;
}
ctf_field_path_init(&target_field_path);
/* Get path string */
- switch (fc->id) {
- case CTF_FIELD_CLASS_ID_SEQUENCE:
+ switch (fc->type) {
+ case CTF_FIELD_CLASS_TYPE_SEQUENCE:
{
struct ctf_field_class_sequence *seq_fc = (void *) fc;
pathstr = seq_fc->length_ref->str;
break;
}
- case CTF_FIELD_CLASS_ID_VARIANT:
+ case CTF_FIELD_CLASS_TYPE_VARIANT:
{
struct ctf_field_class_variant *var_fc = (void *) fc;
pathstr = var_fc->tag_ref->str;
}
/* Set target field path and target field class */
- switch (fc->id) {
- case CTF_FIELD_CLASS_ID_SEQUENCE:
+ switch (fc->type) {
+ case CTF_FIELD_CLASS_TYPE_SEQUENCE:
{
struct ctf_field_class_sequence *seq_fc = (void *) fc;
seq_fc->length_fc = (void *) target_fc;
break;
}
- case CTF_FIELD_CLASS_ID_VARIANT:
+ case CTF_FIELD_CLASS_TYPE_VARIANT:
{
struct ctf_field_class_variant *var_fc = (void *) fc;
ctx->cur_fc = fc;
/* Resolve sequence/variant field class */
- switch (fc->id) {
- case CTF_FIELD_CLASS_ID_SEQUENCE:
- case CTF_FIELD_CLASS_ID_VARIANT:
+ switch (fc->type) {
+ case CTF_FIELD_CLASS_TYPE_SEQUENCE:
+ case CTF_FIELD_CLASS_TYPE_VARIANT:
ret = resolve_sequence_or_variant_field_class(fc, ctx);
if (ret) {
BT_LOGE("Cannot resolve sequence field class's length or variant field class's tag: "
}
/* Recurse into compound classes */
- switch (fc->id) {
- case CTF_FIELD_CLASS_ID_STRUCT:
- case CTF_FIELD_CLASS_ID_VARIANT:
- case CTF_FIELD_CLASS_ID_SEQUENCE:
- case CTF_FIELD_CLASS_ID_ARRAY:
+ switch (fc->type) {
+ case CTF_FIELD_CLASS_TYPE_STRUCT:
+ case CTF_FIELD_CLASS_TYPE_VARIANT:
+ case CTF_FIELD_CLASS_TYPE_SEQUENCE:
+ case CTF_FIELD_CLASS_TYPE_ARRAY:
{
uint64_t i;
uint64_t field_count =
BT_ASSERT(child_fc);
- if (fc->id == CTF_FIELD_CLASS_ID_ARRAY||
- fc->id == CTF_FIELD_CLASS_ID_SEQUENCE) {
+ if (fc->type == CTF_FIELD_CLASS_TYPE_ARRAY||
+ fc->type == CTF_FIELD_CLASS_TYPE_SEQUENCE) {
field_class_stack_peek(
ctx->field_class_stack)->index = -1;
} else {
* Resolves the root field class corresponding to the scope `root_scope`.
*/
static
-int resolve_root_class(enum bt_scope root_scope, struct resolve_context *ctx)
+int resolve_root_class(enum ctf_scope root_scope, struct resolve_context *ctx)
{
int ret;
ctx->ec = ec;
ctx->scopes.event_spec_context = ec->spec_context_fc;
- ret = resolve_root_class(BT_SCOPE_EVENT_COMMON_CONTEXT, ctx);
+ ret = resolve_root_class(CTF_SCOPE_EVENT_COMMON_CONTEXT, ctx);
if (ret) {
BT_LOGE("Cannot resolve event specific context field class: "
"ret=%d", ret);
}
ctx->scopes.event_payload = ec->payload_fc;
- ret = resolve_root_class(BT_SCOPE_EVENT_PAYLOAD, ctx);
+ ret = resolve_root_class(CTF_SCOPE_EVENT_PAYLOAD, ctx);
if (ret) {
BT_LOGE("Cannot resolve event payload field class: "
"ret=%d", ret);
if (!sc->is_translated) {
ctx->scopes.packet_context = sc->packet_context_fc;
- ret = resolve_root_class(BT_SCOPE_PACKET_CONTEXT, ctx);
+ ret = resolve_root_class(CTF_SCOPE_PACKET_CONTEXT, ctx);
if (ret) {
BT_LOGE("Cannot resolve packet context field class: "
"ret=%d", ret);
}
ctx->scopes.event_header = sc->event_header_fc;
- ret = resolve_root_class(BT_SCOPE_EVENT_HEADER, ctx);
+ ret = resolve_root_class(CTF_SCOPE_EVENT_HEADER, ctx);
if (ret) {
BT_LOGE("Cannot resolve event header field class: "
"ret=%d", ret);
}
ctx->scopes.event_common_context = sc->event_common_context_fc;
- ret = resolve_root_class(BT_SCOPE_EVENT_SPECIFIC_CONTEXT, ctx);
+ ret = resolve_root_class(CTF_SCOPE_EVENT_SPECIFIC_CONTEXT, ctx);
if (ret) {
BT_LOGE("Cannot resolve event common context field class: "
"ret=%d", ret);
.event_spec_context = NULL,
.event_payload = NULL,
},
- .root_scope = BT_SCOPE_PACKET_HEADER,
+ .root_scope = CTF_SCOPE_PACKET_HEADER,
.cur_fc = NULL,
};
if (!tc->is_translated) {
ctx.scopes.packet_header = tc->packet_header_fc;
- ret = resolve_root_class(BT_SCOPE_PACKET_HEADER, &ctx);
+ ret = resolve_root_class(CTF_SCOPE_PACKET_HEADER, &ctx);
if (ret) {
BT_LOGE("Cannot resolve packet header field class: "
"ret=%d", ret);