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