11#ifndef __FVFS_INTERNAL_H__
12#define __FVFS_INTERNAL_H__
80#define FVFS_FILE_SIGNATURE SIGNATURE_32 ('f', 'v', 'f', 'i')
81#define FVFS_FILE_INFO_SIGNATURE SIGNATURE_32 ('f', 'v', 'i', 'n')
82#define FVFS_INSTANCE_SIGNATURE SIGNATURE_32 ('f', 'v', 'f', 's')
84#define FVFS_INSTANCE_FROM_SIMPLE_FS_THIS(This) CR ( \
86 FV_FILESYSTEM_INSTANCE, \
88 FVFS_INSTANCE_SIGNATURE \
91#define FVFS_FILE_FROM_FILE_THIS(This) CR ( \
98#define FVFS_FILE_INFO_FROM_LINK(This) CR ( \
100 FV_FILESYSTEM_FILE_INFO, \
102 FVFS_FILE_INFO_SIGNATURE \
105#define FVFS_FILE_FROM_LINK(FileLink) CR (FileLink, FV_FILESYSTEM_FILE, Link, FVFS_FILE_SIGNATURE)
107#define FVFS_GET_FIRST_FILE(Instance) FVFS_FILE_FROM_LINK (GetFirstNode (&Instance->FileHead))
109#define FVFS_GET_FIRST_FILE_INFO(Instance) FVFS_FILE_INFO_FROM_LINK (GetFirstNode (&Instance->FileInfoHead))
111#define FV_FILETYPE_IS_EXECUTABLE(Type) ((Type) == EFI_FV_FILETYPE_PEIM ||\
112 (Type) == EFI_FV_FILETYPE_DRIVER || \
113 (Type) == EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER || \
114 (Type) == EFI_FV_FILETYPE_APPLICATION)
529 OUT CHAR16 **DriverName
607 OUT CHAR16 **ControllerName
EFI_STATUS EFIAPI FvSimpleFileSystemComponentNameGetControllerName(IN EFI_COMPONENT_NAME_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE ChildHandle OPTIONAL, IN CHAR8 *Language, OUT CHAR16 **ControllerName)
EFI_STATUS EFIAPI FvSimpleFileSystemSetPosition(IN EFI_FILE_PROTOCOL *This, IN UINT64 Position)
EFI_STATUS EFIAPI FvSimpleFileSystemDriverStop(IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer OPTIONAL)
EFI_STATUS EFIAPI FvSimpleFileSystemDriverStart(IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
EFI_STATUS EFIAPI FvSimpleFileSystemGetInfo(IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN OUT UINTN *BufferSize, OUT VOID *Buffer)
EFI_STATUS EFIAPI FvSimpleFileSystemOpenVolume(IN EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **RootFile)
EFI_STATUS EFIAPI FvSimpleFileSystemDelete(IN EFI_FILE_PROTOCOL *This)
EFI_STATUS EFIAPI FvSimpleFileSystemOpen(IN EFI_FILE_PROTOCOL *This, OUT EFI_FILE_PROTOCOL **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes)
EFI_STATUS EFIAPI FvSimpleFileSystemDriverSupported(IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
EFI_STATUS EFIAPI FvSimpleFileSystemRead(IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, OUT VOID *Buffer)
EFI_STATUS EFIAPI FvSimpleFileSystemSetInfo(IN EFI_FILE_PROTOCOL *This, IN EFI_GUID *InformationType, IN UINTN BufferSize, IN VOID *Buffer)
EFI_STATUS EFIAPI FvSimpleFileSystemGetPosition(IN EFI_FILE_PROTOCOL *This, OUT UINT64 *Position)
EFI_STATUS EFIAPI FvSimpleFileSystemWrite(IN EFI_FILE_PROTOCOL *This, IN OUT UINTN *BufferSize, IN VOID *Buffer)
EFI_STATUS EFIAPI FvSimpleFileSystemFlush(IN EFI_FILE_PROTOCOL *This)
EFI_STATUS FvFsGetFileSize(IN EFI_FIRMWARE_VOLUME2_PROTOCOL *FvProtocol, IN OUT FV_FILESYSTEM_FILE_INFO *FvFileInfo)
EFI_STATUS EFIAPI FvSimpleFileSystemClose(IN EFI_FILE_PROTOCOL *This)
EFI_STATUS EFIAPI FvSimpleFileSystemComponentNameGetDriverName(IN EFI_COMPONENT_NAME_PROTOCOL *This, IN CHAR8 *Language, OUT CHAR16 **DriverName)