Loading...
Searching...
No Matches
OpenCSD Library : Interfaces

Set of types, structures and virtual interface classes making up the primary API. More...

## 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
class | ITrcDataIn
| Interface to either trace data frame deformatter or packet processor. More...
class | ITrcRawFrameIn
| Interface to monitor the raw frame decode progress.. More...
class | ITraceErrorLog
| Error logging interface. More...
class | ITrcGenElemIn
| Interface for the input of generic trace elements. More...
class | ITrcPktIndexer< Pt >
| Templated interface class to index packet types. More...
class | ITrcSrcIndexCreator
| Interface class to index the frame formatted trace stream. More...
class | IInstrDecode
| Interface class to an instruction opcode decoder. More...
class | IPktDataIn< P >
| Interface class providing an input for discrete protocol packets. More...
class | ITargetMemAccess
| Interface to target memory access. More...

## General Library Return and Error Codes

enum

_ocsd_err_t {
OCSD_OK = 0 , OCSD_ERR_FAIL , OCSD_ERR_MEM , OCSD_ERR_NOT_INIT ,
OCSD_ERR_INVALID_ID , OCSD_ERR_BAD_HANDLE , OCSD_ERR_INVALID_PARAM_VAL , OCSD_ERR_INVALID_PARAM_TYPE ,
OCSD_ERR_FILE_ERROR , OCSD_ERR_NO_PROTOCOL , OCSD_ERR_ATTACH_TOO_MANY , OCSD_ERR_ATTACH_INVALID_PARAM ,
OCSD_ERR_ATTACH_COMP_NOT_FOUND , OCSD_ERR_RDR_FILE_NOT_FOUND , OCSD_ERR_RDR_INVALID_INIT , OCSD_ERR_RDR_NO_DECODER ,
OCSD_ERR_DATA_DECODE_FATAL , OCSD_ERR_DFMTR_NOTCONTTRACE , OCSD_ERR_DFMTR_BAD_FHSYNC , OCSD_ERR_BAD_PACKET_SEQ ,
OCSD_ERR_INVALID_PCKT_HDR , OCSD_ERR_PKT_INTERP_FAIL , OCSD_ERR_UNSUPPORTED_ISA , OCSD_ERR_HW_CFG_UNSUPP ,
OCSD_ERR_UNSUPP_DECODE_PKT , OCSD_ERR_BAD_DECODE_PKT , OCSD_ERR_COMMIT_PKT_OVERRUN , OCSD_ERR_MEM_NACC ,
OCSD_ERR_RET_STACK_OVERFLOW , OCSD_ERR_DCDT_NO_FORMATTER , OCSD_ERR_MEM_ACC_OVERLAP , OCSD_ERR_MEM_ACC_FILE_NOT_FOUND ,
OCSD_ERR_MEM_ACC_FILE_DIFF_RANGE , OCSD_ERR_MEM_ACC_RANGE_INVALID , OCSD_ERR_MEM_ACC_BAD_LEN , OCSD_ERR_TEST_SNAPSHOT_PARSE ,
OCSD_ERR_TEST_SNAPSHOT_PARSE_INFO , OCSD_ERR_TEST_SNAPSHOT_READ , OCSD_ERR_TEST_SS_TO_DECODER , OCSD_ERR_DCDREG_NAME_REPEAT ,
OCSD_ERR_DCDREG_NAME_UNKNOWN , OCSD_ERR_DCDREG_TYPE_UNKNOWN , OCSD_ERR_DCDREG_TOOMANY , OCSD_ERR_DCD_INTERFACE_UNUSED ,
OCSD_ERR_LAST
}

enum | _ocsd_err_severity_t { OCSD_ERR_SEV_NONE , OCSD_ERR_SEV_ERROR , OCSD_ERR_SEV_WARN , OCSD_ERR_SEV_INFO }
typedef enum _ocsd_err_t | ocsd_err_t
typedef unsigned int | ocsd_hndl_rdr_t
typedef unsigned int | ocsd_hndl_err_log_t
typedef enum _ocsd_err_severity_t | ocsd_err_severity_t
#define | OCSD_INVALID_HANDLE (unsigned int)-1

## Trace Datapath

enum | _ocsd_datapath_op_t { OCSD_OP_DATA = 0 , OCSD_OP_EOT , OCSD_OP_FLUSH , OCSD_OP_RESET }
enum | _ocsd_datapath_resp_t { OCSD_RESP_CONT , OCSD_RESP_WARN_CONT , OCSD_RESP_ERR_CONT , OCSD_RESP_WAIT , OCSD_RESP_WARN_WAIT , OCSD_RESP_ERR_WAIT , OCSD_RESP_FATAL_NOT_INIT , OCSD_RESP_FATAL_INVALID_OP , OCSD_RESP_FATAL_INVALID_PARAM , OCSD_RESP_FATAL_INVALID_DATA , OCSD_RESP_FATAL_SYS_ERR }
typedef enum _ocsd_datapath_op_t | ocsd_datapath_op_t
typedef enum _ocsd_datapath_resp_t | ocsd_datapath_resp_t
#define | OCSD_DATA_RESP_IS_FATAL(x) (x >= OCSD_RESP_FATAL_NOT_INIT)
#define | OCSD_DATA_RESP_IS_WARN(x) ((x == OCSD_RESP_WARN_CONT) || (x == OCSD_RESP_WARN_WAIT))
#define | OCSD_DATA_RESP_IS_ERR(x) ((x == OCSD_RESP_ERR_CONT) || (x == OCSD_RESP_ERR_WAIT))
#define | OCSD_DATA_RESP_IS_WARN_OR_ERR(x) (OCSD_DATA_RESP_IS_ERR(x) || OCSD_DATA_RESP_IS_WARN(x))
#define | OCSD_DATA_RESP_IS_CONT(x) (x < OCSD_RESP_WAIT)
#define | OCSD_DATA_RESP_IS_WAIT(x) ((x >= OCSD_RESP_WAIT) && (x < OCSD_RESP_FATAL_NOT_INIT))

