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