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