fat.h

来自「Next BIOS Source code : Extensible Firmw」· C头文件 代码 · 共 824 行 · 第 1/2 页

H
824
字号
  IN UINTN     BufferSize,
  IN VOID      *Buffer
  );

EFI_STATUS
EFIAPI
FatFlush (
  IN EFI_FILE  *FHand
  );

EFI_STATUS
FatOFileFlush (
  IN FAT_OFILE    *OFile
  );

EFI_STATUS
EFIAPI
FatClose (
  IN EFI_FILE  *FHand
  );

EFI_STATUS
EFIAPI
FatDelete (
  IN EFI_FILE  *FHand
  );

EFI_STATUS
EFIAPI
FatSetPosition (
  IN EFI_FILE  *FHand,
  OUT UINT64   Position
  );

EFI_STATUS
EFIAPI
FatRead (
  IN EFI_FILE   *FHand,
  IN OUT UINTN  *BufferSize,
  OUT VOID      *Buffer
  );

EFI_STATUS
EFIAPI
FatWrite (
  IN EFI_FILE   *FHand,
  IN OUT UINTN  *BufferSize,
  OUT VOID      *Buffer
  );

EFI_STATUS
FatOFilePosition (
  IN FAT_OFILE  *OFile,
  IN UINT64     Position
  );

UINTN
FatSizeToClusters (
  IN UINT64  Size,
  IN UINTN   ClusterSize
  );

VOID
FatEfiTimeToFatTime (
  IN EFI_TIME        *ETime,
  OUT FAT_DATE_TIME  *FTime
  );

VOID
FatFatTimeToEfiTime (
  IN FAT_DATE_TIME  *FTime,
  OUT EFI_TIME      *ETime
  );

BOOLEAN
FatIsValidTime (
  IN EFI_TIME  *Time
  );

VOID
FatFatToStr (
  IN UINTN                            FatSize,
  IN CHAR8                            *Fat,
  OUT CHAR16                          *String
  );

BOOLEAN
FatStrToFat (
  IN CHAR16                           *String,
  IN UINTN                            FatSize,
  OUT CHAR8                           *Fat
  );

UINTN
FatStrToFatLen (
  IN CHAR16                           *String
  );
 
BOOLEAN FatLfnIsValid (
  CHAR16  *Name
  );

FAT_OFILE *
FatAllocateOFile (
  IN FAT_VOLUME           *Vol
  );
  
VOID
FatFreeOFile (
  IN FAT_OFILE  *OFile
  );

EFI_STATUS
FatSetVolumeDirty (
  IN FAT_VOLUME       *Vol,
  IN BOOLEAN          Dirty
  );

EFI_STATUS
FatDiskIo (
  IN FAT_VOLUME       *Vol,
  IN DISK_IO_MODE     IoMode,
  IN UINT64           Offset,
  IN UINTN            BufferSize,
  IN OUT VOID         *Buffer
  );

VOID
FatAcquireLock ();

EFI_STATUS
FatCleanupVolume (
  IN FAT_VOLUME           *Vol,
  IN FAT_OFILE            *OFile OPTIONAL,
  IN EFI_STATUS           Status OPTIONAL
  );

VOID
FatReleaseLock ();

BOOLEAN
FatIsLocked ();

UINT8
FatDirEntryChecksum (
  FAT_DIRECTORY_ENTRY *Dir
  );

UINTN
FatNameToDirEntryCount (
  IN CHAR16           *Name,
  OUT UINT8           *CaseFlag
  );

CHAR16 *
FatGetNameComp (
  IN CHAR16    *Path,
  OUT CHAR16   *Name
  );

BOOLEAN
FatMatchFileName (
  IN FAT_OFILE        *Entry,
  IN CHAR16           *Name
  );

BOOLEAN
FatIsDotEntry (
  IN FAT_OFILE        *OFile
  );

EFI_STATUS
FatGenerate8Dot3Name (
  IN FAT_VOLUME           *Vol,
  IN FAT_OFILE            *Parent,
  IN FAT_OFILE            *OFile
  );

//
// dirsup.c
//

VOID
FatPackDirEntry (
  IN FAT_OFILE        *OFile
  );

VOID
FatNameToStr (
  IN CHAR8            *Fatname,
  IN UINTN            Len,
  IN UINTN            LowerCase,
  IN CHAR16           *Str
  );

EFI_STATUS
FatUnpackDirEntry (
  IN FAT_OFILE        *OFile
  );

EFI_STATUS
FatNewDirEntry (
  IN FAT_OFILE            *OFile,
  IN UINTN                EntryCount,
  OUT FAT_OFILE           **NewOFile
  );

