| Age | Commit message (Collapse) | Author | Lines |
|
It uses the file metadata on Unix with a fallback for files incorrectly
reported as zero-sized. It uses `GetFileSizeEx` on Windows.
This reduces the number of syscalls needed for determining the file size
of an open file from 3 to 1.
|
|
These methods now return Result<(), TryLockError> instead of
Result<bool, Error> to make their use less errorprone
|
|
UEFI does not have specific modes for create_new, truncate and append.
So those need to to be simulated after opening the file.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
|
|
- UEFI does not have symlinks. So lstat and stat should behave the same.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
|
|
- Should be same as absolute in UEFI since there are no symlinks.
- Also each absolute path representation should be unique according to
the UEFI specification.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
|
|
- Since there is no direct mkdir in UEFI, first check if a file/dir with
same path exists and then create the directory.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
|
|
Also adds the initial file abstractions.
The file opening algorithm is inspired from UEFI shell. It starts by
classifying if the Path is Shell mapping, text representation of device
path protocol, or a relative path and converts into an absolute text
representation of device path protocol.
After that, it queries all handles supporting
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL and opens the volume that matches the
device path protocol prefix (similar to Windows drive). After that, it
opens the file in the volume using the remaining pat.
It also introduces OwnedDevicePath and BorrowedDevicePath abstractions
to allow working with the base UEFI and Shell device paths efficiently.
DevicePath in UEFI behaves like an a group of nodes laied out in the
memory contiguously and thus can be modeled using iterators.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
|
|
- Just the permission and file type.
- FileTimes will need some new conversion functions and thus will come
with a future PR. Trying to keep things simple here.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
|
|
- Similar to FilePermissions, using bool to represent the bitfield.
- FileType cannot be changed, so no need to worry about converting back
to attribute.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
|
|
- UEFI file permissions are indicated using a u64 bitfield used for
readonly/filetype, etc.
- Using normal bool with to and from attribute conversions to
FilePermission from overriding some other bitfields.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
|
|
|