OpenCSD - CoreSight Trace Decode Library
1.3.3
|
OpenCSD : Standard Types used in the library interfaces. More...
#include <stdint.h>
#include <stddef.h>
#include <inttypes.h>
Go to the source code of this file.
Classes | |
struct | _ocsd_arch_profile_t |
struct | _ocsd_instr_info |
struct | _ocsd_pe_context |
struct | _ocsd_file_mem_region |
struct | _ocsd_swt_info |
struct | _ocsd_demux_stats |
struct | _ocsd_decode_stats |
Macros | |
Trace Decode Component Name Prefixes | |
Set of standard prefixes to be used for component names | |
#define | OCSD_CMPNAME_PREFIX_SOURCE_READER "SRDR" |
#define | OCSD_CMPNAME_PREFIX_FRAMEDEFORMATTER "DFMT" |
#define | OCSD_CMPNAME_PREFIX_PKTPROC "PKTP" |
#define | OCSD_CMPNAME_PREFIX_PKTDEC "PDEC" |
Packet Processor Operation Control Flags | |
common operational flags - bottom 16 bits, protocol component specific - top 16 bits. (common flags share bitfield with pkt decoder common flags and create flags) | |
#define | OCSD_OPFLG_PKTPROC_NOFWD_BAD_PKTS 0x00000010 |
#define | OCSD_OPFLG_PKTPROC_NOMON_BAD_PKTS 0x00000020 |
#define | OCSD_OPFLG_PKTPROC_ERR_BAD_PKTS 0x00000040 |
#define | OCSD_OPFLG_PKTPROC_UNSYNC_ON_BAD_PKTS 0x00000080 |
#define | OCSD_OPFLG_PKTPROC_COMMON |
#define | OCSD_OPFLG_COMP_MODE_MASK 0xFFFF0000 |
Packet Decoder Operation Control Flags | |
common operational flags - bottom 16 bits, protcol component specific - top 16 bits. (common flags share bitfield with pkt processor common flags and create flags) | |
#define | OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS 0x00000100 |
#define | OCSD_OPFLG_PKTDEC_HALT_BAD_PKTS 0x00000200 |
#define | OCSD_OPFLG_PKTDEC_COMMON (OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS | OCSD_OPFLG_PKTDEC_HALT_BAD_PKTS) |
Typedefs | |
Demux Statistics | |
Contains statistics for the CoreSight frame demultiplexor. Counts total bytes sent to decoders registered against a trace ID, bytes in the input stream that are associated with a trace ID that has no registered decoder, and frame bytes that are not trace data, but are used to decode the frames - ID bytes, sync bytes etc. | |
typedef struct _ocsd_demux_stats | ocsd_demux_stats_t |
Trace Indexing and Channel IDs | |
#define | OCSD_TRC_IDX_STR PRIu32 |
#define | OCSD_BAD_TRC_INDEX ((ocsd_trc_index_t)-1) |
#define | OCSD_BAD_CS_SRC_ID ((uint8_t)-1) |
#define | OCSD_IS_VALID_CS_SRC_ID(id) ((id > 0) && (id < 0x70)) |
#define | OCSD_IS_RESERVED_CS_SRC_ID(id) ((id == 0) || ((id >= 0x70) && (id <= 0x7F)) |
typedef uint32_t | ocsd_trc_index_t |
Trace Decode component types | |
#define | OCSD_DFRMTR_HAS_FSYNCS 0x01 |
#define | OCSD_DFRMTR_HAS_HSYNCS 0x02 |
#define | OCSD_DFRMTR_FRAME_MEM_ALIGN 0x04 |
#define | OCSD_DFRMTR_PACKED_RAW_OUT 0x08 |
#define | OCSD_DFRMTR_UNPACKED_RAW_OUT 0x10 |
#define | OCSD_DFRMTR_RESET_ON_4X_FSYNC 0x20 |
#define | OCSD_DFRMTR_VALID_MASK 0x3F |
#define | OCSD_DFRMTR_FRAME_SIZE 0x10 |
enum | _rcdtl_rawframe_elem_t { OCSD_FRM_NONE , OCSD_FRM_PACKED , OCSD_FRM_HSYNC , OCSD_FRM_FSYNC , OCSD_FRM_ID_DATA } |
enum | _ocsd_dcd_tree_src_t { OCSD_TRC_SRC_FRAME_FORMATTED , OCSD_TRC_SRC_SINGLE } |
typedef enum _rcdtl_rawframe_elem_t | ocsd_rawframe_elem_t |
typedef enum _ocsd_dcd_tree_src_t | ocsd_dcd_tree_src_t |
Trace Decode Arch and Profile | |
#define | OCSD_IS_V8_ARCH(arch) ((arch >= ARCH_V8) && (arch <= ARCH_V8_max)) |
#define | OCSD_IS_ARCH_MINVER(arch, min_arch) (arch >= min_arch) |
#define | OCSD_MAX_VA_BITSIZE 64 |
#define | OCSD_VA_MASK ~0ULL |
#define | OCSD_BIT_MASK(bits) (bits == OCSD_MAX_VA_BITSIZE) ? OCSD_VA_MASK : ((ocsd_vaddr_t)1 << bits) - 1 |
enum | _ocsd_arch_version { ARCH_UNKNOWN = 0x0000 , ARCH_CUSTOM = 0x0001 , ARCH_V7 = 0x0700 , ARCH_V8 = 0x0800 , ARCH_V8r3 = 0x0803 , ARCH_AA64 = 0x0864 , ARCH_V8_max = ARCH_AA64 } |
enum | _ocsd_core_profile { profile_Unknown , profile_CortexM , profile_CortexR , profile_CortexA , profile_Custom } |
typedef enum _ocsd_arch_version | ocsd_arch_version_t |
typedef enum _ocsd_core_profile | ocsd_core_profile_t |
typedef struct _ocsd_arch_profile_t | ocsd_arch_profile_t |
typedef uint64_t | ocsd_vaddr_t |
Software Trace Packets Info | |
Contains the information for the generic software trace output packet. Software trace packet master and channel data. Payload info: Payload output as separate LE buffer, of sufficient bytes to hold all the packets. | |
#define | SWT_ID_VALID_MASK (0x1 << 23) |
typedef struct _ocsd_swt_info | ocsd_swt_info_t |
Decode statistics | |
Contains statistics for bytes decoded by the packet decoder, if statistics are supported. Stats block instantiated in the base class - derived protocol specific decoder must initialise and use as required. The single channel block contains the stats for the requested channel via the API call. The global demux block contains the totals for all channels and non-data bytes used in CoreSight frame demux. This block will show identical data for every requested channel via the API. | |
#define | OCSD_STATS_REVISION 0x1 |
typedef struct _ocsd_decode_stats | ocsd_decode_stats_t |
Instruction Decode Information | |
enum | _ocsd_isa { ocsd_isa_arm , ocsd_isa_thumb2 , ocsd_isa_aarch64 , ocsd_isa_tee , ocsd_isa_jazelle , ocsd_isa_custom , ocsd_isa_unknown } |
enum | _ocsd_sec_level { ocsd_sec_secure , ocsd_sec_nonsecure , ocsd_sec_root , ocsd_sec_realm } |
enum | _ocsd_ex_level { ocsd_EL_unknown = -1 , ocsd_EL0 = 0 , ocsd_EL1 , ocsd_EL2 , ocsd_EL3 } |
enum | _ocsd_instr_type { OCSD_INSTR_OTHER , OCSD_INSTR_BR , OCSD_INSTR_BR_INDIRECT , OCSD_INSTR_ISB , OCSD_INSTR_DSB_DMB , OCSD_INSTR_WFI_WFE , OCSD_INSTR_TSTART } |
enum | _ocsd_instr_subtype { OCSD_S_INSTR_NONE , OCSD_S_INSTR_BR_LINK , OCSD_S_INSTR_V8_RET , OCSD_S_INSTR_V8_ERET , OCSD_S_INSTR_V7_IMPLIED_RET } |
typedef enum _ocsd_isa | ocsd_isa |
typedef enum _ocsd_sec_level | ocsd_sec_level |
typedef enum _ocsd_ex_level | ocsd_ex_level |
typedef enum _ocsd_instr_type | ocsd_instr_type |
typedef enum _ocsd_instr_subtype | ocsd_instr_subtype |
typedef struct _ocsd_instr_info | ocsd_instr_info |
typedef struct _ocsd_pe_context | ocsd_pe_context |
Opcode Memory Access | |
Types used when accessing memory storage for traced opcodes.. | |
enum | _ocsd_mem_space_acc_t { OCSD_MEM_SPACE_EL1S = 0x1 , OCSD_MEM_SPACE_EL1N = 0x2 , OCSD_MEM_SPACE_EL2 = 0x4 , OCSD_MEM_SPACE_EL3 = 0x8 , OCSD_MEM_SPACE_EL2S = 0x10 , OCSD_MEM_SPACE_S = 0x19 , OCSD_MEM_SPACE_N = 0x6 , OCSD_MEM_SPACE_ANY = 0x1F } |
typedef enum _ocsd_mem_space_acc_t | ocsd_mem_space_acc_t |
typedef 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) |
typedef 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) |
typedef struct _ocsd_file_mem_region | ocsd_file_mem_region_t |
OpenCSD : Standard Types used in the library interfaces.
Definition in file ocsd_if_types.h.