alloc
only.Expand description
A high-level file system API for UEFI applications close to the std::fs
module from Rust’s standard library. The main type by this module is
FileSystem
.
Difference to typical File System Abstractions
Users perform actions on dedicated volumes: For example, the boot volume, such as a CD-rom, USB-stick, or any other storage device.
Unlike in the API of typical UNIX file system abstractions, there is no virtual file system. Unlike in Windows, there is no way to access volumes by a dedicated name.
Paths
All paths are absolute and follow the FAT-like file system conventions for
paths. Thus, there is no current working directory and path components
like .
and ..
are not supported. In other words, the current working
directory is always /
, i.e., the root, of the opened volume.
Symlinks or hard-links are not supported but only directories and regular
files with plain linear paths to them. For more information, see
Path
and PathBuf
.
API Hints
There is no File
abstraction as in the Rust std
library. Instead, it is
intended to work with the file system via dedicated functions, similar to
the public functions of the std::fs
module.
There is no automatic synchronization of the file system for concurrent accesses. This is in the responsibility of the user.
Structs
- Iterator over the components of a path. For example, the path
\\a\\b\\c
has the components[a, b, c]
. This is a more basic approach than the components type of the standard library. - High-level file-system abstraction for UEFI volumes with an API that is close to
std::fs
. It acts as convenient accessor around theSimpleFileSystemProtocol
. - UEFI-error with context when working with the underlying UEFI file protocol.
- Iterates over the entries of an UEFI directory. It returns boxed values of type
UefiFileInfo
.
Enums
- All errors that can happen when working with the
FileSystem
. - Enum that further specifies the context in that an
Error
occurred. - Errors related to file paths.
Constants
- Deny list of characters for path components. UEFI supports FAT-like file systems. According to https://en.wikipedia.org/wiki/Comparison_of_file_systems, paths should not contain these symbols.
- Common skip dirs in UEFI/FAT-style file systems.
- The default separator for paths.
- Stringified version of
SEPARATOR
.
Type Definitions
- Return type for public
FileSystem
operations.