//\r
// End of directory\r
//\r
- ASSERT (IoMode == READ_DATA);\r
+ ASSERT (IoMode == ReadData);\r
((FAT_DIRECTORY_ENTRY *) Entry)->FileName[0] = EMPTY_ENTRY_MARK;\r
((FAT_DIRECTORY_ENTRY *) Entry)->Attributes = 0;\r
return EFI_SUCCESS;\r
//\r
// Write directory entry\r
//\r
- Status = FatAccessEntry (OFile, WRITE_DATA, EntryPos, &DirEnt->Entry);\r
+ Status = FatAccessEntry (OFile, WriteData, EntryPos, &DirEnt->Entry);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
LfnEntry.Ordinal = DELETE_ENTRY_MARK;\r
}\r
\r
- Status = FatAccessEntry (OFile, WRITE_DATA, EntryPos, &LfnEntry);\r
+ Status = FatAccessEntry (OFile, WriteData, EntryPos, &LfnEntry);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
}\r
\r
EntryPos--;\r
- Status = FatAccessEntry (Parent, READ_DATA, EntryPos, &LfnEntry);\r
+ Status = FatAccessEntry (Parent, ReadData, EntryPos, &LfnEntry);\r
if (EFI_ERROR (Status) ||\r
LfnEntry.Attributes != FAT_ATTRIBUTE_LFN ||\r
LfnEntry.MustBeZero != 0 ||\r
//\r
// Read the next directory entry until we find a valid directory entry (excluding lfn entry)\r
//\r
- Status = FatAccessEntry (OFile, READ_DATA, ODir->CurrentEndPos, &Entry);\r
+ Status = FatAccessEntry (OFile, ReadData, ODir->CurrentEndPos, &Entry);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
// Although FAT spec states this field is always 0 for FAT12 & FAT16, some applications\r
// might use it for some special usage, it is safer to zero it in memory for FAT12 & FAT16.\r
//\r
- if (OFile->Volume->FatType != FAT32) {\r
+ if (OFile->Volume->FatType != Fat32) {\r
Entry.FileClusterHigh = 0;\r
}\r
\r
Entry = &DirEnt->Entry;\r
DirEnt->Invalid = TRUE;\r
do {\r
- Status = FatAccessEntry (Root, READ_DATA, EntryPos, Entry);\r
+ Status = FatAccessEntry (Root, ReadData, EntryPos, Entry);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
Volume = VOLUME_FROM_ROOT_DIRENT (DirEnt);\r
Volume->Root = OFile;\r
OFile->FileCluster = Volume->RootCluster;\r
- if (Volume->FatType != FAT32) {\r
+ if (Volume->FatType != Fat32) {\r
OFile->IsFixedRootDir = TRUE;\r
}\r
}\r
CACHE_TAG *CacheTag;\r
UINT8 *BaseAddress;\r
\r
- DiskCache = &Volume->DiskCache[CACHE_DATA];\r
+ DiskCache = &Volume->DiskCache[CacheData];\r
BaseAddress = DiskCache->CacheBase;\r
GroupMask = DiskCache->GroupMask;\r
PageAlignment = DiskCache->PageAlignment;\r
// in cache is in this rang, this data in the Buffer need to\r
// be updated with the cache's dirty data.\r
//\r
- if (IoMode == READ_DISK) {\r
+ if (IoMode == ReadDisk) {\r
if (CacheTag->Dirty) {\r
CopyMem (\r
Buffer + ((PageNo - StartPageNo) << PageAlignment),\r
PageAddress = DiskCache->CacheBase + (GroupNo << PageAlignment);\r
EntryPos = DiskCache->BaseAddress + LShiftU64 (PageNo, PageAlignment);\r
RealSize = CacheTag->RealSize;\r
- if (IoMode == READ_DISK) {\r
+ if (IoMode == ReadDisk) {\r
RealSize = (UINTN)1 << PageAlignment;\r
MaxSize = DiskCache->LimitAddress - EntryPos;\r
if (MaxSize < RealSize) {\r
}\r
\r
WriteCount = 1;\r
- if (DataType == CACHE_FAT && IoMode == WRITE_DISK) {\r
+ if (DataType == CacheFat && IoMode == WriteDisk) {\r
WriteCount = Volume->NumFats;\r
}\r
\r
// Write dirty cache page back to disk\r
//\r
if (CacheTag->RealSize > 0 && CacheTag->Dirty) {\r
- Status = FatExchangeCachePage (Volume, CacheDataType, WRITE_DISK, CacheTag, NULL);\r
+ Status = FatExchangeCachePage (Volume, CacheDataType, WriteDisk, CacheTag, NULL);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
// Load new data from disk;\r
//\r
CacheTag->PageNo = PageNo;\r
- Status = FatExchangeCachePage (Volume, CacheDataType, READ_DISK, CacheTag, NULL);\r
+ Status = FatExchangeCachePage (Volume, CacheDataType, ReadDisk, CacheTag, NULL);\r
\r
return Status;\r
}\r
if (!EFI_ERROR (Status)) {\r
Source = DiskCache->CacheBase + (GroupNo << DiskCache->PageAlignment) + Offset;\r
Destination = Buffer;\r
- if (IoMode != READ_DISK) {\r
+ if (IoMode != ReadDisk) {\r
CacheTag->Dirty = TRUE;\r
DiskCache->Dirty = TRUE;\r
Destination = Source;\r
//\r
// Accessing fat table cannot have alignment data\r
//\r
- ASSERT (CacheDataType == CACHE_DATA);\r
+ ASSERT (CacheDataType == CacheData);\r
\r
EntryPos = Volume->RootPos + LShiftU64 (PageNo, PageAlignment);\r
AlignedSize = AlignedPageCount << PageAlignment;\r
DISK_CACHE *DiskCache;\r
CACHE_TAG *CacheTag;\r
\r
- for (CacheDataType = (CACHE_DATA_TYPE) 0; CacheDataType < CACHE_MAX_TYPE; CacheDataType++) {\r
+ for (CacheDataType = (CACHE_DATA_TYPE) 0; CacheDataType < CacheMaxType; CacheDataType++) {\r
DiskCache = &Volume->DiskCache[CacheDataType];\r
if (DiskCache->Dirty) {\r
//\r
//\r
// Write back all Dirty Data Cache Page to disk\r
//\r
- Status = FatExchangeCachePage (Volume, CacheDataType, WRITE_DISK, CacheTag, Task);\r
+ Status = FatExchangeCachePage (Volume, CacheDataType, WriteDisk, CacheTag, Task);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
//\r
// Configure the parameters of disk cache\r
//\r
- if (Volume->FatType == FAT12) {\r
+ if (Volume->FatType == Fat12) {\r
FatCacheGroupCount = FAT_FATCACHE_GROUP_MIN_COUNT;\r
- DiskCache[CACHE_FAT].PageAlignment = FAT_FATCACHE_PAGE_MIN_ALIGNMENT;\r
- DiskCache[CACHE_DATA].PageAlignment = FAT_DATACACHE_PAGE_MIN_ALIGNMENT;\r
+ DiskCache[CacheFat].PageAlignment = FAT_FATCACHE_PAGE_MIN_ALIGNMENT;\r
+ DiskCache[CacheData].PageAlignment = FAT_DATACACHE_PAGE_MIN_ALIGNMENT;\r
} else {\r
FatCacheGroupCount = FAT_FATCACHE_GROUP_MAX_COUNT;\r
- DiskCache[CACHE_FAT].PageAlignment = FAT_FATCACHE_PAGE_MAX_ALIGNMENT;\r
- DiskCache[CACHE_DATA].PageAlignment = FAT_DATACACHE_PAGE_MAX_ALIGNMENT;\r
+ DiskCache[CacheFat].PageAlignment = FAT_FATCACHE_PAGE_MAX_ALIGNMENT;\r
+ DiskCache[CacheData].PageAlignment = FAT_DATACACHE_PAGE_MAX_ALIGNMENT;\r
}\r
\r
- DiskCache[CACHE_DATA].GroupMask = FAT_DATACACHE_GROUP_COUNT - 1;\r
- DiskCache[CACHE_DATA].BaseAddress = Volume->RootPos;\r
- DiskCache[CACHE_DATA].LimitAddress = Volume->VolumeSize;\r
- DiskCache[CACHE_FAT].GroupMask = FatCacheGroupCount - 1;\r
- DiskCache[CACHE_FAT].BaseAddress = Volume->FatPos;\r
- DiskCache[CACHE_FAT].LimitAddress = Volume->FatPos + Volume->FatSize;\r
- FatCacheSize = FatCacheGroupCount << DiskCache[CACHE_FAT].PageAlignment;\r
- DataCacheSize = FAT_DATACACHE_GROUP_COUNT << DiskCache[CACHE_DATA].PageAlignment;\r
+ DiskCache[CacheData].GroupMask = FAT_DATACACHE_GROUP_COUNT - 1;\r
+ DiskCache[CacheData].BaseAddress = Volume->RootPos;\r
+ DiskCache[CacheData].LimitAddress = Volume->VolumeSize;\r
+ DiskCache[CacheFat].GroupMask = FatCacheGroupCount - 1;\r
+ DiskCache[CacheFat].BaseAddress = Volume->FatPos;\r
+ DiskCache[CacheFat].LimitAddress = Volume->FatPos + Volume->FatSize;\r
+ FatCacheSize = FatCacheGroupCount << DiskCache[CacheFat].PageAlignment;\r
+ DataCacheSize = FAT_DATACACHE_GROUP_COUNT << DiskCache[CacheData].PageAlignment;\r
//\r
// Allocate the Fat Cache buffer\r
//\r
}\r
\r
Volume->CacheBuffer = CacheBuffer;\r
- DiskCache[CACHE_FAT].CacheBase = CacheBuffer;\r
- DiskCache[CACHE_DATA].CacheBase = CacheBuffer + FatCacheSize;\r
+ DiskCache[CacheFat].CacheBase = CacheBuffer;\r
+ DiskCache[CacheData].CacheBase = CacheBuffer + FatCacheSize;\r
return EFI_SUCCESS;\r
}\r
// The fat types we support\r
//\r
typedef enum {\r
- FAT12,\r
- FAT16,\r
- FAT32,\r
+ Fat12,\r
+ Fat16,\r
+ Fat32,\r
FatUndefined\r
} FAT_VOLUME_TYPE;\r
\r
typedef enum {\r
- CACHE_FAT,\r
- CACHE_DATA,\r
- CACHE_MAX_TYPE\r
+ CacheFat,\r
+ CacheData,\r
+ CacheMaxType\r
} CACHE_DATA_TYPE;\r
\r
//\r
// Used in FatDiskIo\r
//\r
typedef enum {\r
- READ_DISK = 0, // raw disk read\r
- WRITE_DISK = 1, // raw disk write\r
- READ_FAT = 2, // read fat cache\r
- WRITE_FAT = 3, // write fat cache\r
- READ_DATA = 6, // read data cache\r
- WRITE_DATA = 7 // write data cache\r
+ ReadDisk = 0, // raw disk read\r
+ WriteDisk = 1, // raw disk write\r
+ ReadFat = 2, // read fat cache\r
+ WriteFat = 3, // write fat cache\r
+ ReadData = 6, // read data cache\r
+ WriteData = 7 // write data cache\r
} IO_MODE;\r
\r
#define CACHE_ENABLED(a) ((a) >= 2)\r
// Disk Cache for this volume\r
//\r
VOID *CacheBuffer;\r
- DISK_CACHE DiskCache[CACHE_MAX_TYPE];\r
+ DISK_CACHE DiskCache[CacheMaxType];\r
} FAT_VOLUME;\r
\r
//\r
\r
EFI_STATUS\r
FatGetNextDirEnt (\r
- IN FAT_OFILE *OFILE,\r
+ IN FAT_OFILE *OFile,\r
OUT FAT_DIRENT **PtrDirEnt\r
);\r
\r
// Compute buffer position needed\r
//\r
switch (Volume->FatType) {\r
- case FAT12:\r
+ case Fat12:\r
Pos = FAT_POS_FAT12 (Index);\r
break;\r
\r
- case FAT16:\r
+ case Fat16:\r
Pos = FAT_POS_FAT16 (Index);\r
break;\r
\r
Volume->FatEntryPos = Volume->FatPos + Pos;\r
Status = FatDiskIo (\r
Volume,\r
- READ_FAT,\r
+ ReadFat,\r
Volume->FatEntryPos,\r
Volume->FatEntrySize,\r
&Volume->FatEntryBuffer,\r
--*/\r
{\r
VOID *Pos;\r
- UINT8 *E12;\r
- UINT16 *E16;\r
- UINT32 *E32;\r
+ UINT8 *En12;\r
+ UINT16 *En16;\r
+ UINT32 *En32;\r
UINTN Accum;\r
\r
Pos = FatLoadFatEntry (Volume, Index);\r
}\r
\r
switch (Volume->FatType) {\r
- case FAT12:\r
- E12 = Pos;\r
- Accum = E12[0] | (E12[1] << 8);\r
+ case Fat12:\r
+ En12 = Pos;\r
+ Accum = En12[0] | (En12[1] << 8);\r
Accum = FAT_ODD_CLUSTER_FAT12 (Index) ? (Accum >> 4) : (Accum & FAT_CLUSTER_MASK_FAT12);\r
Accum = Accum | ((Accum >= FAT_CLUSTER_SPECIAL_FAT12) ? FAT_CLUSTER_SPECIAL_EXT : 0);\r
break;\r
\r
- case FAT16:\r
- E16 = Pos;\r
- Accum = *E16;\r
+ case Fat16:\r
+ En16 = Pos;\r
+ Accum = *En16;\r
Accum = Accum | ((Accum >= FAT_CLUSTER_SPECIAL_FAT16) ? FAT_CLUSTER_SPECIAL_EXT : 0);\r
break;\r
\r
default:\r
- E32 = Pos;\r
- Accum = *E32 & FAT_CLUSTER_MASK_FAT32;\r
+ En32 = Pos;\r
+ Accum = *En32 & FAT_CLUSTER_MASK_FAT32;\r
Accum = Accum | ((Accum >= FAT_CLUSTER_SPECIAL_FAT32) ? FAT_CLUSTER_SPECIAL_EXT : 0);\r
}\r
\r
--*/\r
{\r
VOID *Pos;\r
- UINT8 *E12;\r
- UINT16 *E16;\r
- UINT32 *E32;\r
+ UINT8 *En12;\r
+ UINT16 *En16;\r
+ UINT32 *En32;\r
UINTN Accum;\r
EFI_STATUS Status;\r
UINTN OriginalVal;\r
// Update the value\r
//\r
switch (Volume->FatType) {\r
- case FAT12:\r
- E12 = Pos;\r
- Accum = E12[0] | (E12[1] << 8);\r
+ case Fat12:\r
+ En12 = Pos;\r
+ Accum = En12[0] | (En12[1] << 8);\r
Value = Value & FAT_CLUSTER_MASK_FAT12;\r
\r
if (FAT_ODD_CLUSTER_FAT12 (Index)) {\r
Accum = Value | (Accum & FAT_CLUSTER_UNMASK_FAT12);\r
}\r
\r
- E12[0] = (UINT8) (Accum & 0xFF);\r
- E12[1] = (UINT8) (Accum >> 8);\r
+ En12[0] = (UINT8) (Accum & 0xFF);\r
+ En12[1] = (UINT8) (Accum >> 8);\r
break;\r
\r
- case FAT16:\r
- E16 = Pos;\r
- *E16 = (UINT16) Value;\r
+ case Fat16:\r
+ En16 = Pos;\r
+ *En16 = (UINT16) Value;\r
break;\r
\r
default:\r
- E32 = Pos;\r
- *E32 = (*E32 & FAT_CLUSTER_UNMASK_FAT32) | (UINT32) (Value & FAT_CLUSTER_MASK_FAT32);\r
+ En32 = Pos;\r
+ *En32 = (*En32 & FAT_CLUSTER_UNMASK_FAT32) | (UINT32) (Value & FAT_CLUSTER_MASK_FAT32);\r
}\r
//\r
// If the volume's dirty bit is not set, set it now\r
//\r
- if (!Volume->FatDirty && Volume->FatType != FAT12) {\r
+ if (!Volume->FatDirty && Volume->FatType != Fat12) {\r
Volume->FatDirty = TRUE;\r
- FatAccessVolumeDirty (Volume, WRITE_FAT, &Volume->DirtyValue);\r
+ FatAccessVolumeDirty (Volume, WriteFat, &Volume->DirtyValue);\r
}\r
//\r
// Write the updated fat entry value to the volume\r
//\r
Status = FatDiskIo (\r
Volume,\r
- WRITE_FAT,\r
+ WriteFat,\r
Volume->FatEntryPos,\r
Volume->FatEntrySize,\r
&Volume->FatEntryBuffer,\r
// indicates this a FAT32 volume\r
//\r
if (Volume->FreeInfoValid && Volume->FatDirty && Volume->FreeInfoPos) {\r
- Status = FatDiskIo (Volume, WRITE_DISK, Volume->FreeInfoPos, sizeof (FAT_INFO_SECTOR), &Volume->FatInfoSector, Task);\r
+ Status = FatDiskIo (Volume, WriteDisk, Volume->FreeInfoPos, sizeof (FAT_INFO_SECTOR), &Volume->FatInfoSector, Task);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
//\r
// Update that the volume is not dirty\r
//\r
- if (Volume->FatDirty && Volume->FatType != FAT12) {\r
+ if (Volume->FatDirty && Volume->FatType != Fat12) {\r
Volume->FatDirty = FALSE;\r
- Status = FatAccessVolumeDirty (Volume, WRITE_FAT, &Volume->NotDirtyValue);\r
+ Status = FatAccessVolumeDirty (Volume, WriteFat, &Volume->NotDirtyValue);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
SectorsPerFat = FatBs.FatBsb.SectorsPerFat;\r
if (SectorsPerFat == 0) {\r
SectorsPerFat = FatBs.FatBse.Fat32Bse.LargeSectorsPerFat;\r
- FatType = FAT32;\r
+ FatType = Fat32;\r
}\r
//\r
// Is boot sector a fat sector?\r
//\r
// Initialize fields the volume information for this FatType\r
//\r
- if (FatType != FAT32) {\r
+ if (FatType != Fat32) {\r
if (FatBs.FatBsb.RootEntries == 0) {\r
return EFI_UNSUPPORTED;\r
}\r
//\r
// If this is not a fat32, determine if it's a fat16 or fat12\r
//\r
- if (FatType != FAT32) {\r
+ if (FatType != Fat32) {\r
if (Volume->MaxCluster >= FAT_MAX_FAT16_CLUSTER) {\r
return EFI_VOLUME_CORRUPTED;\r
}\r
\r
- FatType = Volume->MaxCluster < FAT_MAX_FAT12_CLUSTER ? FAT12 : FAT16;\r
+ FatType = Volume->MaxCluster < FAT_MAX_FAT12_CLUSTER ? Fat12 : Fat16;\r
//\r
// fat12 & fat16 fat-entries are 2 bytes\r
//\r
// We should keep the initial value as the NotDirtyValue\r
// in case the volume is dirty already\r
//\r
- if (FatType != FAT12) {\r
- Status = FatAccessVolumeDirty (Volume, READ_DISK, &Volume->NotDirtyValue);\r
+ if (FatType != Fat12) {\r
+ Status = FatAccessVolumeDirty (Volume, ReadDisk, &Volume->NotDirtyValue);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
//\r
// If present, read the fat hint info\r
//\r
- if (FatType == FAT32) {\r
+ if (FatType == Fat32) {\r
Volume->FreeInfoPos = FatBs.FatBse.Fat32Bse.FsInfoSector * BlockSize;\r
if (FatBs.FatBse.Fat32Bse.FsInfoSector != 0) {\r
- FatDiskIo (Volume, READ_DISK, Volume->FreeInfoPos, sizeof (FAT_INFO_SECTOR), &Volume->FatInfoSector, NULL);\r
+ FatDiskIo (Volume, ReadDisk, Volume->FreeInfoPos, sizeof (FAT_INFO_SECTOR), &Volume->FatInfoSector, NULL);\r
if (Volume->FatInfoSector.Signature == FAT_INFO_SIGNATURE &&\r
Volume->FatInfoSector.InfoBeginSignature == FAT_INFO_BEGIN_SIGNATURE &&\r
Volume->FatInfoSector.InfoEndSignature == FAT_INFO_END_SIGNATURE &&\r
// Blocking access\r
//\r
DiskIo = Volume->DiskIo;\r
- IoFunction = (IoMode == READ_DISK) ? DiskIo->ReadDisk : DiskIo->WriteDisk;\r
+ IoFunction = (IoMode == ReadDisk) ? DiskIo->ReadDisk : DiskIo->WriteDisk;\r
Status = IoFunction (DiskIo, Volume->MediaId, Offset, BufferSize, Buffer);\r
} else {\r
//\r
} else {\r
Subtask->Signature = FAT_SUBTASK_SIGNATURE;\r
Subtask->Task = Task;\r
- Subtask->Write = (BOOLEAN) (IoMode == WRITE_DISK);\r
+ Subtask->Write = (BOOLEAN) (IoMode == WriteDisk);\r
Subtask->Offset = Offset;\r
Subtask->Buffer = Buffer;\r
Subtask->BufferSize = BufferSize;\r
//\r
// Write to a directory is unsupported\r
//\r
- if ((OFile->ODir != NULL) && (IoMode == WRITE_DATA)) {\r
+ if ((OFile->ODir != NULL) && (IoMode == WriteData)) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
return EFI_DEVICE_ERROR;\r
}\r
\r
- if (IoMode == READ_DATA) {\r
+ if (IoMode == ReadData) {\r
//\r
// If position is at EOF, then return device error\r
//\r
//\r
// Read a directory is supported\r
//\r
- ASSERT (IoMode == READ_DATA);\r
+ ASSERT (IoMode == ReadData);\r
Status = FatIFileReadDir (IFile, BufferSize, Buffer);\r
OFile = NULL;\r
} else {\r
//\r
// The position goes beyond the end of file\r
//\r
- if (IoMode == READ_DATA) {\r
+ if (IoMode == ReadData) {\r
//\r
// Adjust the actual size read\r
//\r
\r
--*/\r
{\r
- return FatIFileAccess (FHand, READ_DATA, BufferSize, Buffer, NULL);\r
+ return FatIFileAccess (FHand, ReadData, BufferSize, Buffer, NULL);\r
}\r
\r
EFI_STATUS\r
\r
--*/\r
{\r
- return FatIFileAccess (FHand, READ_DATA, &Token->BufferSize, Token->Buffer, Token);\r
+ return FatIFileAccess (FHand, ReadData, &Token->BufferSize, Token->Buffer, Token);\r
}\r
\r
EFI_STATUS\r
\r
--*/\r
{\r
- return FatIFileAccess (FHand, WRITE_DATA, BufferSize, Buffer, NULL);\r
+ return FatIFileAccess (FHand, WriteData, BufferSize, Buffer, NULL);\r
}\r
\r
EFI_STATUS\r
\r
--*/\r
{\r
- return FatIFileAccess (FHand, WRITE_DATA, &Token->BufferSize, Token->Buffer, Token);\r
+ return FatIFileAccess (FHand, WriteData, &Token->BufferSize, Token->Buffer, Token);\r
}\r
\r
EFI_STATUS\r
Position += Len;\r
UserBuffer += Len;\r
BufferSize -= Len;\r
- if (IoMode == WRITE_DATA) {\r
+ if (IoMode == WriteData) {\r
OFile->Dirty = TRUE;\r
OFile->Archive = TRUE;\r
}\r
do {\r
WriteSize = AppendedSize > BufferSize ? BufferSize : (UINTN) AppendedSize;\r
AppendedSize -= WriteSize;\r
- Status = FatAccessOFile (OFile, WRITE_DATA, WritePos, &WriteSize, ZeroBuffer, NULL);\r
+ Status = FatAccessOFile (OFile, WriteData, WritePos, &WriteSize, ZeroBuffer, NULL);\r
if (EFI_ERROR (Status)) {\r
break;\r
}\r