add Trusty FTrace Events
Bug: 179312495
Change-Id: I59d7f04b715b18fe61fcf50a058a482182f621d6
diff --git a/Android.bp b/Android.bp
index 4f9a16ab..917009f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -4790,6 +4790,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
"protos/perfetto/trace/ftrace/virtio_video.proto",
@@ -5025,6 +5026,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
"protos/perfetto/trace/ftrace/virtio_video.proto",
@@ -5092,6 +5094,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.gen.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/trusty.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.gen.cc",
"external/perfetto/protos/perfetto/trace/ftrace/virtio_video.gen.cc",
@@ -5159,6 +5162,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
"protos/perfetto/trace/ftrace/virtio_video.proto",
@@ -5226,6 +5230,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.gen.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/trusty.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.gen.h",
"external/perfetto/protos/perfetto/trace/ftrace/virtio_video.gen.h",
@@ -5297,6 +5302,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
"protos/perfetto/trace/ftrace/virtio_video.proto",
@@ -5363,6 +5369,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.pb.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/trusty.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.pb.cc",
"external/perfetto/protos/perfetto/trace/ftrace/virtio_video.pb.cc",
@@ -5430,6 +5437,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
"protos/perfetto/trace/ftrace/virtio_video.proto",
@@ -5496,6 +5504,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.pb.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/trusty.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.pb.h",
"external/perfetto/protos/perfetto/trace/ftrace/virtio_video.pb.h",
@@ -5567,6 +5576,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
"protos/perfetto/trace/ftrace/virtio_video.proto",
@@ -5634,6 +5644,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/ftrace/trusty.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.pbzero.cc",
"external/perfetto/protos/perfetto/trace/ftrace/virtio_video.pbzero.cc",
@@ -5701,6 +5712,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
"protos/perfetto/trace/ftrace/virtio_video.proto",
@@ -5768,6 +5780,7 @@
"external/perfetto/protos/perfetto/trace/ftrace/tcp.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/test_bundle_wrapper.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/thermal.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/ftrace/trusty.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/ufs.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/v4l2.pbzero.h",
"external/perfetto/protos/perfetto/trace/ftrace/virtio_video.pbzero.h",
@@ -10649,6 +10662,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
"protos/perfetto/trace/ftrace/virtio_video.proto",
diff --git a/BUILD b/BUILD
index d81c6ee..ed8c442 100644
--- a/BUILD
+++ b/BUILD
@@ -3440,6 +3440,7 @@
"protos/perfetto/trace/ftrace/tcp.proto",
"protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
"protos/perfetto/trace/ftrace/thermal.proto",
+ "protos/perfetto/trace/ftrace/trusty.proto",
"protos/perfetto/trace/ftrace/ufs.proto",
"protos/perfetto/trace/ftrace/v4l2.proto",
"protos/perfetto/trace/ftrace/virtio_video.proto",
diff --git a/protos/perfetto/trace/ftrace/all_protos.gni b/protos/perfetto/trace/ftrace/all_protos.gni
index efb0f9a..5b7c738 100644
--- a/protos/perfetto/trace/ftrace/all_protos.gni
+++ b/protos/perfetto/trace/ftrace/all_protos.gni
@@ -70,6 +70,7 @@
"task.proto",
"tcp.proto",
"thermal.proto",
+ "trusty.proto",
"ufs.proto",
"v4l2.proto",
"virtio_video.proto",
diff --git a/protos/perfetto/trace/ftrace/ftrace_event.proto b/protos/perfetto/trace/ftrace/ftrace_event.proto
index b13f37f..d3f2ae4 100644
--- a/protos/perfetto/trace/ftrace/ftrace_event.proto
+++ b/protos/perfetto/trace/ftrace/ftrace_event.proto
@@ -70,6 +70,7 @@
import "protos/perfetto/trace/ftrace/task.proto";
import "protos/perfetto/trace/ftrace/tcp.proto";
import "protos/perfetto/trace/ftrace/thermal.proto";
+import "protos/perfetto/trace/ftrace/trusty.proto";
import "protos/perfetto/trace/ftrace/ufs.proto";
import "protos/perfetto/trace/ftrace/v4l2.proto";
import "protos/perfetto/trace/ftrace/virtio_video.proto";
@@ -550,5 +551,25 @@
442;
MmShrinkSlabStartFtraceEvent mm_shrink_slab_start = 443;
MmShrinkSlabEndFtraceEvent mm_shrink_slab_end = 444;
+ TrustySmcFtraceEvent trusty_smc = 445;
+ TrustySmcDoneFtraceEvent trusty_smc_done = 446;
+ TrustyStdCall32FtraceEvent trusty_std_call32 = 447;
+ TrustyStdCall32DoneFtraceEvent trusty_std_call32_done = 448;
+ TrustyShareMemoryFtraceEvent trusty_share_memory = 449;
+ TrustyShareMemoryDoneFtraceEvent trusty_share_memory_done = 450;
+ TrustyReclaimMemoryFtraceEvent trusty_reclaim_memory = 451;
+ TrustyReclaimMemoryDoneFtraceEvent trusty_reclaim_memory_done = 452;
+ TrustyIrqFtraceEvent trusty_irq = 453;
+ TrustyIpcHandleEventFtraceEvent trusty_ipc_handle_event = 454;
+ TrustyIpcConnectFtraceEvent trusty_ipc_connect = 455;
+ TrustyIpcConnectEndFtraceEvent trusty_ipc_connect_end = 456;
+ TrustyIpcWriteFtraceEvent trusty_ipc_write = 457;
+ TrustyIpcPollFtraceEvent trusty_ipc_poll = 458;
+ TrustyIpcPollEndFtraceEvent trusty_ipc_poll_end = 459;
+ TrustyIpcReadFtraceEvent trusty_ipc_read = 460;
+ TrustyIpcReadEndFtraceEvent trusty_ipc_read_end = 461;
+ TrustyIpcRxFtraceEvent trusty_ipc_rx = 462;
+ TrustyIpcTxFtraceEvent trusty_ipc_tx = 463;
+ TrustyEnqueueNopFtraceEvent trusty_enqueue_nop = 464;
}
}
diff --git a/protos/perfetto/trace/ftrace/trusty.proto b/protos/perfetto/trace/ftrace/trusty.proto
new file mode 100644
index 0000000..d3739ce
--- /dev/null
+++ b/protos/perfetto/trace/ftrace/trusty.proto
@@ -0,0 +1,98 @@
+// Autogenerated by:
+// ../../src/tools/ftrace_proto_gen/ftrace_proto_gen.cc
+// Do not edit.
+
+syntax = "proto2";
+package perfetto.protos;
+
+message TrustySmcFtraceEvent {
+ optional uint64 r0 = 1;
+ optional uint64 r1 = 2;
+ optional uint64 r2 = 3;
+ optional uint64 r3 = 4;
+}
+message TrustySmcDoneFtraceEvent {
+ optional uint64 ret = 1;
+}
+message TrustyStdCall32FtraceEvent {
+ optional uint64 r0 = 1;
+ optional uint64 r1 = 2;
+ optional uint64 r2 = 3;
+ optional uint64 r3 = 4;
+}
+message TrustyStdCall32DoneFtraceEvent {
+ optional int64 ret = 1;
+}
+message TrustyShareMemoryFtraceEvent {
+ optional uint64 len = 1;
+ optional uint32 lend = 2;
+ optional uint32 nents = 3;
+}
+message TrustyShareMemoryDoneFtraceEvent {
+ optional uint64 handle = 1;
+ optional uint64 len = 2;
+ optional uint32 lend = 3;
+ optional uint32 nents = 4;
+ optional int32 ret = 5;
+}
+message TrustyReclaimMemoryFtraceEvent {
+ optional uint64 id = 1;
+}
+message TrustyReclaimMemoryDoneFtraceEvent {
+ optional uint64 id = 1;
+ optional int32 ret = 2;
+}
+message TrustyIrqFtraceEvent {
+ optional int32 irq = 1;
+}
+message TrustyIpcHandleEventFtraceEvent {
+ optional uint32 chan = 1;
+ optional uint32 event_id = 2;
+ optional string srv_name = 3;
+}
+message TrustyIpcConnectFtraceEvent {
+ optional uint32 chan = 1;
+ optional string port = 2;
+ optional int32 state = 3;
+}
+message TrustyIpcConnectEndFtraceEvent {
+ optional uint32 chan = 1;
+ optional int32 err = 2;
+ optional int32 state = 3;
+}
+message TrustyIpcWriteFtraceEvent {
+ optional uint64 buf_id = 1;
+ optional uint32 chan = 2;
+ optional int32 kind_shm = 3;
+ optional int32 len_or_err = 4;
+ optional uint64 shm_cnt = 5;
+ optional string srv_name = 6;
+}
+message TrustyIpcPollFtraceEvent {
+ optional uint32 chan = 1;
+ optional uint32 poll_mask = 2;
+ optional string srv_name = 3;
+}
+message TrustyIpcPollEndFtraceEvent {}
+message TrustyIpcReadFtraceEvent {
+ optional uint32 chan = 1;
+ optional string srv_name = 2;
+}
+message TrustyIpcReadEndFtraceEvent {
+ optional uint64 buf_id = 1;
+ optional uint32 chan = 2;
+ optional int32 len_or_err = 3;
+ optional uint64 shm_cnt = 4;
+ optional string srv_name = 5;
+}
+message TrustyIpcRxFtraceEvent {
+ optional uint64 buf_id = 1;
+ optional uint32 chan = 2;
+ optional string srv_name = 3;
+}
+message TrustyIpcTxFtraceEvent {}
+message TrustyEnqueueNopFtraceEvent {
+ optional uint32 arg1 = 1;
+ optional uint32 arg2 = 2;
+ optional uint32 arg3 = 3;
+}
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 016c5b8..377e62f 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -6940,6 +6940,102 @@
// End of protos/perfetto/trace/ftrace/thermal.proto
+// Begin of protos/perfetto/trace/ftrace/trusty.proto
+
+message TrustySmcFtraceEvent {
+ optional uint64 r0 = 1;
+ optional uint64 r1 = 2;
+ optional uint64 r2 = 3;
+ optional uint64 r3 = 4;
+}
+message TrustySmcDoneFtraceEvent {
+ optional uint64 ret = 1;
+}
+message TrustyStdCall32FtraceEvent {
+ optional uint64 r0 = 1;
+ optional uint64 r1 = 2;
+ optional uint64 r2 = 3;
+ optional uint64 r3 = 4;
+}
+message TrustyStdCall32DoneFtraceEvent {
+ optional int64 ret = 1;
+}
+message TrustyShareMemoryFtraceEvent {
+ optional uint64 len = 1;
+ optional uint32 lend = 2;
+ optional uint32 nents = 3;
+}
+message TrustyShareMemoryDoneFtraceEvent {
+ optional uint64 handle = 1;
+ optional uint64 len = 2;
+ optional uint32 lend = 3;
+ optional uint32 nents = 4;
+ optional int32 ret = 5;
+}
+message TrustyReclaimMemoryFtraceEvent {
+ optional uint64 id = 1;
+}
+message TrustyReclaimMemoryDoneFtraceEvent {
+ optional uint64 id = 1;
+ optional int32 ret = 2;
+}
+message TrustyIrqFtraceEvent {
+ optional int32 irq = 1;
+}
+message TrustyIpcHandleEventFtraceEvent {
+ optional uint32 chan = 1;
+ optional uint32 event_id = 2;
+ optional string srv_name = 3;
+}
+message TrustyIpcConnectFtraceEvent {
+ optional uint32 chan = 1;
+ optional string port = 2;
+ optional int32 state = 3;
+}
+message TrustyIpcConnectEndFtraceEvent {
+ optional uint32 chan = 1;
+ optional int32 err = 2;
+ optional int32 state = 3;
+}
+message TrustyIpcWriteFtraceEvent {
+ optional uint64 buf_id = 1;
+ optional uint32 chan = 2;
+ optional int32 kind_shm = 3;
+ optional int32 len_or_err = 4;
+ optional uint64 shm_cnt = 5;
+ optional string srv_name = 6;
+}
+message TrustyIpcPollFtraceEvent {
+ optional uint32 chan = 1;
+ optional uint32 poll_mask = 2;
+ optional string srv_name = 3;
+}
+message TrustyIpcPollEndFtraceEvent {}
+message TrustyIpcReadFtraceEvent {
+ optional uint32 chan = 1;
+ optional string srv_name = 2;
+}
+message TrustyIpcReadEndFtraceEvent {
+ optional uint64 buf_id = 1;
+ optional uint32 chan = 2;
+ optional int32 len_or_err = 3;
+ optional uint64 shm_cnt = 4;
+ optional string srv_name = 5;
+}
+message TrustyIpcRxFtraceEvent {
+ optional uint64 buf_id = 1;
+ optional uint32 chan = 2;
+ optional string srv_name = 3;
+}
+message TrustyIpcTxFtraceEvent {}
+message TrustyEnqueueNopFtraceEvent {
+ optional uint32 arg1 = 1;
+ optional uint32 arg2 = 2;
+ optional uint32 arg3 = 3;
+}
+
+// End of protos/perfetto/trace/ftrace/trusty.proto
+
// Begin of protos/perfetto/trace/ftrace/ufs.proto
message UfshcdCommandFtraceEvent {
@@ -7646,6 +7742,26 @@
442;
MmShrinkSlabStartFtraceEvent mm_shrink_slab_start = 443;
MmShrinkSlabEndFtraceEvent mm_shrink_slab_end = 444;
+ TrustySmcFtraceEvent trusty_smc = 445;
+ TrustySmcDoneFtraceEvent trusty_smc_done = 446;
+ TrustyStdCall32FtraceEvent trusty_std_call32 = 447;
+ TrustyStdCall32DoneFtraceEvent trusty_std_call32_done = 448;
+ TrustyShareMemoryFtraceEvent trusty_share_memory = 449;
+ TrustyShareMemoryDoneFtraceEvent trusty_share_memory_done = 450;
+ TrustyReclaimMemoryFtraceEvent trusty_reclaim_memory = 451;
+ TrustyReclaimMemoryDoneFtraceEvent trusty_reclaim_memory_done = 452;
+ TrustyIrqFtraceEvent trusty_irq = 453;
+ TrustyIpcHandleEventFtraceEvent trusty_ipc_handle_event = 454;
+ TrustyIpcConnectFtraceEvent trusty_ipc_connect = 455;
+ TrustyIpcConnectEndFtraceEvent trusty_ipc_connect_end = 456;
+ TrustyIpcWriteFtraceEvent trusty_ipc_write = 457;
+ TrustyIpcPollFtraceEvent trusty_ipc_poll = 458;
+ TrustyIpcPollEndFtraceEvent trusty_ipc_poll_end = 459;
+ TrustyIpcReadFtraceEvent trusty_ipc_read = 460;
+ TrustyIpcReadEndFtraceEvent trusty_ipc_read_end = 461;
+ TrustyIpcRxFtraceEvent trusty_ipc_rx = 462;
+ TrustyIpcTxFtraceEvent trusty_ipc_tx = 463;
+ TrustyEnqueueNopFtraceEvent trusty_enqueue_nop = 464;
}
}
diff --git a/src/tools/ftrace_proto_gen/event_list b/src/tools/ftrace_proto_gen/event_list
index 2c33ba0..0e72acb 100644
--- a/src/tools/ftrace_proto_gen/event_list
+++ b/src/tools/ftrace_proto_gen/event_list
@@ -438,4 +438,24 @@
virtio_video/virtio_video_resource_queue
virtio_video/virtio_video_resource_queue_done
vmscan/mm_shrink_slab_start
-vmscan/mm_shrink_slab_end
\ No newline at end of file
+vmscan/mm_shrink_slab_end
+trusty/trusty_smc
+trusty/trusty_smc_done
+trusty/trusty_std_call32
+trusty/trusty_std_call32_done
+trusty/trusty_share_memory
+trusty/trusty_share_memory_done
+trusty/trusty_reclaim_memory
+trusty/trusty_reclaim_memory_done
+trusty/trusty_irq
+trusty/trusty_ipc_handle_event
+trusty/trusty_ipc_connect
+trusty/trusty_ipc_connect_end
+trusty/trusty_ipc_write
+trusty/trusty_ipc_poll
+trusty/trusty_ipc_poll_end
+trusty/trusty_ipc_read
+trusty/trusty_ipc_read_end
+trusty/trusty_ipc_rx
+trusty/trusty_ipc_tx
+trusty/trusty_enqueue_nop
diff --git a/src/trace_processor/importers/ftrace/ftrace_parser.cc b/src/trace_processor/importers/ftrace/ftrace_parser.cc
index 5e511b2..691f170 100644
--- a/src/trace_processor/importers/ftrace/ftrace_parser.cc
+++ b/src/trace_processor/importers/ftrace/ftrace_parser.cc
@@ -17,6 +17,7 @@
#include "src/trace_processor/importers/ftrace/ftrace_parser.h"
#include "perfetto/base/logging.h"
+#include "perfetto/ext/base/string_writer.h"
#include "perfetto/protozero/proto_decoder.h"
#include "src/trace_processor/importers/common/args_tracker.h"
#include "src/trace_processor/importers/common/process_tracker.h"
@@ -69,6 +70,7 @@
#include "protos/perfetto/trace/ftrace/task.pbzero.h"
#include "protos/perfetto/trace/ftrace/tcp.pbzero.h"
#include "protos/perfetto/trace/ftrace/thermal.pbzero.h"
+#include "protos/perfetto/trace/ftrace/trusty.pbzero.h"
#include "protos/perfetto/trace/ftrace/ufs.pbzero.h"
#include "protos/perfetto/trace/ftrace/vmscan.pbzero.h"
#include "protos/perfetto/trace/ftrace/workqueue.pbzero.h"
@@ -280,7 +282,11 @@
shrink_name_id_(context->storage->InternString("shrink_name")),
shrink_total_scan_id_(context->storage->InternString("total_scan")),
shrink_freed_id_(context->storage->InternString("freed")),
- shrink_priority_id_(context->storage->InternString("priority")) {
+ shrink_priority_id_(context->storage->InternString("priority")),
+ trusty_category_id_(context_->storage->InternString("tipc")),
+ trusty_name_trusty_std_id_(context_->storage->InternString("trusty_std")),
+ trusty_name_tipc_tx_id_(context_->storage->InternString("tipc_tx")),
+ trusty_name_tipc_rx_id_(context_->storage->InternString("tipc_rx")) {
// Build the lookup table for the strings inside ftrace events (e.g. the
// name of ftrace event fields and the names of their args).
for (size_t i = 0; i < GetDescriptorsSize(); i++) {
@@ -867,6 +873,86 @@
fld.id(), ts, fld_bytes);
break;
}
+ case FtraceEvent::kTrustySmcFieldNumber: {
+ ParseTrustySmc(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustySmcDoneFieldNumber: {
+ ParseTrustySmcDone(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyStdCall32FieldNumber: {
+ ParseTrustyStdCall32(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyStdCall32DoneFieldNumber: {
+ ParseTrustyStdCall32Done(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyShareMemoryFieldNumber: {
+ ParseTrustyShareMemory(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyShareMemoryDoneFieldNumber: {
+ ParseTrustyShareMemoryDone(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyReclaimMemoryFieldNumber: {
+ ParseTrustyReclaimMemory(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyReclaimMemoryDoneFieldNumber: {
+ ParseTrustyReclaimMemoryDone(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIrqFieldNumber: {
+ ParseTrustyIrq(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIpcHandleEventFieldNumber: {
+ ParseTrustyIpcHandleEvent(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIpcConnectFieldNumber: {
+ ParseTrustyIpcConnect(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIpcConnectEndFieldNumber: {
+ ParseTrustyIpcConnectEnd(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIpcWriteFieldNumber: {
+ ParseTrustyIpcWrite(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIpcReadFieldNumber: {
+ ParseTrustyIpcRead(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIpcReadEndFieldNumber: {
+ ParseTrustyIpcReadEnd(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIpcPollFieldNumber: {
+ ParseTrustyIpcPoll(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIpcPollEndFieldNumber: {
+ ParseTrustyIpcPollEnd(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIpcTxFieldNumber: {
+ ParseTrustyIpcTx(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyIpcRxFieldNumber: {
+ ParseTrustyIpcRx(pid, ts, fld_bytes);
+ break;
+ }
+ case FtraceEvent::kTrustyEnqueueNopFieldNumber: {
+ ParseTrustyEnqueueNop(pid, ts, fld_bytes);
+ break;
+ }
default:
break;
}
@@ -2236,6 +2322,337 @@
static_cast<double>(clk_state), track);
}
+void FtraceParser::ParseTrustySmc(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustySmcFtraceEvent::Decoder evt(blob.data, blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ base::StackString<48> name("trusty_smc:r0= %" PRIu64, evt.r0());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+
+ context_->slice_tracker->Begin(timestamp, track, trusty_category_id_,
+ name_generic);
+}
+
+void FtraceParser::ParseTrustySmcDone(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustySmcDoneFtraceEvent::Decoder evt(blob.data, blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ context_->slice_tracker->End(timestamp, track, trusty_category_id_);
+ base::StackString<256> name("trusty_smc_done:r0= %" PRIu64, evt.ret());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+}
+
+void FtraceParser::ParseTrustyStdCall32(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyStdCall32FtraceEvent::Decoder evt(blob.data, blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ context_->slice_tracker->Begin(timestamp, track, trusty_category_id_,
+ trusty_name_trusty_std_id_);
+}
+
+void FtraceParser::ParseTrustyStdCall32Done(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyStdCall32DoneFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ context_->slice_tracker->End(timestamp, track, trusty_category_id_);
+ if (evt.ret() < 0) {
+ base::StackString<256> name("trusty_err_std: err= %" PRIi64, evt.ret());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+ }
+}
+
+void FtraceParser::ParseTrustyShareMemory(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyShareMemoryFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ base::StackString<256> name(
+ "trusty_share_mem: len= %" PRIu64 " nents= %" PRIu32 " lend= %" PRIu32,
+ static_cast<uint64_t>(evt.len()), evt.nents(), evt.lend());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+
+ context_->slice_tracker->Begin(timestamp, track, trusty_category_id_,
+ name_generic);
+}
+
+void FtraceParser::ParseTrustyShareMemoryDone(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyShareMemoryDoneFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+ context_->slice_tracker->End(timestamp, track, trusty_category_id_);
+
+ base::StackString<256> name("trusty_share_mem: handle= %" PRIu64
+ " ret= %" PRIi32,
+ evt.handle(), evt.ret());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+}
+
+void FtraceParser::ParseTrustyReclaimMemory(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyReclaimMemoryFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ base::StackString<256> name("trusty_reclaim_mem: id=%" PRIu64, evt.id());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+
+ context_->slice_tracker->Begin(timestamp, track, trusty_category_id_,
+ name_generic);
+}
+
+void FtraceParser::ParseTrustyReclaimMemoryDone(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyReclaimMemoryDoneFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+ context_->slice_tracker->End(timestamp, track, trusty_category_id_);
+
+ if (evt.ret() < 0) {
+ base::StackString<256> name("trusty_reclaim_mem_err: err= %" PRIi32,
+ evt.ret());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+ }
+}
+
+void FtraceParser::ParseTrustyIrq(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIrqFtraceEvent::Decoder evt(blob.data, blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ base::StackString<256> name("trusty_irq: irq= %" PRIi32, evt.irq());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+}
+
+void FtraceParser::ParseTrustyIpcHandleEvent(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIpcHandleEventFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ base::StackString<256> name(
+ "trusty_ipc_handle_event: chan=%" PRIu32 " srv_name=%s event=%" PRIu32,
+ evt.chan(), evt.srv_name().ToStdString().c_str(), evt.event_id());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+}
+
+void FtraceParser::ParseTrustyEnqueueNop(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyEnqueueNopFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ base::StackString<256> name("trusty_enqueue_nop: arg1= %" PRIu32
+ " arg2= %" PRIu32 " arg3=%" PRIu32,
+ evt.arg1(), evt.arg2(), evt.arg3());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+}
+
+void FtraceParser::ParseTrustyIpcConnect(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIpcConnectFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ base::StackString<256> name("tipc_connect: %s",
+ evt.port().ToStdString().c_str());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+
+ context_->slice_tracker->Begin(timestamp, track, trusty_category_id_,
+ name_generic);
+}
+
+void FtraceParser::ParseTrustyIpcConnectEnd(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIpcConnectEndFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ context_->slice_tracker->End(timestamp, track, trusty_category_id_);
+ if (evt.err()) {
+ base::StackString<256> name("tipc_err_connect:err= %" PRIi32, evt.err());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+ }
+}
+
+void FtraceParser::ParseTrustyIpcWrite(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIpcWriteFtraceEvent::Decoder evt(blob.data, blob.size);
+
+ StringId name_generic = kNullStringId;
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ if (evt.shm_cnt() > 0) {
+ base::StackString<256> name("tipc_write: %s shm_cnt:[%" PRIu64 "]",
+ evt.srv_name().ToStdString().c_str(),
+ evt.shm_cnt());
+ name_generic = context_->storage->InternString(name.string_view());
+ } else {
+ base::StackString<256> name("tipc_write: %s",
+ evt.srv_name().ToStdString().c_str());
+ name_generic = context_->storage->InternString(name.string_view());
+ }
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+
+ if (evt.len_or_err() < 0) {
+ base::StackString<256> name("tipc_err_write:len_or_err= %" PRIi32,
+ evt.len_or_err());
+ name_generic = context_->storage->InternString(name.string_view());
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+ }
+}
+
+void FtraceParser::ParseTrustyIpcRead(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIpcReadFtraceEvent::Decoder evt(blob.data, blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ base::StackString<256> name("tipc_read: %s",
+ evt.srv_name().ToStdString().c_str());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+ context_->slice_tracker->Begin(timestamp, track, trusty_category_id_,
+ name_generic);
+}
+
+void FtraceParser::ParseTrustyIpcReadEnd(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIpcReadEndFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+ context_->slice_tracker->End(timestamp, track, trusty_category_id_);
+
+ if (evt.len_or_err() <= 0) {
+ base::StackString<256> name("tipc_err_read:len_or_err= %" PRIi32,
+ evt.len_or_err());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+ context_->slice_tracker->Scoped(timestamp, track, trusty_category_id_,
+ name_generic, 0);
+ }
+}
+
+void FtraceParser::ParseTrustyIpcPoll(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIpcPollFtraceEvent::Decoder evt(blob.data, blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ base::StackString<256> name("tipc_poll: %s",
+ evt.srv_name().ToStdString().c_str());
+ StringId name_generic = context_->storage->InternString(name.string_view());
+ context_->slice_tracker->Begin(timestamp, track, trusty_category_id_,
+ name_generic);
+}
+
+void FtraceParser::ParseTrustyIpcPollEnd(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIpcPollEndFtraceEvent::Decoder evt(blob.data,
+ blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+ context_->slice_tracker->End(timestamp, track, trusty_category_id_);
+}
+
+void FtraceParser::ParseTrustyIpcTx(uint32_t pid,
+ int64_t ts,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIpcTxFtraceEvent::Decoder evt(blob.data, blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ context_->slice_tracker->Scoped(ts, track, trusty_category_id_,
+ trusty_name_tipc_tx_id_, 0);
+}
+
+void FtraceParser::ParseTrustyIpcRx(uint32_t pid,
+ int64_t ts,
+ protozero::ConstBytes blob) {
+ protos::pbzero::TrustyIpcRxFtraceEvent::Decoder evt(blob.data, blob.size);
+
+ UniqueTid utid = context_->process_tracker->GetOrCreateThread(pid);
+ TrackId track = context_->track_tracker->InternThreadTrack(utid);
+
+ context_->slice_tracker->Scoped(ts, track, trusty_category_id_,
+ trusty_name_tipc_rx_id_, 0);
+}
+
void FtraceParser::ParseUfshcdCommand(int64_t timestamp,
protozero::ConstBytes blob) {
protos::pbzero::UfshcdCommandFtraceEvent::Decoder evt(blob.data, blob.size);
diff --git a/src/trace_processor/importers/ftrace/ftrace_parser.h b/src/trace_processor/importers/ftrace/ftrace_parser.h
index 242fbf7..65a66d1 100644
--- a/src/trace_processor/importers/ftrace/ftrace_parser.h
+++ b/src/trace_processor/importers/ftrace/ftrace_parser.h
@@ -197,6 +197,7 @@
void ParseUfshcdClkGating(int64_t timestamp, protozero::ConstBytes);
void ParseCrosEcSensorhubData(int64_t timestamp, protozero::ConstBytes);
+
void ParseWakeSourceActivate(int64_t timestamp, protozero::ConstBytes);
void ParseWakeSourceDeactivate(int64_t timestamp, protozero::ConstBytes);
void ParseSuspendResume(int64_t timestamp, protozero::ConstBytes);
@@ -215,6 +216,43 @@
StringId InternedKernelSymbolOrFallback(
uint64_t key,
PacketSequenceStateGeneration* seq_state);
+ void ParseTrustySmc(uint32_t pid, int64_t timestamp, protozero::ConstBytes);
+ void ParseTrustySmcDone(uint32_t pid,
+ int64_t timestamp,
+ protozero::ConstBytes);
+ void ParseTrustyStdCall32(uint32_t pid,
+ int64_t ts,
+ protozero::ConstBytes data);
+ void ParseTrustyStdCall32Done(uint32_t pid,
+ int64_t ts,
+ protozero::ConstBytes data);
+ void ParseTrustyShareMemory(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyShareMemoryDone(uint32_t pid,
+ int64_t ts,
+ protozero::ConstBytes);
+ void ParseTrustyReclaimMemory(uint32_t pid,
+ int64_t ts,
+ protozero::ConstBytes);
+ void ParseTrustyReclaimMemoryDone(uint32_t pid,
+ int64_t ts,
+ protozero::ConstBytes);
+ void ParseTrustyIrq(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyIpcHandleEvent(uint32_t pid,
+ int64_t ts,
+ protozero::ConstBytes);
+ void ParseTrustyIpcConnect(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyIpcConnectEnd(uint32_t pid,
+ int64_t ts,
+ protozero::ConstBytes);
+ void ParseTrustyIpcWrite(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyIpcWriteEnd(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyIpcRead(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyIpcReadEnd(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyIpcPoll(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyIpcPollEnd(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyIpcTx(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyIpcRx(uint32_t pid, int64_t ts, protozero::ConstBytes);
+ void ParseTrustyEnqueueNop(uint32_t pid, int64_t ts, protozero::ConstBytes);
TraceProcessorContext* context_;
RssStatTracker rss_stat_tracker_;
@@ -275,6 +313,10 @@
const StringId shrink_total_scan_id_;
const StringId shrink_freed_id_;
const StringId shrink_priority_id_;
+ const StringId trusty_category_id_;
+ const StringId trusty_name_trusty_std_id_;
+ const StringId trusty_name_tipc_tx_id_;
+ const StringId trusty_name_tipc_rx_id_;
struct FtraceMessageStrings {
// The string id of name of the event field (e.g. sched_switch's id).
diff --git a/src/traced/probes/ftrace/event_info.cc b/src/traced/probes/ftrace/event_info.cc
index 7d66fa6..0c14376 100644
--- a/src/traced/probes/ftrace/event_info.cc
+++ b/src/traced/probes/ftrace/event_info.cc
@@ -8058,6 +8058,293 @@
kUnsetFtraceId,
342,
kUnsetSize},
+ {"trusty_smc",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "r0", 1, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "r1", 2, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "r2", 3, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "r3", 4, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 445,
+ kUnsetSize},
+ {"trusty_smc_done",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "ret", 1, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 446,
+ kUnsetSize},
+ {"trusty_std_call32",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "r0", 1, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "r1", 2, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "r2", 3, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "r3", 4, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 447,
+ kUnsetSize},
+ {"trusty_std_call32_done",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "ret", 1, ProtoSchemaType::kInt64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 448,
+ kUnsetSize},
+ {"trusty_share_memory",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "len", 1, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "lend", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "nents", 3, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 449,
+ kUnsetSize},
+ {"trusty_share_memory_done",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "handle", 1, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "len", 2, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "lend", 3, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "nents", 4, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "ret", 5, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 450,
+ kUnsetSize},
+ {"trusty_reclaim_memory",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "id", 1, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 451,
+ kUnsetSize},
+ {"trusty_reclaim_memory_done",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "id", 1, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "ret", 2, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 452,
+ kUnsetSize},
+ {"trusty_irq",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "irq", 1, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 453,
+ kUnsetSize},
+ {"trusty_ipc_handle_event",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "chan", 1, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "event_id", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "srv_name", 3, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 454,
+ kUnsetSize},
+ {"trusty_ipc_connect",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "chan", 1, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "port", 2, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "state", 3, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 455,
+ kUnsetSize},
+ {"trusty_ipc_connect_end",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "chan", 1, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "err", 2, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "state", 3, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 456,
+ kUnsetSize},
+ {"trusty_ipc_write",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "buf_id", 1, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "chan", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "kind_shm", 3, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "len_or_err", 4, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "shm_cnt", 5, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "srv_name", 6, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 457,
+ kUnsetSize},
+ {"trusty_ipc_poll",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "chan", 1, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "poll_mask", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "srv_name", 3, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 458,
+ kUnsetSize},
+ {"trusty_ipc_poll_end", "trusty", {}, kUnsetFtraceId, 459, kUnsetSize},
+ {"trusty_ipc_read",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "chan", 1, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "srv_name", 2, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 460,
+ kUnsetSize},
+ {"trusty_ipc_read_end",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "buf_id", 1, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "chan", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "len_or_err", 3, ProtoSchemaType::kInt32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "shm_cnt", 4, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "srv_name", 5, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 461,
+ kUnsetSize},
+ {"trusty_ipc_rx",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "buf_id", 1, ProtoSchemaType::kUint64,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "chan", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "srv_name", 3, ProtoSchemaType::kString,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 462,
+ kUnsetSize},
+ {"trusty_ipc_tx", "trusty", {}, kUnsetFtraceId, 463, kUnsetSize},
+ {"trusty_enqueue_nop",
+ "trusty",
+ {
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "arg1", 1, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "arg2", 2, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ {kUnsetOffset, kUnsetSize, FtraceFieldType::kInvalidFtraceFieldType,
+ "arg3", 3, ProtoSchemaType::kUint32,
+ TranslationStrategy::kInvalidTranslationStrategy},
+ },
+ kUnsetFtraceId,
+ 464,
+ kUnsetSize},
{"ufshcd_command",
"ufs",
{
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/format
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/format
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_enqueue_nop/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_enqueue_nop/format
new file mode 100644
index 0000000..a9dd874
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_enqueue_nop/format
@@ -0,0 +1,13 @@
+name: trusty_enqueue_nop
+ID: 844
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:u32 arg1; offset:8; size:4; signed:0;
+ field:u32 arg2; offset:12; size:4; signed:0;
+ field:u32 arg3; offset:16; size:4; signed:0;
+
+print fmt: "arg1=0x%x, arg2=0x%x, arg3=0x%x", REC->arg1, REC->arg2, REC->arg3
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_connect/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_connect/format
new file mode 100644
index 0000000..6305bb5
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_connect/format
@@ -0,0 +1,13 @@
+name: trusty_ipc_connect
+ID: 848
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:u32 chan; offset:8; size:4; signed:0;
+ field:__data_loc char[] port; offset:12; size:4; signed:0;
+ field:int state; offset:16; size:4; signed:1;
+
+print fmt: "chan=%u port=%s state=%d", REC->chan, __get_str(port), REC->state
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_connect_end/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_connect_end/format
new file mode 100644
index 0000000..abd2217
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_connect_end/format
@@ -0,0 +1,13 @@
+name: trusty_ipc_connect_end
+ID: 849
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:u32 chan; offset:8; size:4; signed:0;
+ field:int err; offset:12; size:4; signed:1;
+ field:int state; offset:16; size:4; signed:1;
+
+print fmt: "chan=%u err=%d state=%d", REC->chan, REC->err, REC->state
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_handle_event/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_handle_event/format
new file mode 100644
index 0000000..9c1d164
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_handle_event/format
@@ -0,0 +1,13 @@
+name: trusty_ipc_handle_event
+ID: 850
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:u32 chan; offset:8; size:4; signed:0;
+ field:char srv_name[256]; offset:12; size:256; signed:0;
+ field:u32 event_id; offset:268; size:4; signed:0;
+
+print fmt: "chan=%u srv_name=%s event=%s", REC->chan, REC->srv_name, __print_symbolic(REC->event_id, { 1, "CONNECTED" }, { 2, "DISCONNECTED" }, { 3, "SHUTDOWN" })
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_poll/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_poll/format
new file mode 100644
index 0000000..0034ae3
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_poll/format
@@ -0,0 +1,13 @@
+name: trusty_ipc_poll
+ID: 854
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:unsigned int poll_mask; offset:8; size:4; signed:0;
+ field:u32 chan; offset:12; size:4; signed:0;
+ field:char srv_name[256]; offset:16; size:256; signed:0;
+
+print fmt: "poll_mask=%u chan=%u srv_name=%s", REC->poll_mask, REC->chan, REC->srv_name
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_read/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_read/format
new file mode 100644
index 0000000..a3b41c5
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_read/format
@@ -0,0 +1,12 @@
+name: trusty_ipc_read
+ID: 852
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:u32 chan; offset:8; size:4; signed:0;
+ field:char srv_name[256]; offset:12; size:256; signed:0;
+
+print fmt: "chan=%u srv_name=%s", REC->chan, REC->srv_name
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_read_end/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_read_end/format
new file mode 100644
index 0000000..89b3707
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_read_end/format
@@ -0,0 +1,15 @@
+name: trusty_ipc_read_end
+ID: 853
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:int len_or_err; offset:8; size:4; signed:1;
+ field:u32 chan; offset:12; size:4; signed:0;
+ field:char srv_name[256]; offset:16; size:256; signed:0;
+ field:u64 buf_id; offset:272; size:8; signed:0;
+ field:size_t shm_cnt; offset:280; size:8; signed:0;
+
+print fmt: "len_or_err=%d chan=%u srv_name=%s buf_id=0x%llx shm_cnt=%zu", REC->len_or_err, REC->chan, REC->srv_name, REC->buf_id, REC->shm_cnt
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_rx/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_rx/format
new file mode 100644
index 0000000..8081d2f
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_rx/format
@@ -0,0 +1,13 @@
+name: trusty_ipc_rx
+ID: 855
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:u32 chan; offset:8; size:4; signed:0;
+ field:char srv_name[256]; offset:12; size:256; signed:0;
+ field:u64 buf_id; offset:272; size:8; signed:0;
+
+print fmt: "chan=%u srv_name=%s buf_id=0x%llx", REC->chan, REC->srv_name, REC->buf_id
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_write/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_write/format
new file mode 100644
index 0000000..c2082d1
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_ipc_write/format
@@ -0,0 +1,16 @@
+name: trusty_ipc_write
+ID: 851
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:int len_or_err; offset:8; size:4; signed:1;
+ field:u32 chan; offset:12; size:4; signed:0;
+ field:char srv_name[256]; offset:16; size:256; signed:0;
+ field:u64 buf_id; offset:272; size:8; signed:0;
+ field:size_t shm_cnt; offset:280; size:8; signed:0;
+ field:__data_loc int[] kind_shm; offset:288; size:4; signed:1;
+
+print fmt: "len_or_err=%d chan=%u srv_name=%s buf_id=0x%llx shm_cnt=%zu kind_shm=%s", REC->len_or_err, REC->chan, REC->srv_name, REC->buf_id, REC->shm_cnt, __print_array(__get_dynamic_array(kind_shm), __get_dynamic_array_len(kind_shm) / sizeof(int), sizeof(int))
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_irq/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_irq/format
new file mode 100644
index 0000000..d9b5950
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_irq/format
@@ -0,0 +1,11 @@
+name: trusty_irq
+ID: 847
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:int irq; offset:8; size:4; signed:1;
+
+print fmt: "irq=%d", REC->irq
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_reclaim_memory/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_reclaim_memory/format
new file mode 100644
index 0000000..06247f2
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_reclaim_memory/format
@@ -0,0 +1,11 @@
+name: trusty_reclaim_memory
+ID: 845
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:u64 id; offset:8; size:8; signed:0;
+
+print fmt: "id=%llu", REC->id
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_reclaim_memory_done/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_reclaim_memory_done/format
new file mode 100644
index 0000000..149c79f
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_reclaim_memory_done/format
@@ -0,0 +1,12 @@
+name: trusty_reclaim_memory_done
+ID: 846
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:u64 id; offset:8; size:8; signed:0;
+ field:int ret; offset:16; size:4; signed:1;
+
+print fmt: "id=%llu ret=%d (0x%x)", REC->id, REC->ret, REC->ret
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_share_memory/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_share_memory/format
new file mode 100644
index 0000000..2e1c233
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_share_memory/format
@@ -0,0 +1,13 @@
+name: trusty_share_memory
+ID: 842
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:size_t len; offset:8; size:8; signed:0;
+ field:unsigned int nents; offset:16; size:4; signed:0;
+ field:bool lend; offset:20; size:1; signed:0;
+
+print fmt: "len=%zu, nents=%u, lend=%u", REC->len, REC->nents, REC->lend
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_share_memory_done/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_share_memory_done/format
new file mode 100644
index 0000000..3ed0469
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_share_memory_done/format
@@ -0,0 +1,15 @@
+name: trusty_share_memory_done
+ID: 843
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:size_t len; offset:8; size:8; signed:0;
+ field:unsigned int nents; offset:16; size:4; signed:0;
+ field:bool lend; offset:20; size:1; signed:0;
+ field:u64 handle; offset:24; size:8; signed:0;
+ field:int ret; offset:32; size:4; signed:1;
+
+print fmt: "len=%zu, nents=%u, lend=%u, ffa_handle=0x%llx, ret=%d", REC->len, REC->nents, REC->lend, REC->handle, REC->ret
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_smc/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_smc/format
new file mode 100644
index 0000000..4f6bf88
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_smc/format
@@ -0,0 +1,14 @@
+name: trusty_smc
+ID: 839
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:unsigned long r0; offset:8; size:8; signed:0;
+ field:unsigned long r1; offset:16; size:8; signed:0;
+ field:unsigned long r2; offset:24; size:8; signed:0;
+ field:unsigned long r3; offset:32; size:8; signed:0;
+
+print fmt: "smcnr=%s r0=0x%lx r1=0x%lx r2=0x%lx r3=0x%lx", __print_symbolic(REC->r0, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((0)) & 0xFFFFU) ), "SC_RESTART_LAST" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((1)) & 0xFFFFU) ), "SC_LOCKED_NOP" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((2)) & 0xFFFFU) ), "SC_RESTART_FIQ" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((3)) & 0xFFFFU) ), "SC_NOP" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((0)) & 0xFFFFU) ), "FC_RESERVED" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((1)) & 0xFFFFU) ), "FC_FIQ_EXIT" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((2)) & 0xFFFFU) ), "FC_REQUEST_FIQ" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((3)) & 0xFFFFU) ), "FC_GET_NEXT_IRQ" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((7)) & 0xFFFFU) ), "FC_CPU_SUSPEND" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((8)) & 0xFFFFU) ), "FC_CPU_RESUME" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((9)) & 0xFFFFU) ), "FC_AARCH_SWITCH" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((10)) & 0xFFFFU) ), "FC_GET_VERSION_STR" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((11)) & 0xFFFFU) ), "FC_API_VERSION" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((20)) & 0xFFFFU) ), "SC_VIRTIO_GET_DESCR" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((21)) & 0xFFFFU) ), "SC_VIRTIO_START" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((22)) & 0xFFFFU) ), "SC_VIRTIO_STOP" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((23)) & 0xFFFFU) ), "SC_VDEV_RESET" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((24)) & 0xFFFFU) ), "SC_VDEV_KICK_VQ" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((25)) & 0xFFFFU) ), "NC_VDEV_KICK_VQ" }), REC->r0, REC->r1, REC->r2, REC->r3
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_smc_done/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_smc_done/format
new file mode 100644
index 0000000..026d17f
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_smc_done/format
@@ -0,0 +1,11 @@
+name: trusty_smc_done
+ID: 841
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:unsigned long ret; offset:8; size:8; signed:0;
+
+print fmt: "ret=%d (0x%x)", REC->ret, REC->ret
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_std_call32/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_std_call32/format
new file mode 100644
index 0000000..03b5932
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_std_call32/format
@@ -0,0 +1,14 @@
+name: trusty_std_call32
+ID: 838
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:unsigned long r0; offset:8; size:8; signed:0;
+ field:unsigned long r1; offset:16; size:8; signed:0;
+ field:unsigned long r2; offset:24; size:8; signed:0;
+ field:unsigned long r3; offset:32; size:8; signed:0;
+
+print fmt: "smcnr=%s r0=0x%lx r1=0x%lx r2=0x%lx r3=0x%lx", __print_symbolic(REC->r0, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((0)) & 0xFFFFU) ), "SC_RESTART_LAST" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((1)) & 0xFFFFU) ), "SC_LOCKED_NOP" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((2)) & 0xFFFFU) ), "SC_RESTART_FIQ" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((3)) & 0xFFFFU) ), "SC_NOP" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((0)) & 0xFFFFU) ), "FC_RESERVED" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((1)) & 0xFFFFU) ), "FC_FIQ_EXIT" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((2)) & 0xFFFFU) ), "FC_REQUEST_FIQ" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((3)) & 0xFFFFU) ), "FC_GET_NEXT_IRQ" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((7)) & 0xFFFFU) ), "FC_CPU_SUSPEND" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((8)) & 0xFFFFU) ), "FC_CPU_RESUME" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((9)) & 0xFFFFU) ), "FC_AARCH_SWITCH" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((10)) & 0xFFFFU) ), "FC_GET_VERSION_STR" }, { ((((1) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((60)) & 0x3FU) << 24) | (((11)) & 0xFFFFU) ), "FC_API_VERSION" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((20)) & 0xFFFFU) ), "SC_VIRTIO_GET_DESCR" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((21)) & 0xFFFFU) ), "SC_VIRTIO_START" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((22)) & 0xFFFFU) ), "SC_VIRTIO_STOP" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((23)) & 0xFFFFU) ), "SC_VDEV_RESET" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((24)) & 0xFFFFU) ), "SC_VDEV_KICK_VQ" }, { ((((0) & 0x1U) << 31) | (((0) & 0x1U) << 30) | ((((50)) & 0x3FU) << 24) | (((25)) & 0xFFFFU) ), "NC_VDEV_KICK_VQ" }), REC->r0, REC->r1, REC->r2, REC->r3
diff --git a/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_std_call32_done/format b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_std_call32_done/format
new file mode 100644
index 0000000..866da41
--- /dev/null
+++ b/src/traced/probes/ftrace/test/data/synthetic/events/trusty/trusty_std_call32_done/format
@@ -0,0 +1,11 @@
+name: trusty_std_call32_done
+ID: 840
+format:
+ field:unsigned short common_type; offset:0; size:2; signed:0;
+ field:unsigned char common_flags; offset:2; size:1; signed:0;
+ field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
+ field:int common_pid; offset:4; size:4; signed:1;
+
+ field:long ret; offset:8; size:8; signed:1;
+
+print fmt: "ret=%d (0x%x)", REC->ret, REC->ret