summaryrefslogtreecommitdiff
path: root/Silicon/BroxtonSoC/BroxtonSiPkg/NorthCluster/Include/Library/PeiSaPolicyLib.h
blob: 3a83ceab1c42d181617287adebbd4a68479e049a (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/** @file
  Prototype of the PeiSaPolicy library.

  Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>

  This program and the accompanying materials
  are licensed and made available under the terms and conditions of the BSD License
  which accompanies this distribution.  The full text of the license may be found at
  http://opensource.org/licenses/bsd-license.php.

  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

**/

#ifndef _PEI_SA_POLICY_LIB_H_
#define _PEI_SA_POLICY_LIB_H_

#include <Ppi/SaPolicy.h>
#include <Library/ConfigBlockLib.h>
#include <Library/BaseMemoryLib.h>
#include <SaRegs.h>


/**
  Creates the Pre Mem Config Blocks for SA Policy.
  It allocates and zero out buffer, and fills in the Intel default settings.

  @param[in, out] SiSaPolicyPpi           The pointer to get SI/SA Policy PPI instance.

  @retval         EFI_SUCCESS             The policy default is initialized.
  @retval         EFI_OUT_OF_RESOURCES    Insufficient resources to create buffer.

**/
EFI_STATUS
EFIAPI
SaCreatePreMemConfigBlocks(
  IN OUT  SI_SA_POLICY_PPI          **SiSaPolicyPpi
  );

/**
  Creates the Config Blocks for SA Policy.
  It allocates and zero out buffer, and fills in the Intel default settings.

  @param[in, out] SiSaPolicyPpi          The pointer to get SI/SA Policy PPI instance.

  @retval         EFI_SUCCESS            The policy default is initialized.
  @retval         EFI_OUT_OF_RESOURCES   Insufficient resources to create buffer.

**/
EFI_STATUS
EFIAPI
CreateConfigBlocks (
  IN OUT  SI_SA_POLICY_PPI          **SiSaPolicyPpi
  );

/**
  Install PPI SiSaPolicyPpi.
  While installed, RC assumes the Policy is ready and finalized. So please update and override
  any setting before calling this function.

  @param[in] SiSaPolicyPpi              Pointer of policy structure.

  @retval    EFI_SUCCESS                The policy is installed.
  @retval    EFI_OUT_OF_RESOURCES       Insufficient resources to create buffer.

**/
EFI_STATUS
EFIAPI
SiSaInstallPolicyPpi (
  IN  SI_SA_POLICY_PPI              *SiSaPolicyPpi
  );

/**
  SaInstallPreMemPolicyPpi installs SaPolicyPpi.
  While installed, RC assumes the Policy is ready and finalized. So please update and override
  any setting before calling this function.

  @param[in] SaPreMemPolicyPpi         The pointer to SA PREMEM Policy PPI instance.

  @retval    EFI_SUCCESS               The policy is installed.
  @retval    EFI_OUT_OF_RESOURCES      Insufficient resources to create buffer.

**/
EFI_STATUS
EFIAPI
SaInstallPreMemPolicyPpi (
  IN  SI_SA_POLICY_PPI             *SaPolicyPpi
  );

#endif // _PEI_SA_POLICY_LIBRARY_H_