forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/tools/perf/util/cs-etm-decoder/cs-etm-decoder.h
....@@ -14,34 +14,19 @@
1414 #include <stdio.h>
1515
1616 struct cs_etm_decoder;
17
-
18
-struct cs_etm_buffer {
19
- const unsigned char *buf;
20
- size_t len;
21
- u64 offset;
22
- u64 ref_timestamp;
23
-};
24
-
25
-enum cs_etm_sample_type {
26
- CS_ETM_EMPTY = 0,
27
- CS_ETM_RANGE = 1 << 0,
28
- CS_ETM_TRACE_ON = 1 << 1,
29
-};
30
-
31
-struct cs_etm_packet {
32
- enum cs_etm_sample_type sample_type;
33
- u64 start_addr;
34
- u64 end_addr;
35
- u8 last_instr_taken_branch;
36
- u8 exc;
37
- u8 exc_ret;
38
- int cpu;
39
-};
17
+struct cs_etm_packet;
18
+struct cs_etm_packet_queue;
4019
4120 struct cs_etm_queue;
4221
43
-typedef u32 (*cs_etm_mem_cb_type)(struct cs_etm_queue *, u64,
44
- size_t, u8 *);
22
+typedef u32 (*cs_etm_mem_cb_type)(struct cs_etm_queue *, u8, u64, size_t, u8 *);
23
+
24
+struct cs_etmv3_trace_params {
25
+ u32 reg_ctrl;
26
+ u32 reg_trc_id;
27
+ u32 reg_ccer;
28
+ u32 reg_idr;
29
+};
4530
4631 struct cs_etmv4_trace_params {
4732 u32 reg_idr0;
....@@ -55,6 +40,7 @@
5540 struct cs_etm_trace_params {
5641 int protocol;
5742 union {
43
+ struct cs_etmv3_trace_params etmv3;
5844 struct cs_etmv4_trace_params etmv4;
5945 };
6046 };
....@@ -78,11 +64,13 @@
7864 CS_ETM_PROTO_ETMV3 = 1,
7965 CS_ETM_PROTO_ETMV4i,
8066 CS_ETM_PROTO_ETMV4d,
67
+ CS_ETM_PROTO_PTM,
8168 };
8269
83
-enum {
70
+enum cs_etm_decoder_operation {
8471 CS_ETM_OPERATION_PRINT = 1,
8572 CS_ETM_OPERATION_DECODE,
73
+ CS_ETM_OPERATION_MAX,
8674 };
8775
8876 int cs_etm_decoder__process_data_block(struct cs_etm_decoder *decoder,
....@@ -100,7 +88,7 @@
10088 u64 start, u64 end,
10189 cs_etm_mem_cb_type cb_func);
10290
103
-int cs_etm_decoder__get_packet(struct cs_etm_decoder *decoder,
91
+int cs_etm_decoder__get_packet(struct cs_etm_packet_queue *packet_queue,
10492 struct cs_etm_packet *packet);
10593
10694 int cs_etm_decoder__reset(struct cs_etm_decoder *decoder);