+int bt_event_common_initialize(struct bt_event_common *event,
+ struct bt_event_class_common *event_class,
+ struct bt_clock_class *init_expected_clock_class,
+ bool is_shared_with_parent, bt_object_release_func release_func,
+ bt_validation_flag_copy_field_type_func field_type_copy_func,
+ bool must_be_in_trace,
+ int (*map_clock_classes_func)(struct bt_stream_class_common *stream_class,
+ struct bt_field_type_common *packet_context_field_type,
+ struct bt_field_type_common *event_header_field_type),
+ create_field_func create_field_func,
+ release_field_func release_field_func,
+ create_header_field_func create_header_field_func,
+ release_header_field_func release_header_field_func);
+
+static inline
+struct bt_field_common *bt_event_common_borrow_payload(
+ struct bt_event_common *event)
+{
+ struct bt_field_common *payload = NULL;
+
+ BT_ASSERT_PRE_NON_NULL(event, "Event");
+
+ if (!event->payload_field) {
+ BT_LOGV("Event has no current payload field: addr=%p, "
+ "event-class-name=\"%s\", event-class-id=%" PRId64,
+ event, bt_event_class_common_get_name(event->class),
+ bt_event_class_common_get_id(event->class));
+ goto end;
+ }
+
+ payload = event->payload_field;
+
+end:
+ return payload;
+}
+
+static inline
+struct bt_field_common *bt_event_common_borrow_header(
+ struct bt_event_common *event)
+{
+ struct bt_field_common *header = NULL;
+
+ BT_ASSERT_PRE_NON_NULL(event, "Event");
+
+ if (!event->header_field) {
+ BT_LOGV("Event has no current header field: addr=%p, "
+ "event-class-name=\"%s\", event-class-id=%" PRId64,
+ event, bt_event_class_common_get_name(event->class),
+ bt_event_class_common_get_id(event->class));
+ goto end;
+ }
+
+ header = event->header_field->field;
+
+end:
+ return header;
+}
+
+static inline
+struct bt_field_common *bt_event_common_borrow_context(
+ struct bt_event_common *event)
+{
+ struct bt_field_common *context = NULL;
+
+ BT_ASSERT_PRE_NON_NULL(event, "Event");
+
+ if (!event->context_field) {
+ BT_LOGV("Event has no current context field: addr=%p, "
+ "event-class-name=\"%s\", event-class-id=%" PRId64,
+ event, bt_event_class_common_get_name(event->class),
+ bt_event_class_common_get_id(event->class));
+ goto end;
+ }
+
+ context = event->context_field;
+
+end:
+ return context;
+}