## Trace Decode component types

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
#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

## Trace Decode Arch and Profile

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
#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

## 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

## Decoder creation information

Flags to use when creating decoders by name.

- share bitfield with pkt processor flags and packet decoder common flags.

Builtin decoder names.

Protocol type enum.

enum

_ocsd_trace_protocol_t {
OCSD_PROTOCOL_UNKNOWN = 0 , OCSD_PROTOCOL_ETMV3 , OCSD_PROTOCOL_ETMV4I , OCSD_PROTOCOL_ETMV4D ,
OCSD_PROTOCOL_PTM , OCSD_PROTOCOL_STM , OCSD_PROTOCOL_ETE , OCSD_PROTOCOL_BUILTIN_END ,
OCSD_PROTOCOL_CUSTOM_0 = 100 , OCSD_PROTOCOL_CUSTOM_1 , OCSD_PROTOCOL_CUSTOM_2 , OCSD_PROTOCOL_CUSTOM_3 ,
OCSD_PROTOCOL_CUSTOM_4 , OCSD_PROTOCOL_CUSTOM_5 , OCSD_PROTOCOL_CUSTOM_6 , OCSD_PROTOCOL_CUSTOM_7 ,
OCSD_PROTOCOL_CUSTOM_8 , OCSD_PROTOCOL_CUSTOM_9 , OCSD_PROTOCOL_END
}

typedef enum _ocsd_trace_protocol_t | ocsd_trace_protocol_t
#define | OCSD_CREATE_FLG_PACKET_PROC 0x01
#define | OCSD_CREATE_FLG_FULL_DECODER 0x02
#define | OCSD_CREATE_FLG_INST_ID 0x04
#define | OCSD_BUILTIN_DCD_STM "STM"
#define | OCSD_BUILTIN_DCD_ETMV3 "ETMV3"
#define | OCSD_BUILTIN_DCD_ETMV4I "ETMV4I"
#define | OCSD_BUILTIN_DCD_ETMV4D "ETMV4D"
#define | OCSD_BUILTIN_DCD_PTM "PTM"
#define | OCSD_BUILTIN_DCD_ETE "ETE"
#define | OCSD_PROTOCOL_IS_BUILTIN(P) ((P > OCSD_PROTOCOL_UNKNOWN) && (P < OCSD_PROTOCOL_BUILTIN_END))
#define | OCSD_PROTOCOL_IS_CUSTOM(P) ((P >= OCSD_PROTOCOL_CUSTOM_0) && (P < OCSD_PROTOCOL_END ))

## Trace Indexing and Channel IDs

typedef uint32_t | ocsd_trc_index_t
#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))

## Software Trace Packets Info

Contains the information for the generic software trace output packet.

Software trace packet master and channel data. Payload info:
size - packet payload size in bits; marker - if this packet has a marker/flag timestamp - if this packet has a timestamp associated number of packets - packet processor can optionally correlate identically sized packets on the same master / channel to be output as a single generic packet

Payload output as separate LE buffer, of sufficient bytes to hold all the packets.

typedef struct _ocsd_swt_info | ocsd_swt_info_t
#define | SWT_ID_VALID_MASK (0x1 << 23)

## 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

## 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.

typedef struct _ocsd_decode_stats | ocsd_decode_stats_t
#define | OCSD_STATS_REVISION 0x1

## 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)

## Library Versioning

#define | OCSD_VER_MAJOR 0x1
#define | OCSD_VER_MINOR 0x4
#define | OCSD_VER_PATCH 0x1
#define | OCSD_VER_NUM ((OCSD_VER_MAJOR << 16) | (OCSD_VER_MINOR << 8) | OCSD_VER_PATCH)
#define | OCSD_VER_STRING "1.4.1"
#define | OCSD_LIB_NAME "OpenCSD Library"
#define | OCSD_LIB_SHORT_NAME "OCSD"

## Detailed Description

Set of types, structures and virtual interface classes making up the primary API.

Set of component interfaces that connect various source reader and decode components into a decode tree to allow trace decode for the trace data being output by the source reader.

This interface provides a monitor point for the packet processor block. The templated interface is called with a complete packet of the given type, plus the raw packet bytes. Use for tools which need to display complete packets or require additional processing on raw packet data.

This interface is not part of the data decode path and cannot provide feedback.

## Macro Definition Documentation

## OCSD_BAD_CS_SRC_ID

#define OCSD_BAD_CS_SRC_ID ((uint8_t)-1)

Invalid trace source ID value

Definition at line 74 of file ocsd_if_types.h.

## OCSD_BAD_TRC_INDEX

#define OCSD_BAD_TRC_INDEX ((ocsd_trc_index_t)-1)

Invalid trace index value

Definition at line 72 of file ocsd_if_types.h.

## OCSD_BIT_MASK

#define OCSD_BIT_MASK | ( |  | bits | ) | (bits == OCSD_MAX_VA_BITSIZE) ? OCSD_VA_MASK : ((ocsd_vaddr_t)1 << bits) - 1

A bit mask for the first 'bits' consecutive bits of an address

Definition at line 316 of file ocsd_if_types.h.

## OCSD_BUILTIN_DCD_ETE

#define OCSD_BUILTIN_DCD_ETE "ETE"

ETE decoder

Definition at line 556 of file ocsd_if_types.h.

## OCSD_BUILTIN_DCD_ETMV3

#define OCSD_BUILTIN_DCD_ETMV3 "ETMV3"

