ArchInterruptDefs.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /** @file
  2. X64 arch definition for CPU Exception Handler Library.
  3. Copyright (c) 2013, Intel Corporation. All rights reserved.<BR>
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #ifndef _ARCH_CPU_INTERRUPT_DEFS_H_
  7. #define _ARCH_CPU_INTERRUPT_DEFS_H_
  8. typedef struct {
  9. EFI_SYSTEM_CONTEXT_X64 SystemContext;
  10. BOOLEAN ExceptionDataFlag;
  11. UINTN OldIdtHandler;
  12. } EXCEPTION_HANDLER_CONTEXT;
  13. //
  14. // Register Structure Definitions
  15. //
  16. typedef struct {
  17. EFI_STATUS_CODE_DATA Header;
  18. EFI_SYSTEM_CONTEXT_X64 SystemContext;
  19. } CPU_STATUS_CODE_TEMPLATE;
  20. typedef struct {
  21. SPIN_LOCK SpinLock;
  22. UINT32 ApicId;
  23. UINT32 Attribute;
  24. UINTN ExceptonHandler;
  25. UINTN OldSs;
  26. UINTN OldSp;
  27. UINTN OldFlags;
  28. UINTN OldCs;
  29. UINTN OldIp;
  30. UINTN ExceptionData;
  31. UINT8 HookAfterStubHeaderCode[HOOKAFTER_STUB_SIZE];
  32. } RESERVED_VECTORS_DATA;
  33. #define CPU_TSS_DESC_SIZE sizeof (IA32_TSS_DESCRIPTOR)
  34. #define CPU_TSS_SIZE sizeof (IA32_TASK_STATE_SEGMENT)
  35. #endif