199 lines
5.3 KiB
C
199 lines
5.3 KiB
C
/**@file
|
|
|
|
@copyright
|
|
INTEL CONFIDENTIAL
|
|
Copyright 2011 - 2019 Intel Corporation.
|
|
|
|
The source code contained or described herein and all documents related to the
|
|
source code ("Material") are owned by Intel Corporation or its suppliers or
|
|
licensors. Title to the Material remains with Intel Corporation or its suppliers
|
|
and licensors. The Material may contain trade secrets and proprietary and
|
|
confidential information of Intel Corporation and its suppliers and licensors,
|
|
and is protected by worldwide copyright and trade secret laws and treaty
|
|
provisions. No part of the Material may be used, copied, reproduced, modified,
|
|
published, uploaded, posted, transmitted, distributed, or disclosed in any way
|
|
without Intel's prior express written permission.
|
|
|
|
No license under any patent, copyright, trade secret or other intellectual
|
|
property right is granted to or conferred upon you by disclosure or delivery
|
|
of the Materials, either expressly, by implication, inducement, estoppel or
|
|
otherwise. Any license under such intellectual property rights must be
|
|
express and approved by Intel in writing.
|
|
|
|
Unless otherwise agreed by Intel in writing, you may not remove or alter
|
|
this notice or any other notice embedded in Materials by Intel or
|
|
Intel's suppliers or licensors in any way.
|
|
|
|
This file contains a 'Sample Driver' and is licensed as such under the terms
|
|
of your license agreement with Intel or your vendor. This file may be modified
|
|
by the user, subject to the additional terms of the license agreement.
|
|
|
|
@par Specification Reference:
|
|
**/
|
|
|
|
#ifndef _BDS_MODULE_H_
|
|
#define _BDS_MODULE_H_
|
|
|
|
#include <PiDxe.h>
|
|
#include <IndustryStandard/PeImage.h>
|
|
#include <IndustryStandard/SmBios.h>
|
|
|
|
#include <Guid/MdeModuleHii.h>
|
|
#include <Guid/FileSystemVolumeLabelInfo.h>
|
|
#include <Guid/HiiPlatformSetupFormset.h>
|
|
#include <Guid/GlobalVariable.h>
|
|
#include <Guid/CapsuleVendor.h>
|
|
#include <Guid/StatusCodeDataTypeId.h>
|
|
#include <Guid/FileInfo.h>
|
|
|
|
#include <Protocol/LoadFile.h>
|
|
#include <Protocol/DevicePath.h>
|
|
#include <Protocol/HiiConfigRouting.h>
|
|
#include <Protocol/Smbios.h>
|
|
#include <Protocol/UgaDraw.h>
|
|
#include <Protocol/BlockIo.h>
|
|
#include <Protocol/GenericMemoryTest.h>
|
|
#include <Protocol/FormBrowser2.h>
|
|
#include <Protocol/FormBrowserEx2.h>
|
|
#include <Protocol/HiiConfigAccess.h>
|
|
#include <Protocol/GraphicsOutput.h>
|
|
#include <Protocol/SimpleFileSystem.h>
|
|
#include <Protocol/HiiDatabase.h>
|
|
#include <Protocol/HiiString.h>
|
|
#include <Protocol/SerialIo.h>
|
|
#include <Protocol/SimpleTextInEx.h>
|
|
#include <Protocol/DriverHealth.h>
|
|
#include <Protocol/DevicePathToText.h>
|
|
#include <Protocol/BootLogo.h>
|
|
#include <Protocol/LoadedImage.h>
|
|
#include <Protocol/FirmwareVolume2.h>
|
|
|
|
#include <Library/UefiDriverEntryPoint.h>
|
|
#include <Library/PrintLib.h>
|
|
#include <Library/DebugLib.h>
|
|
#include <Library/BaseMemoryLib.h>
|
|
#include <Library/UefiBootServicesTableLib.h>
|
|
#include <Library/UefiLib.h>
|
|
#include <Library/MemoryAllocationLib.h>
|
|
#include <Library/PerformanceLib.h>
|
|
#include <Library/ReportStatusCodeLib.h>
|
|
#include <Library/UefiRuntimeServicesTableLib.h>
|
|
#include <Library/HobLib.h>
|
|
#include <Library/BaseLib.h>
|
|
#include <Library/DevicePathLib.h>
|
|
#include <Library/PcdLib.h>
|
|
#include <Library/CapsuleLib.h>
|
|
#include <Library/HiiLib.h>
|
|
#include <Library/DevicePathLib.h>
|
|
#include <Library/PcdLib.h>
|
|
#include <Library/UefiHiiServicesLib.h>
|
|
|
|
#include <Library/UefiBootManagerLib.h>
|
|
|
|
#pragma pack(1)
|
|
|
|
///
|
|
/// HII specific Vendor Device Path definition.
|
|
///
|
|
typedef struct {
|
|
VENDOR_DEVICE_PATH VendorDevicePath;
|
|
EFI_DEVICE_PATH_PROTOCOL End;
|
|
} HII_VENDOR_DEVICE_PATH;
|
|
#pragma pack()
|
|
|
|
|
|
//
|
|
//The interface functions related to the Setup Browser Reset Reminder feature
|
|
//
|
|
/**
|
|
Enable the setup browser reset reminder feature.
|
|
This routine is used in a platform tip. If the platform policy needs the feature, use the routine to enable it.
|
|
|
|
**/
|
|
VOID
|
|
EFIAPI
|
|
EnableResetReminderFeature (
|
|
VOID
|
|
);
|
|
|
|
/**
|
|
Disable the setup browser reset reminder feature.
|
|
This routine is used in a platform tip. If the platform policy does not want the feature, use the routine to disable it.
|
|
|
|
**/
|
|
VOID
|
|
EFIAPI
|
|
DisableResetReminderFeature (
|
|
VOID
|
|
);
|
|
|
|
/**
|
|
Record the info that a reset is required.
|
|
A module boolean variable is used to record whether a reset is required.
|
|
|
|
**/
|
|
VOID
|
|
EFIAPI
|
|
EnableResetRequired (
|
|
VOID
|
|
);
|
|
|
|
|
|
/**
|
|
Record the info that no reset is required.
|
|
A module boolean variable is used to record whether a reset is required.
|
|
|
|
**/
|
|
VOID
|
|
EFIAPI
|
|
DisableResetRequired (
|
|
VOID
|
|
);
|
|
|
|
/**
|
|
Check whether platform policy enables the reset reminder feature. The default is enabled.
|
|
|
|
**/
|
|
BOOLEAN
|
|
EFIAPI
|
|
IsResetReminderFeatureEnable (
|
|
VOID
|
|
);
|
|
|
|
/**
|
|
Check if the user changed any option setting that needs a system reset to be effective.
|
|
|
|
**/
|
|
BOOLEAN
|
|
EFIAPI
|
|
IsResetRequired (
|
|
VOID
|
|
);
|
|
|
|
/**
|
|
Create reminder to let user to choose save or discard the changed browser data.
|
|
If user save the changes, this fucntion may need to reset based on changes attribute.
|
|
|
|
@param NeedReset Whether need to do the reset action.
|
|
|
|
**/
|
|
UINTN
|
|
EFIAPI
|
|
SetupChangesReminder (
|
|
IN BOOLEAN NeedReset
|
|
);
|
|
|
|
/**
|
|
This function converts an input device structure to a Unicode string.
|
|
|
|
@param DevPath A pointer to the device path structure.
|
|
|
|
@return A new allocated Unicode string that represents the device path.
|
|
|
|
**/
|
|
CHAR16 *
|
|
UiDevicePathToStr (
|
|
IN EFI_DEVICE_PATH_PROTOCOL *DevPath
|
|
);
|
|
#endif
|