mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-25 14:44:28 +02:00
Add ARM specific CPU context to the Debug Support Protocol
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9101 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
97f8b30ceb
commit
05e3c7cce7
@ -5,7 +5,8 @@
|
|||||||
The DebugSupport protocol is used by source level debuggers to abstract the
|
The DebugSupport protocol is used by source level debuggers to abstract the
|
||||||
processor and handle context save and restore operations.
|
processor and handle context save and restore operations.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2009, Intel Corporation
|
Copyright (c) 2006 - 2009, Intel Corporation<BR>
|
||||||
|
Portions Copyright (c) 2008-2009 Apple Inc.<BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
which accompanies this distribution. The full text of the license may be found at
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
@ -471,14 +472,61 @@ typedef struct {
|
|||||||
UINT64 Ip;
|
UINT64 Ip;
|
||||||
} EFI_SYSTEM_CONTEXT_EBC;
|
} EFI_SYSTEM_CONTEXT_EBC;
|
||||||
|
|
||||||
///
|
|
||||||
/// Universal EFI_SYSTEM_CONTEXT definition
|
|
||||||
///
|
///
|
||||||
|
/// ARM processor exception types
|
||||||
|
///
|
||||||
|
#define EXCEPT_ARM_RESET 0
|
||||||
|
#define EXCEPT_ARM_UNDEFINED_INSTRUCTION 1
|
||||||
|
#define EXCEPT_ARM_SOFTWARE_INTERRUPT 2
|
||||||
|
#define EXCEPT_ARM_PREFETCH_ABORT 3
|
||||||
|
#define EXCEPT_ARM_DATA_ABORT 4
|
||||||
|
#define EXCEPT_ARM_RESERVED 5
|
||||||
|
#define EXCEPT_ARM_IRQ 6
|
||||||
|
#define EXCEPT_ARM_FIQ 7
|
||||||
|
|
||||||
|
///
|
||||||
|
/// For coding convenience, define the maximum valid ARM exception.
|
||||||
|
///
|
||||||
|
#define MAX_ARM_EXCEPTION EXCEPT_ARM_FIQ
|
||||||
|
|
||||||
|
///
|
||||||
|
/// ARM processor context definition
|
||||||
|
///
|
||||||
|
typedef struct {
|
||||||
|
UINT32 R0;
|
||||||
|
UINT32 R1;
|
||||||
|
UINT32 R2;
|
||||||
|
UINT32 R3;
|
||||||
|
UINT32 R4;
|
||||||
|
UINT32 R5;
|
||||||
|
UINT32 R6;
|
||||||
|
UINT32 R7;
|
||||||
|
UINT32 R8;
|
||||||
|
UINT32 R9;
|
||||||
|
UINT32 R10;
|
||||||
|
UINT32 R11;
|
||||||
|
UINT32 R12;
|
||||||
|
UINT32 SP;
|
||||||
|
UINT32 LR;
|
||||||
|
UINT32 PC;
|
||||||
|
UINT32 CPSR;
|
||||||
|
UINT32 DFSR;
|
||||||
|
UINT32 DFAR;
|
||||||
|
UINT32 IFSR;
|
||||||
|
UINT32 IFAR;
|
||||||
|
} EFI_SYSTEM_CONTEXT_ARM;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Universal EFI_SYSTEM_CONTEXT definition
|
||||||
|
///
|
||||||
typedef union {
|
typedef union {
|
||||||
EFI_SYSTEM_CONTEXT_EBC *SystemContextEbc;
|
EFI_SYSTEM_CONTEXT_EBC *SystemContextEbc;
|
||||||
EFI_SYSTEM_CONTEXT_IA32 *SystemContextIa32;
|
EFI_SYSTEM_CONTEXT_IA32 *SystemContextIa32;
|
||||||
EFI_SYSTEM_CONTEXT_X64 *SystemContextX64;
|
EFI_SYSTEM_CONTEXT_X64 *SystemContextX64;
|
||||||
EFI_SYSTEM_CONTEXT_IPF *SystemContextIpf;
|
EFI_SYSTEM_CONTEXT_IPF *SystemContextIpf;
|
||||||
|
EFI_SYSTEM_CONTEXT_ARM *SystemContextArm;
|
||||||
} EFI_SYSTEM_CONTEXT;
|
} EFI_SYSTEM_CONTEXT;
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -515,10 +563,11 @@ VOID
|
|||||||
/// Machine type definition
|
/// Machine type definition
|
||||||
///
|
///
|
||||||
typedef enum {
|
typedef enum {
|
||||||
IsaIa32 = IMAGE_FILE_MACHINE_I386, ///< 0x014C
|
IsaIa32 = IMAGE_FILE_MACHINE_I386, ///< 0x014C
|
||||||
IsaX64 = IMAGE_FILE_MACHINE_X64, ///< 0x8664
|
IsaX64 = IMAGE_FILE_MACHINE_X64, ///< 0x8664
|
||||||
IsaIpf = IMAGE_FILE_MACHINE_IA64, ///< 0x0200
|
IsaIpf = IMAGE_FILE_MACHINE_IA64, ///< 0x0200
|
||||||
IsaEbc = IMAGE_FILE_MACHINE_EBC ///< 0x0EBC
|
IsaEbc = IMAGE_FILE_MACHINE_EBC, ///< 0x0EBC
|
||||||
|
IsaArm = IMAGE_FILE_MACHINE_ARMTHUMB_MIXED ///< 0x01c2
|
||||||
} EFI_INSTRUCTION_SET_ARCHITECTURE;
|
} EFI_INSTRUCTION_SET_ARCHITECTURE;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user