]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/PeiServicesTablePointerLibMm7/PeiServicesTablePointer.c
Merge branch of PI tree to main trunk
[mirror_edk2.git] / MdePkg / Library / PeiServicesTablePointerLibMm7 / PeiServicesTablePointer.c
CommitLineData
9c41921b 1/** @file\r
2 PEI Services Table Pointer Library.\r
3\r
4 Copyright (c) 2006, Intel Corporation<BR>\r
5 All rights reserved. This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
12\r
13 Module Name: PeiServicesTablePointer.c\r
14\r
15**/\r
16\r
17\r
18#include <PiPei.h>\r
19\r
20\r
21#include <Library/PeiServicesTablePointerLib.h>\r
22#include <Library/BaseLib.h>\r
23#include <Library/DebugLib.h>\r
24\r
b0d803fe 25VOID\r
26EFIAPI\r
27SetPeiServicesTablePointer (\r
28 IN EFI_PEI_SERVICES **PeiServices\r
29 )\r
30{\r
31 AsmWriteMm7 ((UINT64)(UINTN)PeiServices);\r
32}\r
33\r
9c41921b 34/**\r
35 The function returns the pointer to PeiServices.\r
36\r
37 The function returns the pointer to PeiServices.\r
38 It will ASSERT() if the pointer to PeiServices is NULL.\r
39\r
40 @retval The pointer to PeiServices.\r
41\r
42**/\r
43EFI_PEI_SERVICES **\r
44EFIAPI\r
45GetPeiServicesTablePointer (\r
46 VOID\r
47 )\r
48{\r
49 EFI_PEI_SERVICES **PeiServices;\r
50\r
51 PeiServices = (EFI_PEI_SERVICES **)(UINTN)AsmReadMm7 ();\r
52 ASSERT (PeiServices != NULL);\r
53 return PeiServices;\r
54}\r
55\r
56/**\r
57 The constructor function caches the pointer to PEI services.\r
58\r
59 The constructor function caches the pointer to PEI services.\r
60 It will always return EFI_SUCCESS.\r
61\r
62 @param FfsHeader Pointer to FFS header the loaded driver.\r
63 @param PeiServices Pointer to the PEI services.\r
64\r
65 @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.\r
66\r
67**/\r
68EFI_STATUS\r
69EFIAPI\r
70PeiServicesTablePointerLibConstructor (\r
c6f4d4c9 71 IN EFI_PEI_FILE_HANDLE *FfsHeader,\r
9c41921b 72 IN EFI_PEI_SERVICES **PeiServices\r
73 )\r
74{\r
75 AsmWriteMm7 ((UINT64)(UINTN)PeiServices);\r
76 return EFI_SUCCESS;\r
77}\r