ETMv3 decoder

Definition at line 552 of file ocsd_if_types.h.

## OCSD_BUILTIN_DCD_ETMV4D

#define OCSD_BUILTIN_DCD_ETMV4D "ETMV4D"

ETMv4 data decoder

Definition at line 554 of file ocsd_if_types.h.

## OCSD_BUILTIN_DCD_ETMV4I

#define OCSD_BUILTIN_DCD_ETMV4I "ETMV4I"

ETMv4 instruction decoder

Definition at line 553 of file ocsd_if_types.h.

## OCSD_BUILTIN_DCD_PTM

#define OCSD_BUILTIN_DCD_PTM "PTM"

PTM decoder

Definition at line 555 of file ocsd_if_types.h.

## OCSD_BUILTIN_DCD_STM

#define OCSD_BUILTIN_DCD_STM "STM"

STM decoder

Definition at line 551 of file ocsd_if_types.h.

## OCSD_CMPNAME_PREFIX_FRAMEDEFORMATTER

#define OCSD_CMPNAME_PREFIX_FRAMEDEFORMATTER "DFMT"

Component name prefix for trace frame deformatter component

Definition at line 263 of file ocsd_if_types.h.

## OCSD_CMPNAME_PREFIX_PKTDEC

#define OCSD_CMPNAME_PREFIX_PKTDEC "PDEC"

Component name prefix for trace packet decoder.

Definition at line 267 of file ocsd_if_types.h.

## OCSD_CMPNAME_PREFIX_PKTPROC

#define OCSD_CMPNAME_PREFIX_PKTPROC "PKTP"

Component name prefix for trace packet processor.

Definition at line 265 of file ocsd_if_types.h.

## OCSD_CMPNAME_PREFIX_SOURCE_READER

#define OCSD_CMPNAME_PREFIX_SOURCE_READER "SRDR"

Component name prefix for trace source reader components

Definition at line 261 of file ocsd_if_types.h.

## OCSD_CREATE_FLG_FULL_DECODER

#define OCSD_CREATE_FLG_FULL_DECODER 0x02

Create packet processor + decoder pair

Definition at line 548 of file ocsd_if_types.h.

## OCSD_CREATE_FLG_INST_ID

#define OCSD_CREATE_FLG_INST_ID 0x04

Use instance ID in decoder instance name

Definition at line 549 of file ocsd_if_types.h.

## OCSD_CREATE_FLG_PACKET_PROC

#define OCSD_CREATE_FLG_PACKET_PROC 0x01

Create packet processor only.

Definition at line 547 of file ocsd_if_types.h.

## OCSD_DATA_RESP_IS_CONT

#define OCSD_DATA_RESP_IS_CONT | ( |  | x | ) | (x < OCSD_RESP_WAIT)

Macro returning true if datapath response value is CONT.

Definition at line 213 of file ocsd_if_types.h.

## OCSD_DATA_RESP_IS_ERR

#define OCSD_DATA_RESP_IS_ERR | ( |  | x | ) | ((x == OCSD_RESP_ERR_CONT) || (x == OCSD_RESP_ERR_WAIT))

Macro returning true if datapath response value indicates ERROR logged.

Definition at line 209 of file ocsd_if_types.h.

## OCSD_DATA_RESP_IS_FATAL

#define OCSD_DATA_RESP_IS_FATAL | ( |  | x | ) | (x >= OCSD_RESP_FATAL_NOT_INIT)

Macro returning true if datapath response value is FATAL.

Definition at line 205 of file ocsd_if_types.h.

## OCSD_DATA_RESP_IS_WAIT

#define OCSD_DATA_RESP_IS_WAIT | ( |  | x | ) | ((x >= OCSD_RESP_WAIT) && (x < OCSD_RESP_FATAL_NOT_INIT))

Macro returning true if datapath response value is WAIT.

Definition at line 215 of file ocsd_if_types.h.

## OCSD_DATA_RESP_IS_WARN

#define OCSD_DATA_RESP_IS_WARN | ( |  | x | ) | ((x == OCSD_RESP_WARN_CONT) || (x == OCSD_RESP_WARN_WAIT))

Macro returning true if datapath response value indicates WARNING logged.

Definition at line 207 of file ocsd_if_types.h.

## OCSD_DATA_RESP_IS_WARN_OR_ERR

#define OCSD_DATA_RESP_IS_WARN_OR_ERR | ( |  | x | ) | (OCSD_DATA_RESP_IS_ERR(x) || OCSD_DATA_RESP_IS_WARN(x))

Macro returning true if datapath response value indicates WARNING or ERROR logged.

Definition at line 211 of file ocsd_if_types.h.

## OCSD_DFRMTR_FRAME_MEM_ALIGN

#define OCSD_DFRMTR_FRAME_MEM_ALIGN 0x04

Deformatter Config : formatted frames are memory aligned, no syncs. Input data 16 byte frame aligned.

Definition at line 245 of file ocsd_if_types.h.

## OCSD_DFRMTR_FRAME_SIZE

#define OCSD_DFRMTR_FRAME_SIZE 0x10

CoreSight frame formatter frame size constant in bytes.

Definition at line 251 of file ocsd_if_types.h.

## OCSD_DFRMTR_HAS_FSYNCS

#define OCSD_DFRMTR_HAS_FSYNCS 0x01

Deformatter Config : formatted data has fsyncs - input data 4 byte aligned

Definition at line 243 of file ocsd_if_types.h.

## OCSD_DFRMTR_HAS_HSYNCS

#define OCSD_DFRMTR_HAS_HSYNCS 0x02

Deformatter Config : formatted data has hsyncs - input data 2 byte aligned

Definition at line 244 of file ocsd_if_types.h.

## OCSD_DFRMTR_PACKED_RAW_OUT

