X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=lib%2Fctf-ir%2Fevent-class.c;h=8e685eb70763f9e7d77d6411dee865c00e599c30;hb=2a3ced3c38855ea18eb9b29e58563a7301b98216;hp=8ff8bc0394ed9f5f2b69d62ba74d219f7c5e5747;hpb=4a2fffdb3c120ac5f16d4308b2da375fbe9def20;p=babeltrace.git diff --git a/lib/ctf-ir/event-class.c b/lib/ctf-ir/event-class.c index 8ff8bc03..8e685eb7 100644 --- a/lib/ctf-ir/event-class.c +++ b/lib/ctf-ir/event-class.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -709,3 +710,50 @@ end: BT_PUT(attr_value); return ret; } + +BT_HIDDEN +int bt_event_class_validate_single_clock_class( + struct bt_event_class *event_class, + struct bt_clock_class **expected_clock_class) +{ + int ret = 0; + + assert(event_class); + assert(expected_clock_class); + ret = bt_validate_single_clock_class(event_class->context, + expected_clock_class); + if (ret) { + BT_LOGW("Event class's context field type " + "is not recursively mapped to the " + "expected clock class: " + "event-class-addr=%p, " + "event-class-name=\"%s\", " + "event-class-id=%" PRId64 ", " + "ft-addr=%p", + event_class, + bt_event_class_get_name(event_class), + event_class->id, + event_class->context); + goto end; + } + + ret = bt_validate_single_clock_class(event_class->fields, + expected_clock_class); + if (ret) { + BT_LOGW("Event class's payload field type " + "is not recursively mapped to the " + "expected clock class: " + "event-class-addr=%p, " + "event-class-name=\"%s\", " + "event-class-id=%" PRId64 ", " + "ft-addr=%p", + event_class, + bt_event_class_get_name(event_class), + event_class->id, + event_class->fields); + goto end; + } + +end: + return ret; +}