/** @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