#define OCSD_DFRMTR_PACKED_RAW_OUT 0x08

Deformatter Config : output raw packed frame data if raw monitor attached.

Definition at line 246 of file ocsd_if_types.h.

## OCSD_DFRMTR_RESET_ON_4X_FSYNC

#define OCSD_DFRMTR_RESET_ON_4X_FSYNC 0x20

Deformatter Config : reset downstream decoders if frame aligned 4x consecutive fsyncs spotted. (perf workaround)

Definition at line 248 of file ocsd_if_types.h.

## OCSD_DFRMTR_UNPACKED_RAW_OUT

#define OCSD_DFRMTR_UNPACKED_RAW_OUT 0x10

Deformatter Config : output raw unpacked frame data if raw monitor attached.

Definition at line 247 of file ocsd_if_types.h.

## OCSD_DFRMTR_VALID_MASK

#define OCSD_DFRMTR_VALID_MASK 0x3F

Deformatter Config : valid mask for deformatter configuration

Definition at line 249 of file ocsd_if_types.h.

## OCSD_INVALID_HANDLE

#define OCSD_INVALID_HANDLE (unsigned int)-1

Global invalid handle value

Definition at line 152 of file ocsd_if_types.h.

## OCSD_IS_ARCH_MINVER

#define OCSD_IS_ARCH_MINVER | ( |  | arch,
|  |  | min_arch
| ) |  | (arch >= min_arch)

Definition at line 287 of file ocsd_if_types.h.

## OCSD_IS_RESERVED_CS_SRC_ID

#define OCSD_IS_RESERVED_CS_SRC_ID | ( |  | id | ) | ((id == 0) || ((id >= 0x70) && (id <= 0x7F))

macro returing true if trace source ID is in reserved range (ID == 0x0 || 0x70 <= ID <= 0x7F)

Definition at line 78 of file ocsd_if_types.h.

## OCSD_IS_V8_ARCH

#define OCSD_IS_V8_ARCH | ( |  | arch | ) | ((arch >= ARCH_V8) && (arch <= ARCH_V8_max))

Definition at line 286 of file ocsd_if_types.h.

## OCSD_IS_VALID_CS_SRC_ID

#define OCSD_IS_VALID_CS_SRC_ID | ( |  | id | ) | ((id > 0) && (id < 0x70))

macro returing true if trace source ID is in valid range (0x0 < ID < 0x70)

Definition at line 76 of file ocsd_if_types.h.

## OCSD_LIB_NAME

#define OCSD_LIB_NAME "OpenCSD Library"

Library name string

Definition at line 57 of file ocsd_if_version.h.

## OCSD_LIB_SHORT_NAME

#define OCSD_LIB_SHORT_NAME "OCSD"

Library Short name string

Definition at line 58 of file ocsd_if_version.h.

## OCSD_MAX_VA_BITSIZE

#define OCSD_MAX_VA_BITSIZE 64

64 bit Virtual address bitsize macro

Definition at line 311 of file ocsd_if_types.h.

## OCSD_OPFLG_COMP_MODE_MASK

#define OCSD_OPFLG_COMP_MODE_MASK 0xFFFF0000

mask for the component spcific flags

Definition at line 519 of file ocsd_if_types.h.

## OCSD_OPFLG_PKTDEC_COMMON

#define OCSD_OPFLG_PKTDEC_COMMON (OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS | OCSD_OPFLG_PKTDEC_HALT_BAD_PKTS)

mask to combine all common packet processor operational control flags

Definition at line 533 of file ocsd_if_types.h.

## OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS

#define OCSD_OPFLG_PKTDEC_ERROR_BAD_PKTS 0x00000100

throw error on bad packets input (default is to warn)

Definition at line 529 of file ocsd_if_types.h.

## OCSD_OPFLG_PKTDEC_HALT_BAD_PKTS

#define OCSD_OPFLG_PKTDEC_HALT_BAD_PKTS 0x00000200