//
// dirent.c
//

EFI_STATUS
FatGetVolumeEntry (
  IN FAT_VOLUME           *Vol,
  IN CHAR16               *Name
  );

EFI_STATUS
FatSetVolumeEntry (
  IN FAT_VOLUME           *Vol,
  IN CHAR16               *Name
  );

EFI_STATUS
FatOpenEntry (
  IN FAT_VOLUME           *Vol,
  IN FAT_OFILE            *Parent,
  IN UINT64               *Position,
  OUT FAT_OFILE           **pOFile
  );

EFI_STATUS
FatGetDirOFile (
  IN FAT_OFILE            *OFile,
  IN OUT UINT64           *Position,
  OUT FAT_OFILE           **pOFile
  );

EFI_STATUS
FatOFileWriteDir (
  IN FAT_OFILE            *OFile
  );

//
//
//

EFI_STATUS
FatAllocateIFile(
  IN FAT_OFILE            *OFile,
  OUT FAT_IFILE           **pIFile
  );

EFI_STATUS
FatIFileClose (
  FAT_IFILE           *IFile
  );

EFI_STATUS
FatGetFileInfo (
  IN FAT_VOLUME       *Vol,
  IN FAT_OFILE        *OFile,
  IN OUT UINTN        *BufferSize,
  OUT VOID            *Buffer    
  );

//
// fspace.c
//

EFI_STATUS
FatShrinkEof (
  IN FAT_OFILE            *OFile
  );

EFI_STATUS
FatGrowEof (
  IN FAT_OFILE            *OFile,
  IN UINT64               NewSize
  );

UINT64
FatDirSize (
  IN FAT_OFILE            *OFile
  );

UINTN
FatGetFatEntry(
  IN FAT_VOLUME           *Fat,
  IN UINTN                Index
  );

EFI_STATUS
FatSetFatEntry(
  IN FAT_VOLUME           *Fat,
  IN UINTN                Index,
  IN UINTN                Value
  );

UINTN
FatAllocateCluster(
  IN FAT_VOLUME   *Vol
  );

VOID
FatComputeFreeInfo (
  IN FAT_VOLUME *Vol
  );

EFI_STATUS
FatCheckVolumeRef (
  IN FAT_VOLUME   *Vol
  );

BOOLEAN
FatCheckOFileRef (
  IN FAT_OFILE   *OFile
  );

//
//
//

VOID
FatSetVolumeError (
  IN FAT_OFILE            *OFile,
  IN EFI_STATUS           Status
  );

EFI_STATUS
FatAllocateVolume (
  IN  EFI_HANDLE                Handle,
  IN  EFI_DISK_IO_PROTOCOL      *DiskIo,
  IN  EFI_BLOCK_IO_PROTOCOL     *BlockIo
  );

EFI_STATUS
FatAbandonVolume (
  IN FAT_VOLUME       *Vol
  );

VOID
FatStrLwr (
  IN CHAR16   *Str
  );

VOID
FatStrUpr (
  IN CHAR16   *Str
  );

INTN
FatStriCmp (
  IN CHAR16   *s1,
  IN CHAR16   *s2
  );
 
//
// FAT volume read/write functions with cache mechanism.
//

EFI_STATUS
FatDiskIoReadVolume (
  IN FAT_VOLUME         *Vol,
  IN UINT64             Offset,
  IN UINTN              BufferSize,
  OUT VOID              *Buffer
  );

EFI_STATUS
FatDiskIoWriteVolume (
  IN FAT_VOLUME         *Vol,
  IN UINT64             Offset,
  IN UINTN              BufferSize,
  IN VOID               *Buffer
  );

EFI_STATUS
FatVolumeFlushCache (
  IN FAT_VOLUME         *Vol
  );

HASH_ENTRY*
FatInsertHashNode (
  FAT_OFILE     *OFile,
  CHAR8         *String,
  UINTN         StringSize,
  UINT32        Position
  );

VOID
FatRemoveHashNode (
  HASH_ENTRY    *Entry,
  UINT32        Position
  );
  
FAT_OFILE*
FatHashSearch (
  FAT_OFILE     *OFile,
  CHAR16        *Name, 
  UINT32        PreferedPosition
  );

EFI_STATUS
FatOFileWrite (
  IN FAT_OFILE             *OFile,
  IN UINT64                Position,
  IN OUT UINTN             *DataBufferSize,
  IN VOID                  *UserBuffer
  );
#endif //_FAT_H_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?