mirror of https://github.com/acidanthera/audk.git
to fill the gap between Framework and code to fix the bug #202405, #202419, #202418, #202435,#202437, #202439, #202440
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8817 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
fa70a2c4cc
commit
40038403ea
|
@ -68,6 +68,103 @@ typedef struct {
|
|||
EFI_REPORT_STATUS_CODE ReportStatusCode;
|
||||
} FRAMEWORK_EFI_RUNTIME_SERVICES;
|
||||
|
||||
///
|
||||
/// Framework EFI Boot Services Table which comply with DxeCis spec.
|
||||
///
|
||||
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
|
||||
|
|
|
@ -18,6 +18,24 @@
|
|||
|
||||
#include <PiPei.h>
|
||||
#include <Ppi/PciCfg.h>
|
||||
//
|
||||
// Framework PEI Specification Revision information
|
||||
//
|
||||
#define FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION 0
|
||||
#define FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION 91
|
||||
|
||||
///
|
||||
/// Inconsistent with specification here:
|
||||
/// In Framework Spec, PeiCis0.91, FRAMEWORK_PEI_SERVICES_SIGNATURE is defined as 0x5652455320494550. But
|
||||
/// to pass multiple tool chain, it is append a ULL.
|
||||
///
|
||||
//
|
||||
// PEI services signature and Revision defined in Framework PEI spec
|
||||
//
|
||||
#define FRAMEWORK_PEI_SERVICES_SIGNATURE 0x5652455320494550ULL
|
||||
#define FRAMEWORK_PEI_SERVICES_REVISION ((FRAMEWORK_PEI_SPECIFICATION_MAJOR_REVISION<<16) | (FRAMEWORK_PEI_SPECIFICATION_MINOR_REVISION))
|
||||
|
||||
|
||||
|
||||
typedef struct _FRAMEWORK_EFI_PEI_SERVICES FRAMEWORK_EFI_PEI_SERVICES;
|
||||
|
||||
|
@ -156,6 +174,7 @@ struct _FRAMEWORK_EFI_PEI_SERVICES {
|
|||
EFI_PEI_COPY_MEM CopyMem;
|
||||
EFI_PEI_SET_MEM SetMem;
|
||||
//
|
||||
// (the following interfaces are installed by publishing PEIM)
|
||||
// Status Code
|
||||
//
|
||||
EFI_PEI_REPORT_STATUS_CODE ReportStatusCode;
|
||||
|
@ -164,13 +183,29 @@ struct _FRAMEWORK_EFI_PEI_SERVICES {
|
|||
//
|
||||
EFI_PEI_RESET_SYSTEM ResetSystem;
|
||||
//
|
||||
// (the following interfaces are installed by publishing PEIM)
|
||||
//
|
||||
// I/O Abstractions
|
||||
//
|
||||
EFI_PEI_CPU_IO_PPI *CpuIo;
|
||||
EFI_PEI_PCI_CFG_PPI *PciCfg;
|
||||
};
|
||||
///
|
||||
/// Enumeration of reset types defined in Framework Spec PeiCis
|
||||
///
|
||||
typedef enum {
|
||||
///
|
||||
/// Used to induce a system-wide reset. This sets all circuitry within the
|
||||
/// system to its initial state. This type of reset is asynchronous to system
|
||||
/// operation and operates withgout regard to cycle boundaries. EfiColdReset
|
||||
/// is tantamount to a system power cycle.
|
||||
///
|
||||
EfiPeiResetCold,
|
||||
///
|
||||
/// Used to induce a system-wide initialization. The processors are set to their
|
||||
/// initial state, and pending cycles are not corrupted. If the system does
|
||||
/// not support this reset type, then an EfiResetCold must be performed.
|
||||
///
|
||||
EfiPeiResetWarm,
|
||||
} EFI_PEI_RESET_TYPE;
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ typedef struct _EFI_PEI_READ_ONLY_VARIABLE_PPI EFI_PEI_READ_ONLY_VARIABLE_PPI;
|
|||
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
|
||||
#define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004
|
||||
|
||||
|
||||
/**
|
||||
Get Variable value by Name and GUID pair
|
||||
|
||||
|
@ -104,8 +105,8 @@ EFI_STATUS
|
|||
/// variable services.
|
||||
///
|
||||
struct _EFI_PEI_READ_ONLY_VARIABLE_PPI {
|
||||
EFI_PEI_GET_VARIABLE PeiGetVariable; ///< A service to ascertain a given variable name.
|
||||
EFI_PEI_GET_NEXT_VARIABLE_NAME PeiGetNextVariableName; ///< A service to ascertain a variable based upon a given, known variable
|
||||
EFI_PEI_GET_VARIABLE GetVariable; ///< A service to ascertain a given variable name.
|
||||
EFI_PEI_GET_NEXT_VARIABLE_NAME GetNextVariableName; ///< A service to ascertain a variable based upon a given, known variable
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiReadOnlyVariablePpiGuid;
|
||||
|
|
Loading…
Reference in New Issue