halt decoder on bad packets (default is to log error and continue by resetting decoder and wait for sync

Definition at line 530 of file ocsd_if_types.h.

## OCSD_OPFLG_PKTPROC_COMMON

#define OCSD_OPFLG_PKTPROC_COMMON

Value:
(OCSD_OPFLG_PKTPROC_NOFWD_BAD_PKTS | \
OCSD_OPFLG_PKTPROC_NOMON_BAD_PKTS | \
OCSD_OPFLG_PKTPROC_ERR_BAD_PKTS | \
OCSD_OPFLG_PKTPROC_UNSYNC_ON_BAD_PKTS )
OCSD_OPFLG_PKTPROC_UNSYNC_ON_BAD_PKTS
#define OCSD_OPFLG_PKTPROC_UNSYNC_ON_BAD_PKTS
Definition ocsd_if_types.h:510
OCSD_OPFLG_PKTPROC_ERR_BAD_PKTS
#define OCSD_OPFLG_PKTPROC_ERR_BAD_PKTS
Definition ocsd_if_types.h:509
OCSD_OPFLG_PKTPROC_NOMON_BAD_PKTS
#define OCSD_OPFLG_PKTPROC_NOMON_BAD_PKTS
Definition ocsd_if_types.h:508
OCSD_OPFLG_PKTPROC_NOFWD_BAD_PKTS
#define OCSD_OPFLG_PKTPROC_NOFWD_BAD_PKTS
Definition ocsd_if_types.h:507

mask to combine all common packet processor operational control flags

Definition at line 513 of file ocsd_if_types.h.

## OCSD_OPFLG_PKTPROC_ERR_BAD_PKTS

#define OCSD_OPFLG_PKTPROC_ERR_BAD_PKTS 0x00000040

throw error for bad packets - halt decoding.

Definition at line 509 of file ocsd_if_types.h.

## OCSD_OPFLG_PKTPROC_NOFWD_BAD_PKTS

#define OCSD_OPFLG_PKTPROC_NOFWD_BAD_PKTS 0x00000010

don't forward bad packets up data path

Definition at line 507 of file ocsd_if_types.h.

## OCSD_OPFLG_PKTPROC_NOMON_BAD_PKTS

#define OCSD_OPFLG_PKTPROC_NOMON_BAD_PKTS 0x00000020

don't forward bad packets to monitor interface

Definition at line 508 of file ocsd_if_types.h.

## OCSD_OPFLG_PKTPROC_UNSYNC_ON_BAD_PKTS

#define OCSD_OPFLG_PKTPROC_UNSYNC_ON_BAD_PKTS 0x00000080

switch to unsynced state on bad packets - wait for next sync point

Definition at line 510 of file ocsd_if_types.h.

## OCSD_PROTOCOL_IS_BUILTIN

#define OCSD_PROTOCOL_IS_BUILTIN | ( |  | P | ) | ((P > OCSD_PROTOCOL_UNKNOWN) && (P < OCSD_PROTOCOL_BUILTIN_END))

Test if protocol type is a library built-in decoder

Definition at line 590 of file ocsd_if_types.h.

## OCSD_PROTOCOL_IS_CUSTOM

#define OCSD_PROTOCOL_IS_CUSTOM | ( |  | P | ) | ((P >= OCSD_PROTOCOL_CUSTOM_0) && (P < OCSD_PROTOCOL_END ))

Test if protocol type is a custom external registered decoder

Definition at line 593 of file ocsd_if_types.h.

## OCSD_STATS_REVISION

#define OCSD_STATS_REVISION 0x1

Definition at line 683 of file ocsd_if_types.h.

## OCSD_TRC_IDX_STR

#define OCSD_TRC_IDX_STR PRIu32

Definition at line 68 of file ocsd_if_types.h.

## OCSD_VA_MASK

#define OCSD_VA_MASK ~0ULL

64 bit Virtual address bitsize mask

Definition at line 312 of file ocsd_if_types.h.

## OCSD_VER_MAJOR

#define OCSD_VER_MAJOR 0x1

Library Major Version

Definition at line 45 of file ocsd_if_version.h.

## OCSD_VER_MINOR

#define OCSD_VER_MINOR 0x4

Library Minor Version

Definition at line 46 of file ocsd_if_version.h.

## OCSD_VER_NUM

#define OCSD_VER_NUM ((OCSD_VER_MAJOR << 16) | (OCSD_VER_MINOR << 8) | OCSD_VER_PATCH)

Library version number - MMMMnnpp format. MMMM = major version, nn = minor version, pp = patch version

Definition at line 54 of file ocsd_if_version.h.

## OCSD_VER_PATCH

#define OCSD_VER_PATCH 0x1

Library Patch Version

Definition at line 47 of file ocsd_if_version.h.

## OCSD_VER_STRING

#define OCSD_VER_STRING "1.4.1"

Library Version string

Definition at line 56 of file ocsd_if_version.h.

## SWT_ID_VALID_MASK

#define SWT_ID_VALID_MASK (0x1 << 23)

mask for the swt_id_valid flag - need to retain between packets

Definition at line 634 of file ocsd_if_types.h.

## Typedef Documentation

## Fn_MemAcc_CB

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)

Callback function definition for callback function memory accessor type.

When using callback memory accessor, the decoder will call this function to obtain the memory at the address for the current opcodes. The memory space will represent the current exception level and security context of the traced code.

Return the number of bytes read, which can be less than the amount requested if this would take the access address outside the range of addresses defined when this callback was registered with the decoder.

Return 0 bytes if start address out of covered range, or memory space is not one of those defined as supported when the callback was registered.

Parameters

  p_context | : opaque context pointer set by callback client.
  address | : start address of memory to be accessed
  mem_space | : memory space of accessed memory (current EL & security state)
  reqBytes | : number of bytes required
  *byteBuffer | : buffer for data.

Returns
  uint32_t : Number of bytes actually read, or 0 for access error.

Definition at line 465 of file ocsd_if_types.h.

## Fn_MemAccID_CB

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)

Callback function definition for callback function memory accessor type.

When using callback memory accessor, the decoder will call this function to obtain the memory at the address for the current opcodes. The memory space will represent the current exception level and security context of the traced code.

Return the number of bytes read, which can be less than the amount requested if this would take the access address outside the range of addresses defined when this callback was registered with the decoder.

Return 0 bytes if start address out of covered range, or memory space is not one of those defined as supported when the callback was registered.

Parameters

  p_context | : opaque context pointer set by callback client.
  address | : start address of memory to be accessed
  mem_space | : memory space of accessed memory (current EL & security state)
  trcID | : Trace ID for source of trace - allow CB to client to associate mem req with source cpu.
  reqBytes | : number of bytes required
  *byteBuffer | : buffer for data.

Returns
  uint32_t : Number of bytes actually read, or 0 for access error.

Definition at line 489 of file ocsd_if_types.h.

## ocsd_arch_profile_t

typedef struct _ocsd_arch_profile_t ocsd_arch_profile_t

Combined architecture and profile descriptor for a core

## ocsd_arch_version_t

typedef enum _ocsd_arch_version ocsd_arch_version_t

Core Architecture Version

## ocsd_core_profile_t

typedef enum _ocsd_core_profile ocsd_core_profile_t

Core Profile

## ocsd_datapath_op_t

typedef enum _ocsd_datapath_op_t ocsd_datapath_op_t

Trace Datapath operations.

## ocsd_datapath_resp_t

typedef enum _ocsd_datapath_resp_t ocsd_datapath_resp_t

