]> git.proxmox.com Git - mirror_edk2.git/blob - UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ArchInterruptDefs.h
UefiCpuPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / UefiCpuPkg / Library / CpuExceptionHandlerLib / X64 / ArchInterruptDefs.h
1 /** @file
2 X64 arch definition for CPU Exception Handler Library.
3
4 Copyright (c) 2013, 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_X64 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_X64 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 OldSs;
32 UINTN OldSp;
33 UINTN OldFlags;
34 UINTN OldCs;
35 UINTN OldIp;
36 UINTN ExceptionData;
37 UINT8 HookAfterStubHeaderCode[HOOKAFTER_STUB_SIZE];
38 } RESERVED_VECTORS_DATA;
39
40 #define CPU_TSS_DESC_SIZE sizeof (IA32_TSS_DESCRIPTOR)
41 #define CPU_TSS_SIZE sizeof (IA32_TASK_STATE_SEGMENT)
42
43 #endif