]>
Commit | Line | Data |
---|---|---|
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 |
8 | Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r | |
9d510e61 | 9 | SPDX-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 | 25 | EFI_STATUS\r |
26 | EFIAPI\r | |
27 | PeiGetBootMode (\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 | 58 | EFI_STATUS\r |
59 | EFIAPI\r | |
60 | PeiSetBootMode (\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 |