mirror of
https://github.com/tianocore/edk2
synced 2026-08-27 00:23:19 -04:00
The current implementation assumes the the caller will perform the necessary cleanup before exiting boot services. This has been observed to drop some cached file writes that occur even before the application calling exit boot services is launched. This commit adds a per-volume pre-ExitBootServices event to flush any dirty caches and perform other cleanup the volume to ensure all write data is persisted and consistent. After the flush, caching will be disabled for the volume in the future to ensure that all subsequent access persists. Signed-off-by: Chris Fernald <chfernal@microsoft.com>
88 lines
2.4 KiB
INI
88 lines
2.4 KiB
INI
## @file
|
|
# Component Description File for FAT module.
|
|
#
|
|
# This UEFI driver detects the FAT file system in the disk.
|
|
# It also produces the Simple File System protocol for the consumer to
|
|
# perform file and directory operations on the disk.
|
|
# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = Fat
|
|
MODULE_UNI_FILE = Fat.uni
|
|
FILE_GUID = 961578FE-B6B7-44c3-AF35-6BC705CD2B1F
|
|
MODULE_TYPE = UEFI_DRIVER
|
|
VERSION_STRING = 1.0
|
|
|
|
ENTRY_POINT = FatEntryPoint
|
|
UNLOAD_IMAGE = FatUnload
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 EBC
|
|
#
|
|
# DRIVER_BINDING = gFatDriverBinding
|
|
# COMPONENT_NAME = gFatComponentName
|
|
# COMPONENT_NAME2 = gFatComponentName2
|
|
#
|
|
|
|
[Sources]
|
|
DirectoryCache.c
|
|
DiskCache.c
|
|
FileName.c
|
|
Hash.c
|
|
DirectoryManage.c
|
|
ComponentName.c
|
|
FatFileSystem.h
|
|
Fat.h
|
|
ReadWrite.c
|
|
OpenVolume.c
|
|
Open.c
|
|
Misc.c
|
|
Init.c
|
|
Info.c
|
|
FileSpace.c
|
|
Flush.c
|
|
Fat.c
|
|
Delete.c
|
|
Data.c
|
|
UnicodeCollation.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
|
|
[LibraryClasses]
|
|
UefiRuntimeServicesTableLib
|
|
UefiBootServicesTableLib
|
|
MemoryAllocationLib
|
|
BaseMemoryLib
|
|
BaseLib
|
|
UefiLib
|
|
UefiDriverEntryPoint
|
|
DebugLib
|
|
PcdLib
|
|
|
|
[Guids]
|
|
gEfiFileInfoGuid ## SOMETIMES_CONSUMES ## UNDEFINED
|
|
gEfiFileSystemInfoGuid ## SOMETIMES_CONSUMES ## UNDEFINED
|
|
gEfiFileSystemVolumeLabelInfoIdGuid ## SOMETIMES_CONSUMES ## UNDEFINED
|
|
gEfiEventBeforeExitBootServicesGuid ## CONSUMES ## Event
|
|
|
|
[Protocols]
|
|
gEfiDiskIoProtocolGuid ## TO_START
|
|
gEfiDiskIo2ProtocolGuid ## TO_START
|
|
gEfiBlockIoProtocolGuid ## TO_START
|
|
gEfiSimpleFileSystemProtocolGuid ## BY_START
|
|
gEfiUnicodeCollation2ProtocolGuid ## TO_START
|
|
|
|
[Pcd]
|
|
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLang ## SOMETIMES_CONSUMES
|
|
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultPlatformLang ## SOMETIMES_CONSUMES
|
|
[UserExtensions.TianoCore."ExtraFiles"]
|
|
FatExtra.uni
|