kernel/eka/debug/crashMonitor/inc/scmdatatypes.h
changeset 259 57b9594f5772
parent 0 a41df078684a
child 257 3e88ff8f41d5
--- a/kernel/eka/debug/crashMonitor/inc/scmdatatypes.h	Wed Aug 18 11:08:29 2010 +0300
+++ b/kernel/eka/debug/crashMonitor/inc/scmdatatypes.h	Thu Sep 02 21:54:16 2010 +0300
@@ -22,7 +22,7 @@
 #ifndef __SCMDATATYPES_H_INCLUDED__
 #define __SCMDATATYPES_H_INCLUDED__
 
-#include <rm_debug_api.h>
+
 #include <e32rom.h>
 
 #include <scmbytestreamutil.h>
@@ -45,6 +45,88 @@
 	static const TInt KSCMDataTypesBuildNumber = 0;
 
 	/**
+	  Specifies the type of a code segment.
+	  @see TCodeSegListEntry
+	  */
+	enum TCodeSegType
+	    {
+	    EUnknownCodeSegType = 0, /**< Signifies an unknown code segment type. */
+	    EExeCodeSegType = 1,     /**< Signifies a code segment belonging to an executable. */
+	    EDllCodeSegType = 2      /**< Signifies a code segment belonging to a library. */
+	    };
+	
+	
+	/**
+	  Used for storing the contents of a 32 bit register
+	  */
+	typedef TUint32 TRegisterValue32;
+	
+	/**
+	  Structure containing information about the state of the registers when a
+	  hardware exception occurred
+	  */
+	class TRmdArmExcInfo
+	    {
+	public:
+	    /** Enumeration detailing the types of exception which may occur. */
+	    enum TExceptionType
+	        {
+	        /** Enumerator signifying that a prefetch abort error has occurred. */
+	        EPrefetchAbort = 0,
+	        /** Enumerator signifying that a data abort error has occurred. */
+	        EDataAbort = 1,
+	        /** Enumerator signifying that an undefined instruction error has occurred. */
+	        EUndef =2
+	        };
+
+	    /** Value of CPSR. */
+	    TRegisterValue32 iCpsr;
+	    /** Type of exception which has occurred. */
+	    TExceptionType iExcCode;
+	    /** Value of R13 supervisor mode banked register. */
+	    TRegisterValue32 iR13Svc;
+	    /** Value of user mode register R4. */
+	    TRegisterValue32 iR4;
+	    /** Value of user mode register R5. */
+	    TRegisterValue32 iR5;
+	    /** Value of user mode register R6. */
+	    TRegisterValue32 iR6;
+	    /** Value of user mode register R7. */
+	    TRegisterValue32 iR7;
+	    /** Value of user mode register R8. */
+	    TRegisterValue32 iR8;
+	    /** Value of user mode register R9. */
+	    TRegisterValue32 iR9;
+	    /** Value of user mode register R10. */
+	    TRegisterValue32 iR10;
+	    /** Value of user mode register R11. */
+	    TRegisterValue32 iR11;
+	    /** Value of R14 supervisor mode banked register. */
+	    TRegisterValue32 iR14Svc;
+	    /** Address which caused exception (System Control Coprocessor Fault Address Register) */
+	    TRegisterValue32 iFaultAddress;
+	    /** Value of System Control Coprocessor Fault Status Register. */
+	    TRegisterValue32 iFaultStatus;
+	    /** Value of SPSR supervisor mode banked register. */
+	    TRegisterValue32 iSpsrSvc;
+	    /** Value of user mode register R13. */
+	    TRegisterValue32 iR13;
+	    /** Value of user mode register R14. */
+	    TRegisterValue32 iR14;
+	    /** Value of user mode register R0. */
+	    TRegisterValue32 iR0;
+	    /** Value of user mode register R1. */
+	    TRegisterValue32 iR1;
+	    /** Value of user mode register R2. */
+	    TRegisterValue32 iR2;
+	    /** Value of user mode register R3. */
+	    TRegisterValue32 iR3;
+	    /** Value of user mode register R12. */
+	    TRegisterValue32 iR12;
+	    /** Value of user mode register R15, points to instruction which caused exception. */
+	    TRegisterValue32 iR15;
+	    };
+	/**
 	 * This enum defines the type of struct we are dealing with when we
 	 * are serialising/deserialising
 	 */