]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/PeiServicesTablePointerLibMm7/PeiServicesTablePointer.c
add ULL suffix to Long Long number.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / EdkIIGlueLib / Library / PeiServicesTablePointerLibMm7 / PeiServicesTablePointer.c
CommitLineData
3eb9473e 1/*++\r
2\r
3Copyright (c) 2004 - 2006, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
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
40 EFI_PEI_SERVICES **PeiServices;\r
c7f33ca4 41#if (PI_SPECIFICATION_VERSION >= 0x00010000)\r
42 IA32_DESCRIPTOR Idtr;\r
43#endif\r
3eb9473e 44\r
c7f33ca4 45#if (PI_SPECIFICATION_VERSION < 0x00010000)\r
3eb9473e 46 PeiServices = (EFI_PEI_SERVICES **)(UINTN)AsmReadMm7 ();\r
c7f33ca4 47#else\r
48 AsmReadIdtr (&Idtr);\r
49 PeiServices = (EFI_PEI_SERVICES **)(UINTN)(*(UINTN*)(Idtr.Base - sizeof (UINTN)));\r
50#endif\r
3eb9473e 51 ASSERT (PeiServices != NULL);\r
52 return PeiServices;\r
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