DxeCis.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. /** @file
  2. Include file for definitions in the Intel Platform Innovation Framework for EFI
  3. Driver Execution Environment Core Interface Specification (DXE CIS) Version 0.91.
  4. Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
  5. SPDX-License-Identifier: BSD-2-Clause-Patent
  6. **/
  7. #ifndef _DXECIS_H_
  8. #define _DXECIS_H_
  9. #include <Protocol/StatusCode.h>
  10. /**
  11. Functions of this type are used with the Framework MP Services Protocol and
  12. the SMM Services Table to execute a procedure on enabled APs. The context
  13. the AP should use durng execution is specified by Buffer.
  14. @param[in] Buffer The pointer to the procedure's argument.
  15. **/
  16. typedef
  17. VOID
  18. (EFIAPI *FRAMEWORK_EFI_AP_PROCEDURE)(
  19. IN VOID *Buffer
  20. );
  21. ///
  22. /// The Framework EFI Runtime Services Table as an extension to the EFI 1.10 Runtime Services Table.
  23. ///
  24. typedef struct {
  25. //
  26. // Table header for the Framework EFI Runtime Services Table
  27. //
  28. EFI_TABLE_HEADER Hdr;
  29. //
  30. // Time services
  31. //
  32. EFI_GET_TIME GetTime;
  33. EFI_SET_TIME SetTime;
  34. EFI_GET_WAKEUP_TIME GetWakeupTime;
  35. EFI_SET_WAKEUP_TIME SetWakeupTime;
  36. //
  37. // Virtual memory services
  38. //
  39. EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;
  40. EFI_CONVERT_POINTER ConvertPointer;
  41. //
  42. // Variable services
  43. //
  44. EFI_GET_VARIABLE GetVariable;
  45. EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;
  46. EFI_SET_VARIABLE SetVariable;
  47. //
  48. // Misc
  49. //
  50. EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;
  51. EFI_RESET_SYSTEM ResetSystem;
  52. ///
  53. /// A Framework extension to the EFI 1.10 runtime table.
  54. /// It was moved to a protocol to avoid conflict with UEFI 2.0.
  55. ///
  56. EFI_REPORT_STATUS_CODE ReportStatusCode;
  57. } FRAMEWORK_EFI_RUNTIME_SERVICES;
  58. ///
  59. /// The Framework EFI Boot Services Table. Complies with the DxeCis specification.
  60. ///
  61. typedef struct {
  62. ///
  63. /// The table header for the EFI Boot Services Table.
  64. ///
  65. EFI_TABLE_HEADER Hdr;
  66. //
  67. // Task Priority Services
  68. //
  69. EFI_RAISE_TPL RaiseTPL;
  70. EFI_RESTORE_TPL RestoreTPL;
  71. //
  72. // Memory Services
  73. //
  74. EFI_ALLOCATE_PAGES AllocatePages;
  75. EFI_FREE_PAGES FreePages;
  76. EFI_GET_MEMORY_MAP GetMemoryMap;
  77. EFI_ALLOCATE_POOL AllocatePool;
  78. EFI_FREE_POOL FreePool;
  79. //
  80. // Event & Timer Services
  81. //
  82. EFI_CREATE_EVENT CreateEvent;
  83. EFI_SET_TIMER SetTimer;
  84. EFI_WAIT_FOR_EVENT WaitForEvent;
  85. EFI_SIGNAL_EVENT SignalEvent;
  86. EFI_CLOSE_EVENT CloseEvent;
  87. EFI_CHECK_EVENT CheckEvent;
  88. //
  89. // Protocol Handler Services
  90. //
  91. EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
  92. EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
  93. EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
  94. EFI_HANDLE_PROTOCOL HandleProtocol;
  95. EFI_HANDLE_PROTOCOL PcHandleProtocol;
  96. EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
  97. EFI_LOCATE_HANDLE LocateHandle;
  98. EFI_LOCATE_DEVICE_PATH LocateDevicePath;
  99. EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
  100. //
  101. // Image Services
  102. //
  103. EFI_IMAGE_LOAD LoadImage;
  104. EFI_IMAGE_START StartImage;
  105. EFI_EXIT Exit;
  106. EFI_IMAGE_UNLOAD UnloadImage;
  107. EFI_EXIT_BOOT_SERVICES ExitBootServices;
  108. //
  109. // Miscellaneous Services
  110. //
  111. EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
  112. EFI_STALL Stall;
  113. EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;
  114. //
  115. // DriverSupport Services
  116. //
  117. EFI_CONNECT_CONTROLLER ConnectController;
  118. EFI_DISCONNECT_CONTROLLER DisconnectController;
  119. //
  120. // Open and Close Protocol Services
  121. //
  122. EFI_OPEN_PROTOCOL OpenProtocol;
  123. EFI_CLOSE_PROTOCOL CloseProtocol;
  124. EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
  125. //
  126. // Library Services
  127. //
  128. EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;
  129. EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;
  130. EFI_LOCATE_PROTOCOL LocateProtocol;
  131. EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
  132. EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
  133. //
  134. // 32-bit CRC Services
  135. //
  136. EFI_CALCULATE_CRC32 CalculateCrc32;
  137. //
  138. // Miscellaneous Services
  139. //
  140. EFI_COPY_MEM CopyMem;
  141. EFI_SET_MEM SetMem;
  142. } FRAMEWORK_EFI_BOOT_SERVICES;
  143. #define EFI_EVENT_RUNTIME_CONTEXT 0x20000000
  144. #define EFI_EVENT_NOTIFY_SIGNAL_ALL 0x00000400
  145. #define EFI_EVENT_SIGNAL_READY_TO_BOOT 0x00000203
  146. #define EFI_EVENT_SIGNAL_LEGACY_BOOT 0x00000204
  147. #endif