REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the SourceLevelDebugPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
		
			
				
	
	
		
			304 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			304 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   IA32/x64 architecture specific definitions needed by debug transfer protocol.It is only
 | |
|   intended to be used by Debug related module implementation.
 | |
| 
 | |
|   Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __PROCESSOR_CONTEXT_H__
 | |
| #define __PROCESSOR_CONTEXT_H__
 | |
| 
 | |
| //
 | |
| //  IA-32/x64 processor register index table
 | |
| //
 | |
| #define SOFT_DEBUGGER_REGISTER_DR0     0x00
 | |
| #define SOFT_DEBUGGER_REGISTER_DR1     0x01
 | |
| #define SOFT_DEBUGGER_REGISTER_DR2     0x02
 | |
| #define SOFT_DEBUGGER_REGISTER_DR3     0x03
 | |
| #define SOFT_DEBUGGER_REGISTER_DR6     0x04
 | |
| #define SOFT_DEBUGGER_REGISTER_DR7     0x05
 | |
| #define SOFT_DEBUGGER_REGISTER_EFLAGS  0x06
 | |
| #define SOFT_DEBUGGER_REGISTER_LDTR    0x07
 | |
| #define SOFT_DEBUGGER_REGISTER_TR      0x08
 | |
| #define SOFT_DEBUGGER_REGISTER_GDTR0   0x09 // the low 32bit of GDTR
 | |
| #define SOFT_DEBUGGER_REGISTER_GDTR1   0x0A // the high 32bit of GDTR
 | |
| #define SOFT_DEBUGGER_REGISTER_IDTR0   0x0B // the low 32bit of IDTR
 | |
| #define SOFT_DEBUGGER_REGISTER_IDTR1   0x0C // the high 32bot of IDTR
 | |
| #define SOFT_DEBUGGER_REGISTER_EIP     0x0D
 | |
| #define SOFT_DEBUGGER_REGISTER_GS      0x0E
 | |
| #define SOFT_DEBUGGER_REGISTER_FS      0x0F
 | |
| #define SOFT_DEBUGGER_REGISTER_ES      0x10
 | |
| #define SOFT_DEBUGGER_REGISTER_DS      0x11
 | |
| #define SOFT_DEBUGGER_REGISTER_CS      0x12
 | |
| #define SOFT_DEBUGGER_REGISTER_SS      0x13
 | |
| #define SOFT_DEBUGGER_REGISTER_CR0     0x14
 | |
| #define SOFT_DEBUGGER_REGISTER_CR1     0x15
 | |
| #define SOFT_DEBUGGER_REGISTER_CR2     0x16
 | |
| #define SOFT_DEBUGGER_REGISTER_CR3     0x17
 | |
| #define SOFT_DEBUGGER_REGISTER_CR4     0x18
 | |
| 
 | |
| #define SOFT_DEBUGGER_REGISTER_DI  0x19
 | |
| #define SOFT_DEBUGGER_REGISTER_SI  0x1A
 | |
| #define SOFT_DEBUGGER_REGISTER_BP  0x1B
 | |
| #define SOFT_DEBUGGER_REGISTER_SP  0x1C
 | |
| #define SOFT_DEBUGGER_REGISTER_DX  0x1D
 | |
| #define SOFT_DEBUGGER_REGISTER_CX  0x1E
 | |
| #define SOFT_DEBUGGER_REGISTER_BX  0x1F
 | |
| #define SOFT_DEBUGGER_REGISTER_AX  0x20
 | |
| 
 | |
| //
 | |
| // This below registers are only available for x64 (not valid for Ia32 mode)
 | |
| //
 | |
| #define SOFT_DEBUGGER_REGISTER_CR8  0x21
 | |
| #define SOFT_DEBUGGER_REGISTER_R8   0x22
 | |
| #define SOFT_DEBUGGER_REGISTER_R9   0x23
 | |
| #define SOFT_DEBUGGER_REGISTER_R10  0x24
 | |
