#include <Library/DebugLib.h>\r
\r
/**\r
- The function returns the pointer to PeiServices.\r
+ Retrieves the cached value of the PEI Services Table pointer.\r
\r
- The function returns the pointer to PeiServices.\r
- It will ASSERT() if the pointer to PeiServices is NULL.\r
+ Returns the cached value of the PEI Services Table pointer in a CPU specific manner \r
+ as specified in the CPU binding section of the Platform Initialization Pre-EFI \r
+ Initialization Core Interface Specification.\r
+ \r
+ If the cached PEI Services Table pointer is NULL, then ASSERT().\r
\r
@return The pointer to PeiServices.\r
\r
**/\r
-EFI_PEI_SERVICES **\r
+CONST EFI_PEI_SERVICES **\r
EFIAPI\r
GetPeiServicesTablePointer (\r
VOID\r
)\r
{\r
- EFI_PEI_SERVICES **PeiServices;\r
+ CONST EFI_PEI_SERVICES **PeiServices;\r
\r
- PeiServices = (EFI_PEI_SERVICES **)(UINTN)AsmReadKr7 ();\r
+ PeiServices = (CONST EFI_PEI_SERVICES **)(UINTN)AsmReadKr7 ();\r
ASSERT (PeiServices != NULL);\r
return PeiServices;\r
}\r
\r
-/**\r
- The constructor function caches the pointer to PEI services.\r
-\r
- The constructor function caches the pointer to PEI services.\r
- It will always return EFI_SUCCESS.\r
-\r
- @param FfsHeader Pointer to FFS header the loaded driver.\r
- @param PeiServices Pointer to the PEI services.\r
-\r
- @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-PeiServicesTablePointerLibConstructor (\r
- IN EFI_PEI_FILE_HANDLE *FfsHeader,\r
- IN EFI_PEI_SERVICES **PeiServices\r
- )\r
-{\r
- AsmWriteKr7 ((UINT64)(UINTN)PeiServices);\r
- return EFI_SUCCESS;\r
-}\r
\r
/**\r
+ Caches a pointer PEI Services Table. \r
+ \r
+ Caches the pointer to the PEI Services Table specified by PeiServicesTablePointer \r
+ in a CPU specific manner as specified in the CPU binding section of the Platform Initialization \r
+ Pre-EFI Initialization Core Interface Specification. \r
The function set the pointer of PEI services in KR7 register \r
according to PI specification.\r
\r
+ If PeiServicesTablePointer is NULL, then ASSERT().\r
+ \r
@param PeiServicesTablePointer The address of PeiServices pointer.\r
**/\r
VOID\r
EFIAPI\r
SetPeiServicesTablePointer (\r
- IN EFI_PEI_SERVICES ** PeiServicesTablePointer\r
+ IN CONST EFI_PEI_SERVICES ** PeiServicesTablePointer\r
)\r
{\r
+ ASSERT (PeiServicesTablePointer != NULL);\r
AsmWriteKr7 ((UINT64)(UINTN)PeiServicesTablePointer);\r
}\r
\r