efi
efi copied to clipboard
Ergonomic Rust framework for writing UEFI applications.
``` error[E0425]: cannot find function `utf8_char_width` in module `core_str` --> /home/lmt/.cargo/registry/src/github.com-1ecc6299db9ec823/efi-0.2.1/src/io/mod.rs:1960:31 | 1960 | let width = core_str::utf8_char_width(first_byte); | ^^^^^^^^^^^^^^^ not found in `core_str` ``` ``` % rustc --version rustc...
https://github.com/gurry/efi/commit/b639a367ddc794f0ab90e1d3278956b6bd23dd5e fixes new compiler errors on nightly. Thanks! Would it be possible to get a new crate published with these changes? v0.2.1 is too old.
Currently we hold a lot of heap allocated pointers which we're just dropping on the floor when done with them. To fix that we should expose a type called `EfiBox`...
Currently we do not clean heap allocated pointers given to us by UEFI at many please (such as `DevicePath`). Use `EfiBox` to store these pointers which will ensure they're cleaned...
Currently we have a separate `virtfs_efi` crate which offers a way to create a virtual, possibly in-memory file system. It does this by implementing the SIMPLE_FILE_SYSTEM protocol. Perhaps it's a...
In the `events` module only `Timer` is currently implement. Implement other event types as well
Current the following are not implemented: - Udp read - Tcp read - Tcp write Implement them
Instead of carrying around copies of `std::io` types in our code see if we can make use of core_io: https://github.com/jethrogb/rust-core_io
Currently the code assumes x64 at many places -- practically everywhere in the FFI declarations. Change this so that we compile for 32-bit architectures like x86 as well.
Currently we have to call the raw UEFI code to create device handles and install protocols. Create a model that's more ergonomic and safe. For example we could have a...