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