|
EFI_STATUS EFIAPI | fsw_efi_DriverBinding_Supported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath) |
|
EFI_STATUS EFIAPI | fsw_efi_DriverBinding_Start (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath) |
|
EFI_STATUS EFIAPI | fsw_efi_DriverBinding_Stop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer) |
|
EFI_STATUS EFIAPI | fsw_efi_ComponentName_GetDriverName (IN EFI_COMPONENT_NAME_PROTOCOL *This, IN CHAR8 *Language, OUT CHAR16 **DriverName) |
|
EFI_STATUS EFIAPI | fsw_efi_ComponentName_GetControllerName (IN EFI_COMPONENT_NAME_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE ChildHandle OPTIONAL, IN CHAR8 *Language, OUT CHAR16 **ControllerName) |
|
void | fsw_efi_change_blocksize (struct fsw_volume *vol, fsw_u32 old_phys_blocksize, fsw_u32 old_log_blocksize, fsw_u32 new_phys_blocksize, fsw_u32 new_log_blocksize) |
|
fsw_status_t | fsw_efi_read_block (struct fsw_volume *vol, fsw_u32 phys_bno, void *buffer) |
|
EFI_STATUS | fsw_efi_map_status (fsw_status_t fsw_status, FSW_VOLUME_DATA *Volume) |
|
EFI_STATUS EFIAPI | fsw_efi_FileSystem_OpenVolume (IN EFI_FILE_IO_INTERFACE *This, OUT EFI_FILE **Root) |
|
EFI_STATUS | fsw_efi_dnode_to_FileHandle (IN struct fsw_dnode *dno, OUT EFI_FILE **NewFileHandle) |
|
EFI_STATUS | fsw_efi_file_read (IN FSW_FILE_DATA *File, IN OUT UINTN *BufferSize, OUT VOID *Buffer) |
|
EFI_STATUS | fsw_efi_file_getpos (IN FSW_FILE_DATA *File, OUT UINT64 *Position) |
|
EFI_STATUS | fsw_efi_file_setpos (IN FSW_FILE_DATA *File, IN UINT64 Position) |
|
EFI_STATUS | fsw_efi_dir_open (IN FSW_FILE_DATA *File, OUT EFI_FILE **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes) |
|
EFI_STATUS | fsw_efi_dir_read (IN FSW_FILE_DATA *File, IN OUT UINTN *BufferSize, OUT VOID *Buffer) |
|
EFI_STATUS | fsw_efi_dir_setpos (IN FSW_FILE_DATA *File, IN UINT64 Position) |
|
EFI_STATUS | fsw_efi_dnode_getinfo (IN FSW_FILE_DATA *File, IN EFI_GUID *InformationType, IN OUT UINTN *BufferSize, OUT VOID *Buffer) |
|
EFI_STATUS | fsw_efi_dnode_fill_FileInfo (IN FSW_VOLUME_DATA *Volume, IN struct fsw_dnode *dno, IN OUT UINTN *BufferSize, OUT VOID *Buffer) |
|
EFI_STATUS | fsw_efi_bless_info (IN FSW_VOLUME_DATA *Volume, IN UINT32 type, OUT VOID *Buffer, IN OUT UINTN *BufferSize) |
|
struct fsw_fstype_table | FSW_FSTYPE_TABLE_NAME (FSTYPE) |
|
EFI_STATUS EFIAPI | fsw_efi_main (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
|
EFI_STATUS EFIAPI | fsw_efi_FileHandle_Open (IN EFI_FILE *This, OUT EFI_FILE **NewHandle, IN CHAR16 *FileName, IN UINT64 OpenMode, IN UINT64 Attributes) |
|
EFI_STATUS EFIAPI | fsw_efi_FileHandle_Close (IN EFI_FILE *This) |
|
EFI_STATUS EFIAPI | fsw_efi_FileHandle_Delete (IN EFI_FILE *This) |
|
EFI_STATUS EFIAPI | fsw_efi_FileHandle_Read (IN EFI_FILE *This, IN OUT UINTN *BufferSize, OUT VOID *Buffer) |
|
EFI_STATUS EFIAPI | fsw_efi_FileHandle_Write (IN EFI_FILE *This, IN OUT UINTN *BufferSize, IN VOID *Buffer) |
|
EFI_STATUS EFIAPI | fsw_efi_FileHandle_GetPosition (IN EFI_FILE *This, OUT UINT64 *Position) |
|
EFI_STATUS EFIAPI | fsw_efi_FileHandle_SetPosition (IN EFI_FILE *This, IN UINT64 Position) |
|
EFI_STATUS EFIAPI | fsw_efi_FileHandle_GetInfo (IN EFI_FILE *This, IN EFI_GUID *InformationType, IN OUT UINTN *BufferSize, OUT VOID *Buffer) |
|
EFI_STATUS EFIAPI | fsw_efi_FileHandle_SetInfo (IN EFI_FILE *This, IN EFI_GUID *InformationType, IN UINTN BufferSize, IN VOID *Buffer) |
|
EFI_STATUS EFIAPI | fsw_efi_FileHandle_Flush (IN EFI_FILE *This) |
|
EFI host environment code.
Definition in file fsw_efi.c.
EFI_STATUS EFIAPI fsw_efi_DriverBinding_Start |
( |
IN EFI_DRIVER_BINDING_PROTOCOL * | This, |
|
|
IN EFI_HANDLE | ControllerHandle, |
|
|
IN EFI_DEVICE_PATH_PROTOCOL * | RemainingDevicePath ) |
Driver Binding EFI protocol, Start function. This function is called by EFI to start driving the given device. It is still possible at this point to return EFI_UNSUPPORTED, and in fact we will do so if the file system driver cannot find the superblock signature (or equivalent) that it expects.
This function allocates memory for a per-volume structure, opens the required protocols (just Disk I/O in our case, Block I/O is only looked at to get the MediaId field), and lets the FSW core mount the file system. If successful, an EFI Simple File System protocol is exported on the device handle.
Definition at line 246 of file fsw_efi.c.
EFI_STATUS EFIAPI fsw_efi_DriverBinding_Stop |
( |
IN EFI_DRIVER_BINDING_PROTOCOL * | This, |
|
|
IN EFI_HANDLE | ControllerHandle, |
|
|
IN UINTN | NumberOfChildren, |
|
|
IN EFI_HANDLE * | ChildHandleBuffer ) |
Driver Binding EFI protocol, Stop function. This function is called by EFI to stop the driver on the given device. This translates to an unmount call for the FSW core.
We assume that all file handles on the volume have been closed before the driver is stopped. At least with the EFI shell, that is actually the case; it closes all file handles between commands.
Definition at line 331 of file fsw_efi.c.