| #define SOFT_DEBUGGER_REGISTER_R11  0x25
 | |
| #define SOFT_DEBUGGER_REGISTER_R12  0x26
 | |
| #define SOFT_DEBUGGER_REGISTER_R13  0x27
 | |
| #define SOFT_DEBUGGER_REGISTER_R14  0x28
 | |
| #define SOFT_DEBUGGER_REGISTER_R15  0x29
 | |
| 
 | |
| //
 | |
| // This below registers are FP / MMX / XMM registers
 | |
| //
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_BASE  0x30
 | |
| 
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_FCW         (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x00)
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_FSW         (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x01)
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_FTW         (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x02)
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_OPCODE      (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x03)
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_EIP         (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x04)
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_CS          (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x05)
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_DATAOFFSET  (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x06)
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_DS          (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x07)
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_MXCSR       (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x08)
 | |
| #define SOFT_DEBUGGER_REGISTER_FP_MXCSR_MASK  (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x09)
 | |
| #define SOFT_DEBUGGER_REGISTER_ST0            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0A)
 | |
| #define SOFT_DEBUGGER_REGISTER_ST1            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0B)
 | |
| #define SOFT_DEBUGGER_REGISTER_ST2            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0C)
 | |
| #define SOFT_DEBUGGER_REGISTER_ST3            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0D)
 | |
| #define SOFT_DEBUGGER_REGISTER_ST4            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0E)
 | |
| #define SOFT_DEBUGGER_REGISTER_ST5            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x0F)
 | |
| #define SOFT_DEBUGGER_REGISTER_ST6            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x10)
 | |
| #define SOFT_DEBUGGER_REGISTER_ST7            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x11)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM0           (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x12)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM1           (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x13)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM2           (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x14)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM3           (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x15)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM4           (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x16)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM5           (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x17)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM6           (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x18)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM7           (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x19)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM8           (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1A)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM9           (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1B)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM10          (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1C)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM11          (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1D)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM12          (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1E)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM13          (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x1F)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM14          (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x20)
 | |
| #define SOFT_DEBUGGER_REGISTER_XMM15          (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x21)
 | |
| #define SOFT_DEBUGGER_REGISTER_MM0            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x22)
 | |
| #define SOFT_DEBUGGER_REGISTER_MM1            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x23)
 | |
| #define SOFT_DEBUGGER_REGISTER_MM2            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x24)
 | |
| #define SOFT_DEBUGGER_REGISTER_MM3            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x25)
 | |
| #define SOFT_DEBUGGER_REGISTER_MM4            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x26)
 | |
| #define SOFT_DEBUGGER_REGISTER_MM5            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x27)
 | |
| #define SOFT_DEBUGGER_REGISTER_MM6            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x28)
 | |
| #define SOFT_DEBUGGER_REGISTER_MM7            (SOFT_DEBUGGER_REGISTER_FP_BASE + 0x29)
 | |
| 
 | |
| #define SOFT_DEBUGGER_REGISTER_MAX  SOFT_DEBUGGER_REGISTER_MM7
 | |
| 
 | |
| #define SOFT_DEBUGGER_MSR_EFER  (0xC0000080)
 | |
| 
 | |
| #pragma pack(1)
 | |
| 
 | |
| ///
 | |
| /// FXSAVE_STATE
 | |
| /// FP / MMX / XMM registers (see fxrstor instruction definition)
 | |
| ///
 | |
