**/\r
FAT_TASK *\r
FatCreateTask (\r
- FAT_IFILE *IFile,\r
- EFI_FILE_IO_TOKEN *Token\r
+ FAT_IFILE *IFile,\r
+ EFI_FILE_IO_TOKEN *Token\r
)\r
{\r
- FAT_TASK *Task;\r
+ FAT_TASK *Task;\r
\r
Task = AllocateZeroPool (sizeof (*Task));\r
if (Task != NULL) {\r
InitializeListHead (&Task->Subtasks);\r
InitializeListHead (&Task->Link);\r
}\r
+\r
return Task;\r
}\r
\r
**/\r
VOID\r
FatDestroyTask (\r
- FAT_TASK *Task\r
+ FAT_TASK *Task\r
)\r
{\r
- LIST_ENTRY *Link;\r
- FAT_SUBTASK *Subtask;\r
+ LIST_ENTRY *Link;\r
+ FAT_SUBTASK *Subtask;\r
\r
Link = GetFirstNode (&Task->Subtasks);\r
while (!IsNull (&Task->Subtasks, Link)) {\r
Subtask = CR (Link, FAT_SUBTASK, Link, FAT_SUBTASK_SIGNATURE);\r
- Link = FatDestroySubtask (Subtask);\r
+ Link = FatDestroySubtask (Subtask);\r
}\r
+\r
FreePool (Task);\r
}\r
\r
**/\r
VOID\r
FatWaitNonblockingTask (\r
- FAT_IFILE *IFile\r
+ FAT_IFILE *IFile\r
)\r
{\r
- BOOLEAN TaskQueueEmpty;\r
+ BOOLEAN TaskQueueEmpty;\r
\r
do {\r
EfiAcquireLock (&FatTaskLock);\r
**/\r
LIST_ENTRY *\r
FatDestroySubtask (\r
- FAT_SUBTASK *Subtask\r
+ FAT_SUBTASK *Subtask\r
)\r
{\r
- LIST_ENTRY *Link;\r
+ LIST_ENTRY *Link;\r
\r
gBS->CloseEvent (Subtask->DiskIo2Token.Event);\r
\r
**/\r
EFI_STATUS\r
FatQueueTask (\r
- IN FAT_IFILE *IFile,\r
- IN FAT_TASK *Task\r
+ IN FAT_IFILE *IFile,\r
+ IN FAT_TASK *Task\r
)\r
{\r
- EFI_STATUS Status;\r
- LIST_ENTRY *Link;\r
- LIST_ENTRY *NextLink;\r
- FAT_SUBTASK *Subtask;\r
+ EFI_STATUS Status;\r
+ LIST_ENTRY *Link;\r
+ LIST_ENTRY *NextLink;\r
+ FAT_SUBTASK *Subtask;\r
\r
//\r
// Sometimes the Task doesn't contain any subtasks, signal the event directly.\r
// handle list elements being removed during the traverse.\r
//\r
for ( Link = GetFirstNode (&Task->Subtasks), NextLink = GetNextNode (&Task->Subtasks, Link)\r
- ; Link != &Task->Subtasks\r
- ; Link = NextLink, NextLink = Link->ForwardLink\r
- ) {\r
+ ; Link != &Task->Subtasks\r
+ ; Link = NextLink, NextLink = Link->ForwardLink\r
+ )\r
+ {\r
Subtask = CR (Link, FAT_SUBTASK, Link, FAT_SUBTASK_SIGNATURE);\r
if (Subtask->Write) {\r
-\r
Status = IFile->OFile->Volume->DiskIo2->WriteDiskEx (\r
IFile->OFile->Volume->DiskIo2,\r
IFile->OFile->Volume->MediaId,\r
Subtask->Buffer\r
);\r
}\r
+\r
if (EFI_ERROR (Status)) {\r
break;\r
}\r
//\r
while (!IsNull (&Task->Subtasks, Link)) {\r
Subtask = CR (Link, FAT_SUBTASK, Link, FAT_SUBTASK_SIGNATURE);\r
- Link = FatDestroySubtask (Subtask);\r
+ Link = FatDestroySubtask (Subtask);\r
}\r
\r
if (IsListEmpty (&Task->Subtasks)) {\r
**/\r
EFI_STATUS\r
FatAccessVolumeDirty (\r
- IN FAT_VOLUME *Volume,\r
- IN IO_MODE IoMode,\r
- IN VOID *DirtyValue\r
+ IN FAT_VOLUME *Volume,\r
+ IN IO_MODE IoMode,\r
+ IN VOID *DirtyValue\r
)\r
{\r
- UINTN WriteCount;\r
+ UINTN WriteCount;\r
\r
WriteCount = Volume->FatEntrySize;\r
return FatDiskIo (Volume, IoMode, Volume->FatPos + WriteCount, WriteCount, DirtyValue, NULL);\r
VOID\r
EFIAPI\r
FatOnAccessComplete (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
- EFI_STATUS Status;\r
- FAT_SUBTASK *Subtask;\r
- FAT_TASK *Task;\r
+ EFI_STATUS Status;\r
+ FAT_SUBTASK *Subtask;\r
+ FAT_TASK *Task;\r
\r
//\r
// Avoid someone in future breaks the below assumption.\r
//\r
ASSERT (EfiGetCurrentTpl () == FatTaskLock.Tpl);\r
\r
- Subtask = (FAT_SUBTASK *) Context;\r
+ Subtask = (FAT_SUBTASK *)Context;\r
Task = Subtask->Task;\r
Status = Subtask->DiskIo2Token.TransactionStatus;\r
\r
**/\r
EFI_STATUS\r
FatDiskIo (\r
- IN FAT_VOLUME *Volume,\r
- IN IO_MODE IoMode,\r
- IN UINT64 Offset,\r
- IN UINTN BufferSize,\r
- IN OUT VOID *Buffer,\r
- IN FAT_TASK *Task\r
+ IN FAT_VOLUME *Volume,\r
+ IN IO_MODE IoMode,\r
+ IN UINT64 Offset,\r
+ IN UINTN BufferSize,\r
+ IN OUT VOID *Buffer,\r
+ IN FAT_TASK *Task\r
)\r
{\r
EFI_STATUS Status;\r
//\r
// Blocking access\r
//\r
- DiskIo = Volume->DiskIo;\r
- IoFunction = (IoMode == ReadDisk) ? DiskIo->ReadDisk : DiskIo->WriteDisk;\r
- Status = IoFunction (DiskIo, Volume->MediaId, Offset, BufferSize, Buffer);\r
+ DiskIo = Volume->DiskIo;\r
+ IoFunction = (IoMode == ReadDisk) ? DiskIo->ReadDisk : DiskIo->WriteDisk;\r
+ Status = IoFunction (DiskIo, Volume->MediaId, Offset, BufferSize, Buffer);\r
} else {\r
//\r
// Non-blocking access\r
//\r
Subtask = AllocateZeroPool (sizeof (*Subtask));\r
if (Subtask == NULL) {\r
- Status = EFI_OUT_OF_RESOURCES;\r
+ Status = EFI_OUT_OF_RESOURCES;\r
} else {\r
Subtask->Signature = FAT_SUBTASK_SIGNATURE;\r
Subtask->Task = Task;\r
- Subtask->Write = (BOOLEAN) (IoMode == WriteDisk);\r
+ Subtask->Write = (BOOLEAN)(IoMode == WriteDisk);\r
Subtask->Offset = Offset;\r
Subtask->Buffer = Buffer;\r
Subtask->BufferSize = BufferSize;\r
- Status = gBS->CreateEvent (\r
- EVT_NOTIFY_SIGNAL,\r
- TPL_NOTIFY,\r
- FatOnAccessComplete,\r
- Subtask,\r
- &Subtask->DiskIo2Token.Event\r
- );\r
+ Status = gBS->CreateEvent (\r
+ EVT_NOTIFY_SIGNAL,\r
+ TPL_NOTIFY,\r
+ FatOnAccessComplete,\r
+ Subtask,\r
+ &Subtask->DiskIo2Token.Event\r
+ );\r
if (!EFI_ERROR (Status)) {\r
InsertTailList (&Task->Subtasks, &Subtask->Link);\r
} else {\r
**/\r
VOID\r
FatFreeDirEnt (\r
- IN FAT_DIRENT *DirEnt\r
+ IN FAT_DIRENT *DirEnt\r
)\r
{\r
if (DirEnt->FileString != NULL) {\r
**/\r
VOID\r
FatFreeVolume (\r
- IN FAT_VOLUME *Volume\r
+ IN FAT_VOLUME *Volume\r
)\r
{\r
//\r
if (Volume->CacheBuffer != NULL) {\r
FreePool (Volume->CacheBuffer);\r
}\r
+\r
//\r
// Free directory cache\r
//\r
**/\r
VOID\r
FatEfiTimeToFatTime (\r
- IN EFI_TIME *ETime,\r
- OUT FAT_DATE_TIME *FTime\r
+ IN EFI_TIME *ETime,\r
+ OUT FAT_DATE_TIME *FTime\r
)\r
{\r
//\r
// ignores timezone info in source ETime\r
//\r
if (ETime->Year > 1980) {\r
- FTime->Date.Year = (UINT16) (ETime->Year - 1980);\r
+ FTime->Date.Year = (UINT16)(ETime->Year - 1980);\r
}\r
\r
if (ETime->Year >= 1980 + FAT_MAX_YEAR_FROM_1980) {\r
FTime->Date.Year = FAT_MAX_YEAR_FROM_1980;\r
}\r
\r
- FTime->Date.Month = ETime->Month;\r
- FTime->Date.Day = ETime->Day;\r
- FTime->Time.Hour = ETime->Hour;\r
- FTime->Time.Minute = ETime->Minute;\r
- FTime->Time.DoubleSecond = (UINT16) (ETime->Second / 2);\r
+ FTime->Date.Month = ETime->Month;\r
+ FTime->Date.Day = ETime->Day;\r
+ FTime->Time.Hour = ETime->Hour;\r
+ FTime->Time.Minute = ETime->Minute;\r
+ FTime->Time.DoubleSecond = (UINT16)(ETime->Second / 2);\r
}\r
\r
/**\r
**/\r
VOID\r
FatFatTimeToEfiTime (\r
- IN FAT_DATE_TIME *FTime,\r
- OUT EFI_TIME *ETime\r
+ IN FAT_DATE_TIME *FTime,\r
+ OUT EFI_TIME *ETime\r
)\r
{\r
- ETime->Year = (UINT16) (FTime->Date.Year + 1980);\r
- ETime->Month = (UINT8) FTime->Date.Month;\r
- ETime->Day = (UINT8) FTime->Date.Day;\r
- ETime->Hour = (UINT8) FTime->Time.Hour;\r
- ETime->Minute = (UINT8) FTime->Time.Minute;\r
- ETime->Second = (UINT8) (FTime->Time.DoubleSecond * 2);\r
+ ETime->Year = (UINT16)(FTime->Date.Year + 1980);\r
+ ETime->Month = (UINT8)FTime->Date.Month;\r
+ ETime->Day = (UINT8)FTime->Date.Day;\r
+ ETime->Hour = (UINT8)FTime->Time.Hour;\r
+ ETime->Minute = (UINT8)FTime->Time.Minute;\r
+ ETime->Second = (UINT8)(FTime->Time.DoubleSecond * 2);\r
ETime->Nanosecond = 0;\r
ETime->TimeZone = EFI_UNSPECIFIED_TIMEZONE;\r
ETime->Daylight = 0;\r
**/\r
VOID\r
FatGetCurrentFatTime (\r
- OUT FAT_DATE_TIME *FatNow\r
+ OUT FAT_DATE_TIME *FatNow\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_TIME Now;\r
+ EFI_STATUS Status;\r
+ EFI_TIME Now;\r
\r
Status = gRT->GetTime (&Now, NULL);\r
if (!EFI_ERROR (Status)) {\r
FatEfiTimeToFatTime (&Now, FatNow);\r
} else {\r
ZeroMem (&Now, sizeof (EFI_TIME));\r
- Now.Year = 1980;\r
+ Now.Year = 1980;\r
Now.Month = 1;\r
- Now.Day = 1;\r
+ Now.Day = 1;\r
FatEfiTimeToFatTime (&Now, FatNow);\r
}\r
}\r
**/\r
BOOLEAN\r
FatIsValidTime (\r
- IN EFI_TIME *Time\r
+ IN EFI_TIME *Time\r
)\r
{\r
- UINTN Day;\r
- BOOLEAN ValidTime;\r
+ UINTN Day;\r
+ BOOLEAN ValidTime;\r
\r
ValidTime = TRUE;\r
\r
// Check the fields for range problems\r
// Fat can only support from 1980\r
//\r
- if (Time->Year < 1980 ||\r
- Time->Month < 1 ||\r
- Time->Month > 12 ||\r
- Time->Day < 1 ||\r
- Time->Day > 31 ||\r
- Time->Hour > 23 ||\r
- Time->Minute > 59 ||\r
- Time->Second > 59 ||\r
- Time->Nanosecond > 999999999\r
- ) {\r
-\r
+ if ((Time->Year < 1980) ||\r
+ (Time->Month < 1) ||\r
+ (Time->Month > 12) ||\r
+ (Time->Day < 1) ||\r
+ (Time->Day > 31) ||\r
+ (Time->Hour > 23) ||\r
+ (Time->Minute > 59) ||\r
+ (Time->Second > 59) ||\r
+ (Time->Nanosecond > 999999999)\r
+ )\r
+ {\r
ValidTime = FALSE;\r
-\r
} else {\r
//\r
// Perform a more specific check of the day of the month\r
//\r
Day = mMonthDays[Time->Month - 1];\r
- if (Time->Month == 2 && IS_LEAP_YEAR (Time->Year)) {\r
+ if ((Time->Month == 2) && IS_LEAP_YEAR (Time->Year)) {\r
Day += 1;\r
//\r
// 1 extra day this month\r
//\r
}\r
+\r
if (Time->Day > Day) {\r
ValidTime = FALSE;\r
}\r