35 #ifndef ARM_OCSD_IF_TYPES_H_INCLUDED
36 #define ARM_OCSD_IF_TYPES_H_INCLUDED
40 #if defined(_MSC_VER) && (_MSC_VER < 1900)
42 #define __PRI64_PREFIX "ll"
43 #define PRIX64 __PRI64_PREFIX "X"
44 #define PRIu64 __PRI64_PREFIX "u"
63 #ifdef ENABLE_LARGE_TRACE_SOURCES
65 #define OCSD_TRC_IDX_STR PRIu64
68 #define OCSD_TRC_IDX_STR PRIu32
72 #define OCSD_BAD_TRC_INDEX ((ocsd_trc_index_t)-1)
74 #define OCSD_BAD_CS_SRC_ID ((uint8_t)-1)
76 #define OCSD_IS_VALID_CS_SRC_ID(id) ((id > 0) && (id < 0x70))
78 #define OCSD_IS_RESERVED_CS_SRC_ID(id) ((id == 0) || ((id >= 0x70) && (id <= 0x7F))
152 #define OCSD_INVALID_HANDLE (unsigned int)-1
205 #define OCSD_DATA_RESP_IS_FATAL(x) (x >= OCSD_RESP_FATAL_NOT_INIT)
207 #define OCSD_DATA_RESP_IS_WARN(x) ((x == OCSD_RESP_WARN_CONT) || (x == OCSD_RESP_WARN_WAIT))
209 #define OCSD_DATA_RESP_IS_ERR(x) ((x == OCSD_RESP_ERR_CONT) || (x == OCSD_RESP_ERR_WAIT))
211 #define OCSD_DATA_RESP_IS_WARN_OR_ERR(x) (OCSD_DATA_RESP_IS_ERR(x) || OCSD_DATA_RESP_IS_WARN(x))
213 #define OCSD_DATA_RESP_IS_CONT(x) (x < OCSD_RESP_WAIT)
215 #define OCSD_DATA_RESP_IS_WAIT(x) ((x >= OCSD_RESP_WAIT) && (x < OCSD_RESP_FATAL_NOT_INIT))
243 #define OCSD_DFRMTR_HAS_FSYNCS 0x01
244 #define OCSD_DFRMTR_HAS_HSYNCS 0x02
245 #define OCSD_DFRMTR_FRAME_MEM_ALIGN 0x04
246 #define OCSD_DFRMTR_PACKED_RAW_OUT 0x08
247 #define OCSD_DFRMTR_UNPACKED_RAW_OUT 0x10
248 #define OCSD_DFRMTR_RESET_ON_4X_FSYNC 0x20
249 #define OCSD_DFRMTR_VALID_MASK 0x3F
251 #define OCSD_DFRMTR_FRAME_SIZE 0x10
261 #define OCSD_CMPNAME_PREFIX_SOURCE_READER "SRDR"
263 #define OCSD_CMPNAME_PREFIX_FRAMEDEFORMATTER "DFMT"
265 #define OCSD_CMPNAME_PREFIX_PKTPROC "PKTP"
267 #define OCSD_CMPNAME_PREFIX_PKTDEC "PDEC"
286 #define OCSD_IS_V8_ARCH(arch) ((arch >= ARCH_V8) && (arch <= ARCH_V8_max))
287 #define OCSD_IS_ARCH_MINVER(arch, min_arch) (arch >= min_arch)
305 #ifdef USE_32BIT_V_ADDR
307 #define OCSD_MAX_VA_BITSIZE 32
308 #define OCSD_VA_MASK ~0UL
311 #define OCSD_MAX_VA_BITSIZE 64
312 #define OCSD_VA_MASK ~0ULL
316 #define OCSD_BIT_MASK(bits) (bits == OCSD_MAX_VA_BITSIZE) ? OCSD_VA_MASK : ((ocsd_vaddr_t)1 << bits) - 1
507 #define OCSD_OPFLG_PKTPROC_NOFWD_BAD_PKTS 0x00000010
508 #define OCSD_OPFLG_PKTPROC_NOMON_BAD_PKTS 0x00000020
509 #define OCSD_OPFLG_PKTPROC_ERR_BAD_PKTS 0x00000040
510 #define OCSD_OPFLG_PKTPROC_UNSYNC_ON_BAD_PKTS 0x00000080
513 #define OCSD_OPFLG_PKTPROC_COMMON (OCSD_OPFLG_PKTPROC_NOFWD_BAD_PKTS | \
514 OCSD_OPFLG_PKTPROC_NOMON_BAD_PKTS | \
515 OCSD_OPFLG_PKTPROC_ERR_BAD_PKTS | \
516 OCSD_OPFLG_PKTPROC_UNSYNC_ON_BAD_PKTS )
519 #define OCSD_OPFLG_COMP_MODE_MASK 0xFFFF0000
529 #define OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS 0x00000100
530 #define OCSD_OPFLG_PKTDEC_HALT_BAD_PKTS 0x00000200
533 #define OCSD_OPFLG_PKTDEC_COMMON (OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS | OCSD_OPFLG_PKTDEC_HALT_BAD_PKTS)
547 #define OCSD_CREATE_FLG_PACKET_PROC 0x01
548 #define OCSD_CREATE_FLG_FULL_DECODER 0x02
549 #define OCSD_CREATE_FLG_INST_ID 0x04
551 #define OCSD_BUILTIN_DCD_STM "STM"
552 #define OCSD_BUILTIN_DCD_ETMV3 "ETMV3"
553 #define OCSD_BUILTIN_DCD_ETMV4I "ETMV4I"
554 #define OCSD_BUILTIN_DCD_ETMV4D "ETMV4D"
555 #define OCSD_BUILTIN_DCD_PTM "PTM"
556 #define OCSD_BUILTIN_DCD_ETE "ETE"
590 #define OCSD_PROTOCOL_IS_BUILTIN(P) ((P > OCSD_PROTOCOL_UNKNOWN) && (P < OCSD_PROTOCOL_BUILTIN_END))
593 #define OCSD_PROTOCOL_IS_CUSTOM(P) ((P >= OCSD_PROTOCOL_CUSTOM_0) && (P < OCSD_PROTOCOL_END ))
634 #define SWT_ID_VALID_MASK (0x1 << 23)
683 #define OCSD_STATS_REVISION 0x1
enum _ocsd_dcd_tree_src_t ocsd_dcd_tree_src_t
enum _ocsd_sec_level ocsd_sec_level
struct _ocsd_swt_info ocsd_swt_info_t
enum _ocsd_instr_subtype ocsd_instr_subtype
struct _ocsd_file_mem_region ocsd_file_mem_region_t
enum _ocsd_core_profile ocsd_core_profile_t
enum _ocsd_instr_type ocsd_instr_type
uint32_t ocsd_trc_index_t
uint32_t(* Fn_MemAccID_CB)(const void *p_context, const ocsd_vaddr_t address, const ocsd_mem_space_acc_t mem_space, const uint8_t trcID, const uint32_t reqBytes, uint8_t *byteBuffer)
enum _ocsd_trace_protocol_t ocsd_trace_protocol_t
enum _ocsd_datapath_resp_t ocsd_datapath_resp_t
struct _ocsd_pe_context ocsd_pe_context
struct _ocsd_decode_stats ocsd_decode_stats_t
enum _ocsd_mem_space_acc_t ocsd_mem_space_acc_t
enum _ocsd_ex_level ocsd_ex_level
unsigned int ocsd_hndl_rdr_t
enum _rcdtl_rawframe_elem_t ocsd_rawframe_elem_t
uint32_t(* Fn_MemAcc_CB)(const void *p_context, const ocsd_vaddr_t address, const ocsd_mem_space_acc_t mem_space, const uint32_t reqBytes, uint8_t *byteBuffer)
struct _ocsd_arch_profile_t ocsd_arch_profile_t
enum _ocsd_arch_version ocsd_arch_version_t
struct _ocsd_demux_stats ocsd_demux_stats_t
enum _ocsd_datapath_op_t ocsd_datapath_op_t
unsigned int ocsd_hndl_err_log_t
enum _ocsd_err_severity_t ocsd_err_severity_t
struct _ocsd_instr_info ocsd_instr_info
enum _ocsd_err_t ocsd_err_t
@ OCSD_TRC_SRC_FRAME_FORMATTED
@ OCSD_ERR_TEST_SNAPSHOT_PARSE_INFO
@ OCSD_ERR_DCDT_NO_FORMATTER
@ OCSD_ERR_DATA_DECODE_FATAL
@ OCSD_ERR_DCDREG_TOOMANY
@ OCSD_ERR_RDR_NO_DECODER
@ OCSD_ERR_RDR_INVALID_INIT
@ OCSD_ERR_MEM_ACC_RANGE_INVALID
@ OCSD_ERR_DFMTR_NOTCONTTRACE
@ OCSD_ERR_MEM_ACC_FILE_DIFF_RANGE
@ OCSD_ERR_BAD_DECODE_PKT
@ OCSD_ERR_TEST_SNAPSHOT_READ
@ OCSD_ERR_DCD_INTERFACE_UNUSED
@ OCSD_ERR_DCDREG_TYPE_UNKNOWN
@ OCSD_ERR_ATTACH_TOO_MANY
@ OCSD_ERR_MEM_ACC_BAD_LEN
@ OCSD_ERR_UNSUPP_DECODE_PKT
@ OCSD_ERR_COMMIT_PKT_OVERRUN
@ OCSD_ERR_ATTACH_COMP_NOT_FOUND
@ OCSD_ERR_MEM_ACC_FILE_NOT_FOUND
@ OCSD_ERR_ATTACH_INVALID_PARAM
@ OCSD_ERR_UNSUPPORTED_ISA
@ OCSD_ERR_INVALID_PARAM_VAL
@ OCSD_ERR_BAD_PACKET_SEQ
@ OCSD_ERR_RDR_FILE_NOT_FOUND
@ OCSD_ERR_DFMTR_BAD_FHSYNC
@ OCSD_ERR_DCDREG_NAME_REPEAT
@ OCSD_ERR_INVALID_PARAM_TYPE
@ OCSD_ERR_MEM_ACC_OVERLAP
@ OCSD_ERR_INVALID_PCKT_HDR
@ OCSD_ERR_PKT_INTERP_FAIL
@ OCSD_ERR_RET_STACK_OVERFLOW
@ OCSD_ERR_TEST_SS_TO_DECODER
@ OCSD_ERR_DCDREG_NAME_UNKNOWN
@ OCSD_ERR_TEST_SNAPSHOT_PARSE
@ OCSD_RESP_FATAL_SYS_ERR
@ OCSD_RESP_FATAL_INVALID_DATA
@ OCSD_RESP_FATAL_NOT_INIT
@ OCSD_RESP_FATAL_INVALID_PARAM
@ OCSD_RESP_FATAL_INVALID_OP
@ OCSD_S_INSTR_V7_IMPLIED_RET
@ OCSD_PROTOCOL_BUILTIN_END
ocsd_core_profile_t profile
uint32_t bad_sequence_errs
uint64_t channel_unsynced
uint64_t reserved_id_bytes
uint64_t unknown_id_bytes
ocsd_vaddr_t start_address
uint8_t dsb_dmb_waypoints
uint8_t thumb_it_conditions
ocsd_instr_subtype sub_type
ocsd_arch_profile_t pe_type
ocsd_sec_level security_level
ocsd_ex_level exception_level
uint32_t swt_payload_num_packets
uint32_t swt_has_timestamp
uint32_t swt_marker_packet
uint32_t swt_payload_pkt_bitsize
uint32_t swt_marker_first
uint32_t swt_trigger_event