]> git.proxmox.com Git - mirror_edk2.git/blob - IntelFrameworkPkg/Include/Framework/DxeCis.h
4c5fc43c15dbc4875449bbda9db26da670d7a09d
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / DxeCis.h
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