]> git.proxmox.com Git - mirror_edk2.git/blob - UefiCpuPkg/Library/CpuExceptionHandlerLib/Ia32/ArchInterruptDefs.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / UefiCpuPkg / Library / CpuExceptionHandlerLib / Ia32 / ArchInterruptDefs.h
1 /** @file
2 Ia32 arch definition for CPU Exception Handler Library.
3
4 Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 **/
8
9 #ifndef _ARCH_CPU_INTERRUPT_DEFS_H_
10 #define _ARCH_CPU_INTERRUPT_DEFS_H_
11
12 typedef struct {
13 EFI_SYSTEM_CONTEXT_IA32 SystemContext;
14 BOOLEAN ExceptionDataFlag;
15 UINTN OldIdtHandler;
16 } EXCEPTION_HANDLER_CONTEXT;
17
18 //
19 // Register Structure Definitions
20 //
21 typedef struct {
22 EFI_STATUS_CODE_DATA Header;
23 EFI_SYSTEM_CONTEXT_IA32 SystemContext;
24 } CPU_STATUS_CODE_TEMPLATE;
25
26 typedef struct {
27 SPIN_LOCK SpinLock;
28 UINT32 ApicId;
29 UINT32 Attribute;
30 UINTN ExceptonHandler;
31 UINTN OldFlags;
32 UINTN OldCs;
33 UINTN OldIp;
34 UINTN ExceptionData;
35 UINT8 HookAfterStubHeaderCode[HOOKAFTER_STUB_SIZE];
36 } RESERVED_VECTORS_DATA;
37
38 #define CPU_TSS_DESC_SIZE \
39 (sizeof (IA32_TSS_DESCRIPTOR) * \
40 (FixedPcdGetSize (PcdCpuStackSwitchExceptionList) + 1))
41
42 #define CPU_TSS_SIZE \
43 (sizeof (IA32_TASK_STATE_SEGMENT) * \
44 (FixedPcdGetSize (PcdCpuStackSwitchExceptionList) + 1))
45
46 #endif