| typedef struct {
 | |
|   UINT16    Fcw;
 | |
|   UINT16    Fsw;
 | |
|   UINT16    Ftw;
 | |
|   UINT16    Opcode;
 | |
|   UINT32    Eip;
 | |
|   UINT16    Cs;
 | |
|   UINT16    Reserved1;
 | |
|   UINT32    DataOffset;
 | |
|   UINT16    Ds;
 | |
|   UINT8     Reserved2[2];
 | |
|   UINT32    Mxcsr;
 | |
|   UINT32    Mxcsr_Mask;
 | |
|   UINT8     St0Mm0[10];
 | |
|   UINT8     Reserved3[6];
 | |
|   UINT8     St1Mm1[10];
 | |
|   UINT8     Reserved4[6];
 | |
|   UINT8     St2Mm2[10];
 | |
|   UINT8     Reserved5[6];
 | |
|   UINT8     St3Mm3[10];
 | |
|   UINT8     Reserved6[6];
 | |
|   UINT8     St4Mm4[10];
 | |
|   UINT8     Reserved7[6];
 | |
|   UINT8     St5Mm5[10];
 | |
|   UINT8     Reserved8[6];
 | |
|   UINT8     St6Mm6[10];
 | |
|   UINT8     Reserved9[6];
 | |
|   UINT8     St7Mm7[10];
 | |
|   UINT8     Reserved10[6];
 | |
|   UINT8     Xmm0[16];
 | |
|   UINT8     Xmm1[16];
 | |
|   UINT8     Xmm2[16];
 | |
|   UINT8     Xmm3[16];
 | |
|   UINT8     Xmm4[16];
 | |
|   UINT8     Xmm5[16];
 | |
|   UINT8     Xmm6[16];
 | |
|   UINT8     Xmm7[16];
 | |
|   UINT8     Reserved11[14 * 16];
 | |
| } DEBUG_DATA_IA32_FX_SAVE_STATE;
 | |
| 
 | |
| ///
 | |
| ///  IA-32 processor context definition
 | |
| ///
 | |
| typedef struct {
 | |
|   UINT32                           ExceptionData;
 | |
|   DEBUG_DATA_IA32_FX_SAVE_STATE    FxSaveState;
 | |
|   UINT32                           Dr0;
 | |
|   UINT32                           Dr1;
 | |
|   UINT32                           Dr2;
 | |
|   UINT32                           Dr3;
 | |
|   UINT32                           Dr6;
 | |
|   UINT32                           Dr7;
 | |
|   UINT32                           Eflags;
 | |
|   UINT32                           Ldtr;
 | |
|   UINT32                           Tr;
 | |
|   UINT32                           Gdtr[2];
 | |
|   UINT32                           Idtr[2];
 | |
|   UINT32                           Eip;
 | |
|   UINT32                           Gs;
 | |
|   UINT32                           Fs;
 | |
|   UINT32                           Es;
 | |
|   UINT32                           Ds;
 | |
|   UINT32                           Cs;
 | |
|   UINT32                           Ss;
 | |
|   UINT32                           Cr0;
 | |
|   UINT32                           Cr1; ///< Reserved
 | |
|   UINT32                           Cr2;
 | |
|   UINT32                           Cr3;
 | |
|   UINT32                           Cr4;
 | |
|   UINT32                           Edi;
 | |
|   UINT32                           Esi;
 | |
|   UINT32                           Ebp;
 | |
|   UINT32                           Esp;
 | |
|   UINT32                           Edx;
 | |
|   UINT32                           Ecx;
 | |
|   UINT32                           Ebx;
 | |
|   UINT32                           Eax;
 | |
| } DEBUG_DATA_IA32_SYSTEM_CONTEXT;
 | |
| 
 | |
| ///
 | |
| /// FXSAVE_STATE
 | |
| /// FP / MMX / XMM registers (see fxrstor instruction definition)
 | |
| ///
 | |
