/** @file\r
- Include file that supportes Framework extension to the UEFI 2.0 spec.\r
-\r
- This include file must only contain things defined in the Framework\r
- specifications. If a code construct is defined in the Framework specification\r
- it must be included by this include file.\r
-\r
- Copyright (c) 2007, Intel Corporation\r
- All rights reserved. This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
- Module Name: FrameworkDxeCis.h\r
+ Include file for definitions in the Intel Platform Innovation Framework for EFI\r
+ Driver Execution Environment Core Interface Specification (DXE CIS) Version 0.91.\r
+\r
+Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution. \r
+The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php. \r
+ \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
**/\r
\r
-#ifndef _FRAMEWORK_DXE_CIS_H_\r
-#define _FRAMEWORK_DXE_CIS_H_\r
+#ifndef _DXECIS_H_\r
+#define _DXECIS_H_\r
\r
-#include <PiDxe.h>\r
-#include <Framework/StatusCode.h>\r
#include <Protocol/StatusCode.h>\r
\r
-//\r
-// Function prototype for invoking a function on an Application Processor\r
-// Used by both the SMM infrastructure and the MP Services Protocol\r
-//\r
+/**\r
+ Functions of this type are used with the Framework MP Services Protocol and\r
+ the SMM Services Table to execute a procedure on enabled APs. The context \r
+ the AP should use durng execution is specified by Buffer.\r
+ \r
+ @param[in] Buffer The pointer to the procedure's argument.\r
+\r
+**/\r
typedef\r
VOID\r
-(EFIAPI *EFI_AP_PROCEDURE) (\r
- IN VOID *Buffer\r
+(EFIAPI *FRAMEWORK_EFI_AP_PROCEDURE)(\r
+ IN VOID *Buffer\r
);\r
\r
+///\r
+/// The Framework EFI Runtime Services Table as an extension to the EFI 1.10 Runtime Services Table.\r
+///\r
typedef struct {\r
- EFI_TABLE_HEADER Hdr;\r
-\r
+ //\r
+ // Table header for the Framework EFI Runtime Services Table\r
+ //\r
+ EFI_TABLE_HEADER Hdr;\r
//\r
// Time services\r
//\r
- EFI_GET_TIME GetTime;\r
- EFI_SET_TIME SetTime;\r
- EFI_GET_WAKEUP_TIME GetWakeupTime;\r
- EFI_SET_WAKEUP_TIME SetWakeupTime;\r
-\r
+ EFI_GET_TIME GetTime;\r
+ EFI_SET_TIME SetTime;\r
+ EFI_GET_WAKEUP_TIME GetWakeupTime;\r
+ EFI_SET_WAKEUP_TIME SetWakeupTime;\r
//\r
// Virtual memory services\r
//\r
- EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;\r
- EFI_CONVERT_POINTER ConvertPointer;\r
-\r
+ EFI_SET_VIRTUAL_ADDRESS_MAP SetVirtualAddressMap;\r
+ EFI_CONVERT_POINTER ConvertPointer;\r
//\r
// Variable services\r
//\r
- EFI_GET_VARIABLE GetVariable;\r
- EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;\r
- EFI_SET_VARIABLE SetVariable;\r
-\r
+ EFI_GET_VARIABLE GetVariable;\r
+ EFI_GET_NEXT_VARIABLE_NAME GetNextVariableName;\r
+ EFI_SET_VARIABLE SetVariable;\r
//\r
// Misc\r
//\r
- EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;\r
- EFI_RESET_SYSTEM ResetSystem;\r
+ EFI_GET_NEXT_HIGH_MONO_COUNT GetNextHighMonotonicCount;\r
+ EFI_RESET_SYSTEM ResetSystem;\r
+ ///\r
+ /// A Framework extension to the EFI 1.10 runtime table.\r
+ /// It was moved to a protocol to avoid conflict with UEFI 2.0.\r
+ ///\r
+ EFI_REPORT_STATUS_CODE ReportStatusCode;\r
+} FRAMEWORK_EFI_RUNTIME_SERVICES;\r
+\r
+///\r
+/// The Framework EFI Boot Services Table. Complies with the DxeCis specification.\r
+///\r
+typedef struct {\r
+ ///\r
+ /// The table header for the EFI Boot Services Table.\r
+ ///\r
+ EFI_TABLE_HEADER Hdr;\r
\r
//\r
- // Framework extension to UEFI 2.0 runtime table\r
- // It was moved to a protocol to not conflict with UEFI 2.0\r
+ // Task Priority Services\r
//\r
- EFI_REPORT_STATUS_CODE ReportStatusCode;\r
-} FRAMEWORK_EFI_RUNTIME_SERVICES;\r
+ EFI_RAISE_TPL RaiseTPL;\r
+ EFI_RESTORE_TPL RestoreTPL;\r
\r
-#define EFI_EVENT_RUNTIME_CONTEXT 0x20000000\r
-#define EFI_EVENT_NOTIFY_SIGNAL_ALL 0x00000400\r
-#define EFI_EVENT_SIGNAL_READY_TO_BOOT 0x00000203\r
-#define EFI_EVENT_SIGNAL_LEGACY_BOOT 0x00000204\r
+ //\r
+ // Memory Services\r
+ //\r
+ EFI_ALLOCATE_PAGES AllocatePages;\r
+ EFI_FREE_PAGES FreePages;\r
+ EFI_GET_MEMORY_MAP GetMemoryMap;\r
+ EFI_ALLOCATE_POOL AllocatePool;\r
+ EFI_FREE_POOL FreePool;\r
\r
+ //\r
+ // Event & Timer Services\r
+ //\r
+ EFI_CREATE_EVENT CreateEvent;\r
+ EFI_SET_TIMER SetTimer;\r
+ EFI_WAIT_FOR_EVENT WaitForEvent;\r
+ EFI_SIGNAL_EVENT SignalEvent;\r
+ EFI_CLOSE_EVENT CloseEvent;\r
+ EFI_CHECK_EVENT CheckEvent;\r
\r
-typedef struct {\r
- EFI_DEVICE_PATH_PROTOCOL Header;\r
- EFI_GUID TianoSpecificDevicePath;\r
- UINT32 Type;\r
-} TIANO_DEVICE_PATH;\r
+ //\r
+ // Protocol Handler Services\r
+ //\r
+ EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;\r
+ EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;\r
+ EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;\r
+ EFI_HANDLE_PROTOCOL HandleProtocol;\r
+ EFI_HANDLE_PROTOCOL PcHandleProtocol;\r
+ EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;\r
+ EFI_LOCATE_HANDLE LocateHandle;\r
+ EFI_LOCATE_DEVICE_PATH LocateDevicePath;\r
+ EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;\r
\r
-#define TIANO_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE 0x01\r
-typedef struct {\r
- TIANO_DEVICE_PATH Tiano;\r
- EFI_GUID NameGuid;\r
-} FRAMEWORK_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
+ //\r
+ // Image Services\r
+ //\r
+ EFI_IMAGE_LOAD LoadImage;\r
+ EFI_IMAGE_START StartImage;\r
+ EFI_EXIT Exit;\r
+ EFI_IMAGE_UNLOAD UnloadImage;\r
+ EFI_EXIT_BOOT_SERVICES ExitBootServices;\r
+\r
+ //\r
+ // Miscellaneous Services\r
+ //\r
+ EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;\r
+ EFI_STALL Stall;\r
+ EFI_SET_WATCHDOG_TIMER SetWatchdogTimer;\r
+\r
+ //\r
+ // DriverSupport Services\r
+ //\r
+ EFI_CONNECT_CONTROLLER ConnectController;\r
+ EFI_DISCONNECT_CONTROLLER DisconnectController;\r
+\r
+ //\r
+ // Open and Close Protocol Services\r
+ //\r
+ EFI_OPEN_PROTOCOL OpenProtocol;\r
+ EFI_CLOSE_PROTOCOL CloseProtocol;\r
+ EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;\r
+\r
+ //\r
+ // Library Services\r
+ //\r
+ EFI_PROTOCOLS_PER_HANDLE ProtocolsPerHandle;\r
+ EFI_LOCATE_HANDLE_BUFFER LocateHandleBuffer;\r
+ EFI_LOCATE_PROTOCOL LocateProtocol;\r
+ EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;\r
+ EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;\r
\r
+ //\r
+ // 32-bit CRC Services\r
+ //\r
+ EFI_CALCULATE_CRC32 CalculateCrc32;\r
+\r
+ //\r
+ // Miscellaneous Services\r
+ //\r
+ EFI_COPY_MEM CopyMem;\r
+ EFI_SET_MEM SetMem;\r
+} FRAMEWORK_EFI_BOOT_SERVICES;\r
+\r
+#define EFI_EVENT_RUNTIME_CONTEXT 0x20000000\r
+#define EFI_EVENT_NOTIFY_SIGNAL_ALL 0x00000400\r
+#define EFI_EVENT_SIGNAL_READY_TO_BOOT 0x00000203\r
+#define EFI_EVENT_SIGNAL_LEGACY_BOOT 0x00000204\r
\r
#endif\r
+\r