ArmPlatformPkg/BootMonFs: Fix the setting of information about a file
Rework the setting of information about a file, in particular file resizing, file renaming and the returned error codes in case of error. This rework has implied a rework of the read, write, close and flush functions. To strickly separate what has been actually written to the media (flushed) from what has not been written when a file is open, an "Info" field has been added to the description of a file. The field is used to store the modifications done to the file by the means of SetInfo() like the change of the name or of the size. Such changes are written to the media only when a flush occurs. When a file is open, the information pointed to by the "Info" field is always up-to-date. This is not the case of the information stored in the "HwDescription" of the file description which from now is just a mirror of what is written on the media. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ronald Cron <Ronald.Cron@arm.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16511 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
committed by
oliviermartin
parent
fb08c45511
commit
95204533ad
@@ -54,8 +54,14 @@ typedef struct {
|
||||
|
||||
EFI_FILE_PROTOCOL File;
|
||||
|
||||
//
|
||||
// The following fields are relevant only if the file is open.
|
||||
//
|
||||
|
||||
EFI_FILE_INFO *Info;
|
||||
UINT64 Position;
|
||||
// If the file needs to be flushed then this list contain the memory buffer that creates this file
|
||||
// If the file needs to be flushed then this list contain the memory
|
||||
// buffer that creates this file
|
||||
LIST_ENTRY RegionToFlushLink;
|
||||
UINT64 OpenMode;
|
||||
} BOOTMON_FS_FILE;
|
||||
|
Reference in New Issue
Block a user