Trace Datapath responses

## ocsd_dcd_tree_src_t

typedef enum _ocsd_dcd_tree_src_t ocsd_dcd_tree_src_t

Indicates if the trace source will be frame formatted or a single protocol source. Used in decode tree creation and configuration code.

## ocsd_decode_stats_t

typedef struct _ocsd_decode_stats ocsd_decode_stats_t

## ocsd_demux_stats_t

typedef struct _ocsd_demux_stats ocsd_demux_stats_t

## ocsd_err_severity_t

typedef enum _ocsd_err_severity_t ocsd_err_severity_t

Error Severity Type

Used to indicate the severity of an error, and also as the error log verbosity level in the error logger.

The logger will ignore errors with a severity value higher than the current verbosity level.

The value OCSD_ERR_SEV_NONE can only be used as a verbosity level to switch off logging, not as a severity value on an error. The other values can be used as both error severity and logger verbosity values.

## ocsd_err_t

typedef enum _ocsd_err_t ocsd_err_t

Library Error return type

## ocsd_ex_level

typedef enum _ocsd_ex_level ocsd_ex_level

Exception level type

## ocsd_file_mem_region_t

typedef struct _ocsd_file_mem_region ocsd_file_mem_region_t

memory region type for adding multi-region binary files to memory access interface

## ocsd_hndl_err_log_t

typedef unsigned int ocsd_hndl_err_log_t

error logger connection handle

Definition at line 149 of file ocsd_if_types.h.

## ocsd_hndl_rdr_t

typedef unsigned int ocsd_hndl_rdr_t

reader control handle

Definition at line 148 of file ocsd_if_types.h.

## ocsd_instr_info

typedef struct _ocsd_instr_info ocsd_instr_info

Instruction decode request structure.

Used in IInstrDecode interface.

Caller fills in the input: information, callee then fills in the decoder: information.

## ocsd_instr_subtype

typedef enum _ocsd_instr_subtype ocsd_instr_subtype

instruction sub types - addiitonal information passed to the output packets for trace analysis tools.

## ocsd_instr_type

typedef enum _ocsd_instr_type ocsd_instr_type

instruction types - significant for waypoint calculations

## ocsd_isa

typedef enum _ocsd_isa ocsd_isa

Instruction Set Architecture type

## ocsd_mem_space_acc_t

typedef enum _ocsd_mem_space_acc_t ocsd_mem_space_acc_t

memory space bitfield enum for available security states and exception levels used when accessing memory.

## ocsd_pe_context

typedef struct _ocsd_pe_context ocsd_pe_context

Core(PE) context structure records current security state, exception level, VMID and ContextID for core.

## ocsd_rawframe_elem_t

typedef enum _rcdtl_rawframe_elem_t ocsd_rawframe_elem_t

Raw frame element data types Data blocks types output from ITrcRawFrameIn.

## ocsd_sec_level

typedef enum _ocsd_sec_level ocsd_sec_level

Security level type

## ocsd_swt_info_t

typedef struct _ocsd_swt_info ocsd_swt_info_t

## ocsd_trace_protocol_t

typedef enum _ocsd_trace_protocol_t ocsd_trace_protocol_t

Trace Protocol Builtin Types + extern

## ocsd_trc_index_t

typedef uint32_t ocsd_trc_index_t

Trace source index type - 32 bit size

Definition at line 67 of file ocsd_if_types.h.

## ocsd_vaddr_t

typedef uint64_t ocsd_vaddr_t

64 bit virtual addressing in library

Definition at line 310 of file ocsd_if_types.h.

## Enumeration Type Documentation

## _ocsd_arch_version

enum _ocsd_arch_version

Core Architecture Version

Enumerator
ARCH_UNKNOWN | unknown architecture
ARCH_CUSTOM | None ARM, custom architecture
ARCH_V7 | V7 architecture
ARCH_V8 | V8 architecture
ARCH_V8r3 | V8.3 architecture
ARCH_AA64 | Min v8r3 plus additional AA64 PE features
ARCH_V8_max |

Definition at line 275 of file ocsd_if_types.h.

## _ocsd_core_profile

enum _ocsd_core_profile

Core Profile

Enumerator
profile_Unknown | Unknown profile
profile_CortexM | Cortex-M profile
profile_CortexR | Cortex-R profile
profile_CortexA | Cortex-A profile
profile_Custom | None ARM, custom arch profile

Definition at line 290 of file ocsd_if_types.h.

## _ocsd_datapath_op_t

enum _ocsd_datapath_op_t

Trace Datapath operations.

Enumerator
OCSD_OP_DATA | Standard index + data packet
OCSD_OP_EOT | End of available trace data. No data packet.
OCSD_OP_FLUSH | Flush existing data where possible, retain decode state. No data packet.
OCSD_OP_RESET | Reset decode state - drop any existing partial data. No data packet.

Definition at line 180 of file ocsd_if_types.h.

## _ocsd_datapath_resp_t

enum _ocsd_datapath_resp_t

Trace Datapath responses

Enumerator
OCSD_RESP_CONT | Continue processing
OCSD_RESP_WARN_CONT | Continue processing : a component logged a warning.
OCSD_RESP_ERR_CONT | Continue processing : a component logged an error.
OCSD_RESP_WAIT | Pause processing
OCSD_RESP_WARN_WAIT | Pause processing : a component logged a warning.
OCSD_RESP_ERR_WAIT | Pause processing : a component logged an error.
OCSD_RESP_FATAL_NOT_INIT | Processing Fatal Error : component unintialised.
OCSD_RESP_FATAL_INVALID_OP | Processing Fatal Error : invalid data path operation.
OCSD_RESP_FATAL_INVALID_PARAM | Processing Fatal Error : invalid parameter in datapath call.
OCSD_RESP_FATAL_INVALID_DATA | Processing Fatal Error : invalid trace data
OCSD_RESP_FATAL_SYS_ERR | Processing Fatal Error : internal system error.

