1 /** @file 2 FrontPage routines to handle the callbacks and browser calls 3 4 Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 16 #ifndef _BDS_MODULE_H_ 17 #define _BDS_MODULE_H_ 18 19 #include <IndustryStandard/SmBios.h> 20 21 #include <Guid/MdeModuleHii.h> 22 #include <Guid/StatusCodeDataTypeId.h> 23 24 #include <Protocol/Smbios.h> 25 #include <Protocol/HiiConfigAccess.h> 26 27 #include <Library/PrintLib.h> 28 #include <Library/DebugLib.h> 29 #include <Library/BaseMemoryLib.h> 30 #include <Library/UefiBootServicesTableLib.h> 31 #include <Library/UefiLib.h> 32 #include <Library/MemoryAllocationLib.h> 33 #include <Library/ReportStatusCodeLib.h> 34 #include <Library/UefiRuntimeServicesTableLib.h> 35 #include <Library/HiiLib.h> 36 #include <Library/DevicePathLib.h> 37 #include <Library/UefiHiiServicesLib.h> 38 #include <Library/UefiBootManagerLib.h> 39 40 #pragma pack(1) 41 42 /// 43 /// HII specific Vendor Device Path definition. 44 /// 45 typedef struct { 46 VENDOR_DEVICE_PATH VendorDevicePath; 47 EFI_DEVICE_PATH_PROTOCOL End; 48 } HII_VENDOR_DEVICE_PATH; 49 50 #pragma pack() 51 52 53 // 54 //The interface functions related to the Setup Browser Reset Reminder feature 55 // 56 /** 57 Enable the setup browser reset reminder feature. 58 This routine is used in a platform tip. If the platform policy needs the feature, use the routine to enable it. 59 60 **/ 61 VOID 62 EFIAPI 63 EnableResetReminderFeature ( 64 VOID 65 ); 66 67 /** 68 Disable the setup browser reset reminder feature. 69 This routine is used in a platform tip. If the platform policy does not want the feature, use the routine to disable it. 70 71 **/ 72 VOID 73 EFIAPI 74 DisableResetReminderFeature ( 75 VOID 76 ); 77 78 /** 79 Record the info that a reset is required. 80 A module boolean variable is used to record whether a reset is required. 81 82 **/ 83 VOID 84 EFIAPI 85 EnableResetRequired ( 86 VOID 87 ); 88 89 90 /** 91 Record the info that no reset is required. 92 A module boolean variable is used to record whether a reset is required. 93 94 **/ 95 VOID 96 EFIAPI 97 DisableResetRequired ( 98 VOID 99 ); 100 101 /** 102 Check whether platform policy enables the reset reminder feature. The default is enabled. 103 104 **/ 105 BOOLEAN 106 EFIAPI 107 IsResetReminderFeatureEnable ( 108 VOID 109 ); 110 111 /** 112 Check if the user changed any option setting that needs a system reset to be effective. 113 114 **/ 115 BOOLEAN 116 EFIAPI 117 IsResetRequired ( 118 VOID 119 ); 120 121 /** 122 Check whether a reset is needed, and finish the reset reminder feature. 123 If a reset is needed, pop up a menu to notice user, and finish the feature 124 according to the user selection. 125 126 **/ 127 VOID 128 EFIAPI 129 SetupResetReminder ( 130 VOID 131 ); 132 133 #endif 134