]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Core/Pei/BootMode/BootMode.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Core / Pei / BootMode / BootMode.c
CommitLineData
615c6dd0 1/** @file\r
b1f6a7c6 2 This module provide function for ascertaining and updating the boot mode:\r
3 GetBootMode()\r
4 SetBootMode()\r
cfc8865f 5 See PI Specification volume I, chapter 9 Boot Paths for additional information\r
b1f6a7c6 6 on the boot mode.\r
d1102dba
LG
7\r
8Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
9d510e61 9SPDX-License-Identifier: BSD-2-Clause-Patent\r
192f6d4c 10\r
b1f6a7c6 11**/\r
192f6d4c 12\r
0d516397 13#include "PeiMain.h"\r
192f6d4c 14\r
b1f6a7c6 15/**\r
16 This service enables PEIMs to ascertain the present value of the boot mode.\r
192f6d4c 17\r
dc857d56 18 @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
b1f6a7c6 19 @param BootMode A pointer to contain the value of the boot mode.\r
192f6d4c 20\r
b1f6a7c6 21 @retval EFI_SUCCESS The boot mode was returned successfully.\r
22 @retval EFI_INVALID_PARAMETER BootMode is NULL.\r
192f6d4c 23\r
615c6dd0 24**/\r
192f6d4c 25EFI_STATUS\r
26EFIAPI\r
27PeiGetBootMode (\r
b1f6a7c6 28 IN CONST EFI_PEI_SERVICES **PeiServices,\r
d976bf31 29 IN OUT EFI_BOOT_MODE *BootMode\r
192f6d4c 30 )\r
192f6d4c 31{\r
1436aea4
MK
32 PEI_CORE_INSTANCE *PrivateData;\r
33 EFI_HOB_HANDOFF_INFO_TABLE *HandOffHob;\r
192f6d4c 34\r
35 if (BootMode == NULL) {\r
36 return EFI_INVALID_PARAMETER;\r
37 }\r
38\r
1436aea4 39 PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);\r
d1102dba 40\r
1436aea4 41 HandOffHob = (PrivateData->HobList.HandoffInformationTable);\r
192f6d4c 42\r
1436aea4 43 *BootMode = HandOffHob->BootMode;\r
d1102dba
LG
44\r
45 return EFI_SUCCESS;\r
192f6d4c 46}\r
47\r
b1f6a7c6 48/**\r
49 This service enables PEIMs to update the boot mode variable.\r
50\r
51\r
dc857d56 52 @param PeiServices An indirect pointer to the EFI_PEI_SERVICES table published by the PEI Foundation.\r
53 @param BootMode The value of the boot mode to set.\r
b1f6a7c6 54\r
dc857d56 55 @return EFI_SUCCESS The value was successfully updated\r
b1f6a7c6 56\r
57**/\r
192f6d4c 58EFI_STATUS\r
59EFIAPI\r
60PeiSetBootMode (\r
0c2b5da8 61 IN CONST EFI_PEI_SERVICES **PeiServices,\r
62 IN EFI_BOOT_MODE BootMode\r
192f6d4c 63 )\r
192f6d4c 64{\r
1436aea4
MK
65 PEI_CORE_INSTANCE *PrivateData;\r
66 EFI_HOB_HANDOFF_INFO_TABLE *HandOffHob;\r
192f6d4c 67\r
1436aea4 68 PrivateData = PEI_CORE_INSTANCE_FROM_PS_THIS (PeiServices);\r
192f6d4c 69\r
1436aea4 70 HandOffHob = (PrivateData->HobList.HandoffInformationTable);\r
d1102dba 71\r
192f6d4c 72 HandOffHob->BootMode = BootMode;\r
73\r
d1102dba 74 return EFI_SUCCESS;\r
192f6d4c 75}\r