Definition at line 190 of file ocsd_if_types.h.

## _ocsd_dcd_tree_src_t

enum _ocsd_dcd_tree_src_t

Indicates if the trace source will be frame formatted or a single protocol source. Used in decode tree creation and configuration code.

Enumerator
OCSD_TRC_SRC_FRAME_FORMATTED | input source is frame formatted.
OCSD_TRC_SRC_SINGLE | input source is from a single protocol generator.

Definition at line 238 of file ocsd_if_types.h.

## _ocsd_err_severity_t

enum _ocsd_err_severity_t

Error Severity Type

Used to indicate the severity of an error, and also as the error log verbosity level in the error logger.

The logger will ignore errors with a severity value higher than the current verbosity level.

The value OCSD_ERR_SEV_NONE can only be used as a verbosity level to switch off logging, not as a severity value on an error. The other values can be used as both error severity and logger verbosity values.

Enumerator
OCSD_ERR_SEV_NONE | No error logging.
OCSD_ERR_SEV_ERROR | Most severe error - perhaps fatal.
OCSD_ERR_SEV_WARN | Warning level. Inconsistent or incorrect data seen but can carry on decode processing
OCSD_ERR_SEV_INFO | Information only message. Use for debugging code or suspect input data.

Definition at line 166 of file ocsd_if_types.h.

## _ocsd_err_t

enum _ocsd_err_t

Library Error return type

