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