| typedef struct {
 | |
|   UINT16    Fcw;
 | |
|   UINT16    Fsw;
 | |
|   UINT16    Ftw;
 | |
|   UINT16    Opcode;
 | |
|   UINT32    Eip;
 | |
|   UINT16    Cs;
 | |
|   UINT16    Reserved1;
 | |
|   UINT32    DataOffset;
 | |
|   UINT16    Ds;
 | |
|   UINT8     Reserved2[2];
 | |
|   UINT32    Mxcsr;
 | |
|   UINT32    Mxcsr_Mask;
 | |
|   UINT8     St0Mm0[10];
 | |
|   UINT8     Reserved3[6];
 | |
|   UINT8     St1Mm1[10];
 | |
|   UINT8     Reserved4[6];
 | |
|   UINT8     St2Mm2[10];
 | |
|   UINT8     Reserved5[6];
 | |
|   UINT8     St3Mm3[10];
 | |
|   UINT8     Reserved6[6];
 | |
|   UINT8     St4Mm4[10];
 | |
|   UINT8     Reserved7[6];
 | |
|   UINT8     St5Mm5[10];
 | |
|   UINT8     Reserved8[6];
 | |
|   UINT8     St6Mm6[10];
 | |
|   UINT8     Reserved9[6];
 | |
|   UINT8     St7Mm7[10];
 | |
|   UINT8     Reserved10[6];
 | |
|   UINT8     Xmm0[16];
 | |
|   UINT8     Xmm1[16];
 | |
|   UINT8     Xmm2[16];
 | |
|   UINT8     Xmm3[16];
 | |
|   UINT8     Xmm4[16];
 | |
|   UINT8     Xmm5[16];
 | |
|   UINT8     Xmm6[16];
 | |
|   UINT8     Xmm7[16];
 | |
|   UINT8     Xmm8[16];
 | |
|   UINT8     Xmm9[16];
 | |
|   UINT8     Xmm10[16];
 | |
|   UINT8     Xmm11[16];
 | |
|   UINT8     Xmm12[16];
 | |
|   UINT8     Xmm13[16];
 | |
|   UINT8     Xmm14[16];
 | |
|   UINT8     Xmm15[16];
 | |
|   UINT8     Reserved11[6 * 16];
 | |
| } DEBUG_DATA_X64_FX_SAVE_STATE;
 | |
| 
 | |
| ///
 | |
| ///  x64 processor context definition
 | |
| ///
 | |
| typedef struct {
 | |
|   UINT64                          ExceptionData;
 | |
|   DEBUG_DATA_X64_FX_SAVE_STATE    FxSaveState;
 | |
|   UINT64                          Dr0;
 | |
|   UINT64                          Dr1;
 | |
|   UINT64                          Dr2;
 | |
|   UINT64                          Dr3;
 | |
|   UINT64                          Dr6;
 | |
|   UINT64                          Dr7;
 | |
|   UINT64                          Eflags;
 | |
|   UINT64                          Ldtr;
 | |
|   UINT64                          Tr;
 | |
|   UINT64                          Gdtr[2];
 | |
|   UINT64                          Idtr[2];
 | |
|   UINT64                          Eip;
 | |
|   UINT64                          Gs;
 | |
|   UINT64                          Fs;
 | |
|   UINT64                          Es;
 | |
|   UINT64                          Ds;
 | |
|   UINT64                          Cs;
 | |
|   UINT64                          Ss;
 | |
|   UINT64                          Cr0;
 | |
|   UINT64                          Cr1; ///< Reserved
 | |
|   UINT64                          Cr2;
 | |
|   UINT64                          Cr3;
 | |
|   UINT64                          Cr4;
 | |
|   UINT64                          Rdi;
 | |
|   UINT64                          Rsi;
 | |
|   UINT64                          Rbp;
 | |
|   UINT64                          Rsp;
 | |
|   UINT64                          Rdx;
 | |
|   UINT64                          Rcx;
 | |
|   UINT64                          Rbx;
 | |
|   UINT64                          Rax;
 | |
|   UINT64                          Cr8;
 | |
|   UINT64                          R8;
 | |
|   UINT64                          R9;
 | |
|   UINT64                          R10;
 | |
|   UINT64                          R11;
 | |
|   UINT64                          R12;
 | |
|   UINT64                          R13;
 | |
|   UINT64                          R14;
 | |
|   UINT64                          R15;
 | |
| } DEBUG_DATA_X64_SYSTEM_CONTEXT;
 | |
| 
 | |
| #pragma pack()
 | |
| 
 | |
| #endif
 |