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 5 Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR> 6 This program and the accompanying materials are licensed and made available under 7 the terms and conditions of the BSD License that accompanies this distribution. 8 The full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php. 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 16 #ifndef _DXECIS_H_ 17 #define _DXECIS_H_ 18 19 #include <Protocol/StatusCode.h> 20 21 /** 22 Functions of this type are used with the Framework MP Services Protocol and 23 the SMM Services Table to execute a procedure on enabled APs. The context 24 the AP should use durng execution is specified by Buffer. 25 26 @param[in] Buffer The pointer to the procedure's argument. 27 28 **/ 29 typedef 30 VOID 31 (EFIAPI *FRAMEWORK_EFI_AP_PROCEDURE)( 32 IN VOID *Buffer 33 ); 34 35 /// 36 /// The Framework EFI Runtime Services Table as an extension to the EFI 1.10 Runtime Services Table. 37 /// 38 typedef struct { 39 // 40 // Table header for the Framework EFI Runtime Services Table 41 // 42 EFI_TABLE_HEADER Hdr; 43 // 44 // Time services 45 // 46 EFI_GET_TIME GetTime; 47 EFI_SET_TIME SetTime; 48 EFI_GET_WAKEUP_TIME GetWakeupTime; 49 EFI_SET_WAKEUP_TIME SetWakeupTime; 50 // 51 // Virtual memory services 52 // 53 EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap; 54 EFI_CONVERT_POINTER ConvertPointer; 55 // 56 // Variable services 57 // 58 EFI_GET_VARIABLE GetVariable; 59 EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName; 60 EFI_SET_VARIABLE SetVariable; 61 // 62 // Misc 63 // 64 EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount; 65 EFI_RESET_SYSTEM ResetSystem; 66 /// 67 /// A Framework extension to the EFI 1.10 runtime table. 68 /// It was moved to a protocol to avoid conflict with UEFI 2.0. 69 /// 70 EFI_REPORT_STATUS_CODE ReportStatusCode; 71 } FRAMEWORK_EFI_RUNTIME_SERVICES; 72 73 /// 74 /// The Framework EFI Boot Services Table. Complies with the DxeCis specification. 75 /// 76 typedef struct { 77 /// 78 /// The table header for the EFI Boot Services Table. 79 /// 80 EFI_TABLE_HEADER Hdr; 81 82 // 83 // Task Priority Services 84 // 85 EFI_RAISE_TPL RaiseTPL; 86 EFI_RESTORE_TPL RestoreTPL; 87 88 // 89 // Memory Services 90 // 91 EFI_ALLOCATE_PAGES AllocatePages; 92 EFI_FREE_PAGES FreePages; 93 EFI_GET_MEMORY_MAP GetMemoryMap; 94 EFI_ALLOCATE_POOL AllocatePool; 95 EFI_FREE_POOL FreePool; 96 97 // 98 // Event & Timer Services 99 // 100 EFI_CREATE_EVENT CreateEvent; 101 EFI_SET_TIMER SetTimer; 102 EFI_WAIT_FOR_EVENT WaitForEvent; 103 EFI_SIGNAL_EVENT SignalEvent; 104 EFI_CLOSE_EVENT CloseEvent; 105 EFI_CHECK_EVENT CheckEvent; 106 107 // 108 // Protocol Handler Services 109 // 110 EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface; 111 EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface; 112 EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface; 113 EFI_HANDLE_PROTOCOL HandleProtocol; 114 EFI_HANDLE_PROTOCOL PcHandleProtocol; 115 EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify; 116 EFI_LOCATE_HANDLE LocateHandle; 117 EFI_LOCATE_DEVICE_PATH LocateDevicePath; 118 EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable; 119 120 // 121 // Image Services 122 // 123 EFI_IMAGE_LOAD LoadImage; 124 EFI_IMAGE_START StartImage; 125 EFI_EXIT Exit; 126 EFI_IMAGE_UNLOAD UnloadImage; 127 EFI_EXIT_BOOT_SERVICES ExitBootServices; 128 129 // 130 // Miscellaneous Services 131 // 132 EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount; 133 EFI_STALL Stall; 134 EFI_SET_WATCHDOG_TIMER SetWatchdogTimer; 135 136 // 137 // DriverSupport Services 138 // 139 EFI_CONNECT_CONTROLLER ConnectController; 140 EFI_DISCONNECT_CONTROLLER DisconnectController; 141 142 // 143 // Open and Close Protocol Services 144 // 145 EFI_OPEN_PROTOCOL OpenProtocol; 146 EFI_CLOSE_PROTOCOL CloseProtocol; 147 EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation; 148 149 // 150 // Library Services 151 // 152 EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle; 153 EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer; 154 EFI_LOCATE_PROTOCOL LocateProtocol; 155 EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces; 156 EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces; 157 158 // 159 // 32-bit CRC Services 160 // 161 EFI_CALCULATE_CRC32 CalculateCrc32; 162 163 // 164 // Miscellaneous Services 165 // 166 EFI_COPY_MEM CopyMem; 167 EFI_SET_MEM SetMem; 168 } FRAMEWORK_EFI_BOOT_SERVICES; 169 170 #define EFI_EVENT_RUNTIME_CONTEXT 0x20000000 171 #define EFI_EVENT_NOTIFY_SIGNAL_ALL 0x00000400 172 #define EFI_EVENT_SIGNAL_READY_TO_BOOT 0x00000203 173 #define EFI_EVENT_SIGNAL_LEGACY_BOOT 0x00000204 174 175 #endif 176 177