kernel/eka/debug/crashMonitor/inc/scmdatatypes.h
changeset 245 647ab20fee2e
parent 0 a41df078684a
child 257 3e88ff8f41d5
equal deleted inserted replaced
244:a77889bee936 245:647ab20fee2e
    20 
    20 
    21 
    21 
    22 #ifndef __SCMDATATYPES_H_INCLUDED__
    22 #ifndef __SCMDATATYPES_H_INCLUDED__
    23 #define __SCMDATATYPES_H_INCLUDED__
    23 #define __SCMDATATYPES_H_INCLUDED__
    24 
    24 
    25 #include <rm_debug_api.h>
    25 
    26 #include <e32rom.h>
    26 #include <e32rom.h>
    27 
    27 
    28 #include <scmbytestreamutil.h>
    28 #include <scmbytestreamutil.h>
    29 #include <scmtrace.h>
    29 #include <scmtrace.h>
    30 
    30 
    42 	static const TInt KSCMDataTypesMinorVersion = 0;
    42 	static const TInt KSCMDataTypesMinorVersion = 0;
    43 	
    43 	
    44 	/** SCM Data Types Build Number */
    44 	/** SCM Data Types Build Number */
    45 	static const TInt KSCMDataTypesBuildNumber = 0;
    45 	static const TInt KSCMDataTypesBuildNumber = 0;
    46 
    46 
       
    47 	/**
       
    48 	  Specifies the type of a code segment.
       
    49 	  @see TCodeSegListEntry
       
    50 	  */
       
    51 	enum TCodeSegType
       
    52 	    {
       
    53 	    EUnknownCodeSegType = 0, /**< Signifies an unknown code segment type. */
       
    54 	    EExeCodeSegType = 1,     /**< Signifies a code segment belonging to an executable. */
       
    55 	    EDllCodeSegType = 2      /**< Signifies a code segment belonging to a library. */
       
    56 	    };
       
    57 	
       
    58 	
       
    59 	/**
       
    60 	  Used for storing the contents of a 32 bit register
       
    61 	  */
       
    62 	typedef TUint32 TRegisterValue32;
       
    63 	
       
    64 	/**
       
    65 	  Structure containing information about the state of the registers when a
       
    66 	  hardware exception occurred
       
    67 	  */
       
    68 	class TRmdArmExcInfo
       
    69 	    {
       
    70 	public:
       
    71 	    /** Enumeration detailing the types of exception which may occur. */
       
    72 	    enum TExceptionType
       
    73 	        {
       
    74 	        /** Enumerator signifying that a prefetch abort error has occurred. */
       
    75 	        EPrefetchAbort = 0,
       
    76 	        /** Enumerator signifying that a data abort error has occurred. */
       
    77 	        EDataAbort = 1,
       
    78 	        /** Enumerator signifying that an undefined instruction error has occurred. */
       
    79 	        EUndef =2
       
    80 	        };
       
    81 
       
    82 	    /** Value of CPSR. */
       
    83 	    TRegisterValue32 iCpsr;
       
    84 	    /** Type of exception which has occurred. */
       
    85 	    TExceptionType iExcCode;
       
    86 	    /** Value of R13 supervisor mode banked register. */
       
    87 	    TRegisterValue32 iR13Svc;
       
    88 	    /** Value of user mode register R4. */
       
    89 	    TRegisterValue32 iR4;
       
    90 	    /** Value of user mode register R5. */
       
    91 	    TRegisterValue32 iR5;
       
    92 	    /** Value of user mode register R6. */
       
    93 	    TRegisterValue32 iR6;
       
    94 	    /** Value of user mode register R7. */
       
    95 	    TRegisterValue32 iR7;
       
    96 	    /** Value of user mode register R8. */
       
    97 	    TRegisterValue32 iR8;
       
    98 	    /** Value of user mode register R9. */
       
    99 	    TRegisterValue32 iR9;
       
   100 	    /** Value of user mode register R10. */
       
   101 	    TRegisterValue32 iR10;
       
   102 	    /** Value of user mode register R11. */
       
   103 	    TRegisterValue32 iR11;
       
   104 	    /** Value of R14 supervisor mode banked register. */
       
   105 	    TRegisterValue32 iR14Svc;
       
   106 	    /** Address which caused exception (System Control Coprocessor Fault Address Register) */
       
   107 	    TRegisterValue32 iFaultAddress;
       
   108 	    /** Value of System Control Coprocessor Fault Status Register. */
       
   109 	    TRegisterValue32 iFaultStatus;
       
   110 	    /** Value of SPSR supervisor mode banked register. */
       
   111 	    TRegisterValue32 iSpsrSvc;
       
   112 	    /** Value of user mode register R13. */
       
   113 	    TRegisterValue32 iR13;
       
   114 	    /** Value of user mode register R14. */
       
   115 	    TRegisterValue32 iR14;
       
   116 	    /** Value of user mode register R0. */
       
   117 	    TRegisterValue32 iR0;
       
   118 	    /** Value of user mode register R1. */
       
   119 	    TRegisterValue32 iR1;
       
   120 	    /** Value of user mode register R2. */
       
   121 	    TRegisterValue32 iR2;
       
   122 	    /** Value of user mode register R3. */
       
   123 	    TRegisterValue32 iR3;
       
   124 	    /** Value of user mode register R12. */
       
   125 	    TRegisterValue32 iR12;
       
   126 	    /** Value of user mode register R15, points to instruction which caused exception. */
       
   127 	    TRegisterValue32 iR15;
       
   128 	    };
    47 	/**
   129 	/**
    48 	 * This enum defines the type of struct we are dealing with when we
   130 	 * This enum defines the type of struct we are dealing with when we
    49 	 * are serialising/deserialising
   131 	 * are serialising/deserialising
    50 	 */
   132 	 */
    51 	enum SCMStructId
   133 	enum SCMStructId