diff options
author | Ruslan Bukin <br@FreeBSD.org> | 2018-04-04 12:33:46 +0000 |
---|---|---|
committer | Ruslan Bukin <br@FreeBSD.org> | 2018-04-04 12:33:46 +0000 |
commit | a6157d81121ac9559d806dafa346039199598442 (patch) | |
tree | 74bb8dac03bea2e41b98a242951cee587339288a /decoder/include/opencsd/trc_pkt_types.h | |
download | src-a6157d81121ac9559d806dafa346039199598442.tar.gz src-a6157d81121ac9559d806dafa346039199598442.zip |
Import OpenCSD -- an ARM CoreSight Trace Decode library.vendor/opencsd/900407e9d6400f6541138d6c2e483a9fc2d699a4
Git ID 900407e9d6400f6541138d6c2e483a9fc2d699a4
Sponsored by: DARPA, AFRL
Notes
Notes:
svn path=/vendor/opencsd/dist/; revision=332012
svn path=/vendor/opencsd/900407e9d6400f6541138d6c2e483a9fc2d699a4/; revision=332013; tag=vendor/opencsd/900407e9d6400f6541138d6c2e483a9fc2d699a4
Diffstat (limited to 'decoder/include/opencsd/trc_pkt_types.h')
-rw-r--r-- | decoder/include/opencsd/trc_pkt_types.h | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/decoder/include/opencsd/trc_pkt_types.h b/decoder/include/opencsd/trc_pkt_types.h new file mode 100644 index 000000000000..2eb353a1761a --- /dev/null +++ b/decoder/include/opencsd/trc_pkt_types.h @@ -0,0 +1,137 @@ +/*! + * \file opencsd/trc_pkt_types.h + * \brief OpenCSD: Common "C" types for trace packets. + * + * \copyright Copyright (c) 2015, ARM Limited. All Rights Reserved. + */ + + +/* + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors + * may be used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef ARM_TRC_PKT_TYPES_H_INCLUDED +#define ARM_TRC_PKT_TYPES_H_INCLUDED + +#include <stdint.h> +#include "opencsd/ocsd_if_types.h" + +/** @defgroup trc_pkts OpenCSD Library : Trace Packet Types + + @brief Types used in trace packet description structures. + +@{*/ + + +/** @name Common Packet Types +@{*/ + +typedef enum _ocsd_pkt_va_size +{ + VA_32BIT, + VA_64BIT +} ocsd_pkt_va_size; + +typedef struct _ocsd_pkt_vaddr +{ + ocsd_pkt_va_size size; /**< Virtual address size. */ + ocsd_vaddr_t val; /**< Current value */ + uint8_t pkt_bits; /**< Bits updated this packet */ + uint8_t valid_bits; /**< Currently valid bits */ +} ocsd_pkt_vaddr; + +typedef struct _ocsd_pkt_byte_sz_val +{ + uint32_t val; + uint8_t size_bytes; + uint8_t valid_bytes; +} ocsd_pkt_byte_sz_val; + +typedef enum _ocsd_pkt_atm_type +{ + ATOM_PATTERN, /**< set atom packet using pattern supplied */ + ATOM_REPEAT /**< set atom packet using repeat value (convert to pattern) */ +} ocsd_pkt_atm_type; + +typedef enum _ocsd_atm_val { + ATOM_N, + ATOM_E +} ocsd_atm_val; + +typedef struct _ocsd_pkt_atom +{ + /** pattern across num bits. + Bit sequence:- ls bit = oldest atom (1st instruction executed), ms bit = newest (last instruction executed), + Bit values :- 1'b1 = E atom, 1'b0 = N atom. + */ + uint32_t En_bits; + uint8_t num; /**< number of atoms represented */ +} ocsd_pkt_atom; + +/** Isync Reason - common to PTM and ETMv3 **/ +typedef enum _ocsd_iSync_reason { + iSync_Periodic = 0, + iSync_TraceEnable, + iSync_TraceRestartAfterOverflow, + iSync_DebugExit +} ocsd_iSync_reason; + + +typedef enum _ocsd_armv7_exception { + Excp_Reserved, + Excp_NoException, + Excp_Reset, + Excp_IRQ, + Excp_FIQ, + Excp_AsyncDAbort, + Excp_DebugHalt, + Excp_Jazelle, + Excp_SVC, + Excp_SMC, + Excp_Hyp, + Excp_Undef, + Excp_PrefAbort, + Excp_Generic, + Excp_SyncDataAbort, + Excp_CMUsageFault, + Excp_CMNMI, + Excp_CMDebugMonitor, + Excp_CMMemManage, + Excp_CMPendSV, + Excp_CMSysTick, + Excp_CMBusFault, + Excp_CMHardFault, + Excp_CMIRQn, + Excp_ThumbEECheckFail, +} ocsd_armv7_exception; + +/** @}*/ + +/** @}*/ + +#endif // ARM_TRC_PKT_TYPES_H_INCLUDED + +/* End of File opencsd/trc_pkt_types.h */ |