]>
git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Library/PeiServicesTablePointerLibKr7/PeiServicesTablePointer.c
2 PEI Services Table Pointer Library implementation for IPF that uses Kernel
3 Register 7 to store the pointer.
5 Copyright (c) 2006 - 2007, Intel Corporation.<BR>
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
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.
17 #include <Library/BaseLib.h>
18 #include <Library/DebugLib.h>
21 The function returns the pointer to PeiServices.
23 The function returns the pointer to PeiServices.
24 It will ASSERT() if the pointer to PeiServices is NULL.
26 @return The pointer to PeiServices.
31 GetPeiServicesTablePointer (
35 EFI_PEI_SERVICES
**PeiServices
;
37 PeiServices
= (EFI_PEI_SERVICES
**)(UINTN
)AsmReadKr7 ();
38 ASSERT (PeiServices
!= NULL
);
43 The constructor function caches the pointer to PEI services.
45 The constructor function caches the pointer to PEI services.
46 It will always return EFI_SUCCESS.
48 @param FfsHeader Pointer to FFS header the loaded driver.
49 @param PeiServices Pointer to the PEI services.
51 @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.
56 PeiServicesTablePointerLibConstructor (
57 IN EFI_PEI_FILE_HANDLE
*FfsHeader
,
58 IN EFI_PEI_SERVICES
**PeiServices
61 AsmWriteKr7 ((UINT64
)(UINTN
)PeiServices
);
66 The function set the pointer of PEI services immediately preceding the IDT table
67 according to PI specification.
69 @param PeiServices The address of PeiServices pointer.
73 SetPeiServicesTablePointer (
74 EFI_PEI_SERVICES
** PeiServicesTablePointer
77 AsmWriteKr7 ((UINT64
)(UINTN
)PeiServicesTablePointer
);