Enumerator
OCSD_OK | No Error.
OCSD_ERR_FAIL | General systemic failure.
OCSD_ERR_MEM | Internal memory allocation error.
OCSD_ERR_NOT_INIT | Component not initialised or initialisation failure.
OCSD_ERR_INVALID_ID | Invalid CoreSight Trace Source ID.
OCSD_ERR_BAD_HANDLE | Invalid handle passed to component.
OCSD_ERR_INVALID_PARAM_VAL | Invalid value parameter passed to component.
OCSD_ERR_INVALID_PARAM_TYPE | Type mismatch on abstract interface
OCSD_ERR_FILE_ERROR | File access error
OCSD_ERR_NO_PROTOCOL | Trace protocol unsupported
OCSD_ERR_ATTACH_TOO_MANY | Cannot attach - attach device limit reached.
OCSD_ERR_ATTACH_INVALID_PARAM | Cannot attach - invalid parameter.
OCSD_ERR_ATTACH_COMP_NOT_FOUND | Cannot detach - component not found.
OCSD_ERR_RDR_FILE_NOT_FOUND | source reader - file not found.
OCSD_ERR_RDR_INVALID_INIT | source reader - invalid initialisation parameter.
OCSD_ERR_RDR_NO_DECODER | source reader - not trace decoder set.
OCSD_ERR_DATA_DECODE_FATAL | A decoder in the data path has returned a fatal error.
OCSD_ERR_DFMTR_NOTCONTTRACE | Trace input to deformatter none-continuous
OCSD_ERR_DFMTR_BAD_FHSYNC | Bad frame or half frame sync in trace deformatter
OCSD_ERR_BAD_PACKET_SEQ | Bad packet sequence
OCSD_ERR_INVALID_PCKT_HDR | Invalid packet header
OCSD_ERR_PKT_INTERP_FAIL | Interpreter failed - cannot recover - bad data or sequence
OCSD_ERR_UNSUPPORTED_ISA | ISA not supported in decoder.
OCSD_ERR_HW_CFG_UNSUPP | Programmed trace configuration not supported by decoder.
OCSD_ERR_UNSUPP_DECODE_PKT | Packet not supported in decoder
OCSD_ERR_BAD_DECODE_PKT | reserved or unknown packet in decoder.
OCSD_ERR_COMMIT_PKT_OVERRUN | overrun in commit packet stack - tried to commit more than available
OCSD_ERR_MEM_NACC | unable to access required memory address
OCSD_ERR_RET_STACK_OVERFLOW | internal return stack overflow checks failed - popped more than we pushed.
OCSD_ERR_DCDT_NO_FORMATTER | No formatter in use - operation not valid.
OCSD_ERR_MEM_ACC_OVERLAP | Attempted to set an overlapping range in memory access map
OCSD_ERR_MEM_ACC_FILE_NOT_FOUND | Memory access file could not be opened
OCSD_ERR_MEM_ACC_FILE_DIFF_RANGE | Attempt to re-use the same memory access file for a different address range
OCSD_ERR_MEM_ACC_RANGE_INVALID | Address range in accessor set to invalid values
OCSD_ERR_MEM_ACC_BAD_LEN | Memory accessor returned a bad read length value (larger than requested
OCSD_ERR_TEST_SNAPSHOT_PARSE | test snapshot file parse error
OCSD_ERR_TEST_SNAPSHOT_PARSE_INFO | test snapshot file parse information
OCSD_ERR_TEST_SNAPSHOT_READ | test snapshot reader error
OCSD_ERR_TEST_SS_TO_DECODER | test snapshot to decode tree conversion error
OCSD_ERR_DCDREG_NAME_REPEAT | attempted to register a decoder with the same name as another one
OCSD_ERR_DCDREG_NAME_UNKNOWN | attempted to find a decoder with a name that is not known in the library
OCSD_ERR_DCDREG_TYPE_UNKNOWN | attempted to find a decoder with a type that is not known in the library
OCSD_ERR_DCDREG_TOOMANY | attempted to register too many custom decoders
OCSD_ERR_DCD_INTERFACE_UNUSED | Attempt to connect or use and interface not supported by this decoder.
OCSD_ERR_LAST |

Definition at line 85 of file ocsd_if_types.h.

## _ocsd_ex_level

enum _ocsd_ex_level

Exception level type

Enumerator
ocsd_EL_unknown | EL unknown / unsupported in trace
ocsd_EL0 | EL0
ocsd_EL1 | EL1
ocsd_EL2 | EL2
ocsd_EL3 | EL3

Definition at line 349 of file ocsd_if_types.h.

## _ocsd_instr_subtype

enum _ocsd_instr_subtype

instruction sub types - addiitonal information passed to the output packets for trace analysis tools.

Enumerator
OCSD_S_INSTR_NONE | no subtype set
OCSD_S_INSTR_BR_LINK | branch with link
OCSD_S_INSTR_V8_RET | v8 ret instruction - subtype of BR_INDIRECT
OCSD_S_INSTR_V8_ERET | v8 eret instruction - subtype of BR_INDIRECT
OCSD_S_INSTR_V7_IMPLIED_RET | v7 instruction which could imply return e.g. MOV PC, LR; POP { ,pc}

Definition at line 373 of file ocsd_if_types.h.

## _ocsd_instr_type

enum _ocsd_instr_type

instruction types - significant for waypoint calculations

Enumerator
OCSD_INSTR_OTHER | Other instruction - not significant for waypoints.
OCSD_INSTR_BR | Immediate Branch instruction
OCSD_INSTR_BR_INDIRECT | Indirect Branch instruction
OCSD_INSTR_ISB | Barrier : ISB instruction
OCSD_INSTR_DSB_DMB | Barrier : DSB or DMB instruction
OCSD_INSTR_WFI_WFE | WFI or WFE traced as direct branch
OCSD_INSTR_TSTART | PE Arch feature FEAT_TME - TSTART instruction

Definition at line 360 of file ocsd_if_types.h.

## _ocsd_isa

enum _ocsd_isa

Instruction Set Architecture type

Enumerator
ocsd_isa_arm | V7 ARM 32, V8 AArch32
ocsd_isa_thumb2 | Thumb2 -> 16/32 bit instructions
ocsd_isa_aarch64 | V8 AArch64
ocsd_isa_tee | Thumb EE - unsupported
ocsd_isa_jazelle | Jazelle - unsupported in trace
ocsd_isa_custom | Instruction set - custom arch decoder
ocsd_isa_unknown | ISA not yet known

Definition at line 326 of file ocsd_if_types.h.

## _ocsd_mem_space_acc_t

enum _ocsd_mem_space_acc_t

memory space bitfield enum for available security states and exception levels used when accessing memory.

Enumerator
OCSD_MEM_SPACE_EL1S | S EL1/0
OCSD_MEM_SPACE_EL1N | NS EL1/0
OCSD_MEM_SPACE_EL2 | NS EL2
OCSD_MEM_SPACE_EL3 | S EL3
OCSD_MEM_SPACE_EL2S | S EL2
OCSD_MEM_SPACE_S | Any S
OCSD_MEM_SPACE_N | Any NS
OCSD_MEM_SPACE_ANY | Any sec level / EL - live system use current EL + sec state

Definition at line 433 of file ocsd_if_types.h.

## _ocsd_sec_level

enum _ocsd_sec_level

Security level type

Enumerator
ocsd_sec_secure | Core is in secure state
ocsd_sec_nonsecure | Core is in non-secure state
ocsd_sec_root | PE FEAT_RME: Core is in root state.
ocsd_sec_realm | PE FEAT_RME: Core is in realm state.

Definition at line 339 of file ocsd_if_types.h.

## _ocsd_trace_protocol_t

enum _ocsd_trace_protocol_t

Trace Protocol Builtin Types + extern

Enumerator
OCSD_PROTOCOL_UNKNOWN | Protocol unknown
OCSD_PROTOCOL_ETMV3 | ETMV3 instruction and data trace protocol decoder.
OCSD_PROTOCOL_ETMV4I | ETMV4 instruction trace protocol decoder.
OCSD_PROTOCOL_ETMV4D | ETMV4 data trace protocol decoder.
OCSD_PROTOCOL_PTM | PTM program flow instruction trace protocol decoder.
OCSD_PROTOCOL_STM | STM system trace protocol decoder.
OCSD_PROTOCOL_ETE | ETE trace protocol decoder
OCSD_PROTOCOL_BUILTIN_END | Invalid protocol - built-in protocol types end marker
OCSD_PROTOCOL_CUSTOM_0 | Values from this onwards are assigned to external registered decoders
OCSD_PROTOCOL_CUSTOM_1 |
OCSD_PROTOCOL_CUSTOM_2 |
OCSD_PROTOCOL_CUSTOM_3 |
OCSD_PROTOCOL_CUSTOM_4 |
OCSD_PROTOCOL_CUSTOM_5 |
OCSD_PROTOCOL_CUSTOM_6 |
OCSD_PROTOCOL_CUSTOM_7 |
OCSD_PROTOCOL_CUSTOM_8 |
OCSD_PROTOCOL_CUSTOM_9 |
OCSD_PROTOCOL_END | Invalid protocol - protocol types end marker

Definition at line 560 of file ocsd_if_types.h.

## _rcdtl_rawframe_elem_t

enum _rcdtl_rawframe_elem_t

Raw frame element data types Data blocks types output from ITrcRawFrameIn.

Enumerator
OCSD_FRM_NONE | None data operation on data path. (EOT etc.)
OCSD_FRM_PACKED | Raw packed frame data
OCSD_FRM_HSYNC | HSYNC data
OCSD_FRM_FSYNC | Frame Sync Data
OCSD_FRM_ID_DATA | unpacked data for ID

Definition at line 226 of file ocsd_if_types.h.