summaryrefslogtreecommitdiff
path: root/MdePkg/Library/PeiServicesTablePointerLibIdt/PeiServicesTablePointer.c
blob: 4c9b3d354142903d463d27328d5f6bd62e8b30f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*++

Copyright (c) 2006 Intel Corporation. All rights reserved
This software and associated documentation (if any) is furnished
under a license and may only be used or copied in accordance
with the terms of the license. Except as permitted by such
license, no part of this software or documentation may be
reproduced, stored in a retrieval system, or transmitted in any
form or by any means without the express written consent of
Intel Corporation.


Module Name:

  PeiServicesTablePointer.c

Abstract:

  PEI Services Table Pointer Library.
  
--*/

#include "InternalPeiServicesTablePointer.h"

/**
  
  The function returns the pointer to PeiServicee following
  PI1.0.
  
  For IA32, the four-bytes field immediately prior to new IDT
  base addres is used to save the EFI_PEI_SERVICES**.
  For x64, the eight-bytes field immediately prior to new IDT
  base addres is used to save the EFI_PEI_SERVICES**.

  @retval  The pointer to PeiServices.

**/
EFI_PEI_SERVICES **
EFIAPI
GetPeiServicesTablePointer (
  VOID
  )
{
  EFI_PEI_SERVICES  **PeiServices;

  PeiServices = (EFI_PEI_SERVICES **) AsmPeiSevicesTablePointer ();
  ASSERT (PeiServices != NULL);
  return PeiServices;
}