@@ -31,17 +31,21 @@ Check out [the UEFI application template](template) for a quick start.
31
31
This project contains multiple sub-crates:
32
32
33
33
- ` uefi ` (top directory): defines the standard UEFI tables / interfaces.
34
- The objective is to stay unopionated and safely wrap most interfaces.
34
+ The objective is to stay unopinionated and safely wrap most interfaces.
35
35
36
- Optional features:
37
- - ` alloc ` : implements a global allocator using UEFI functions.
38
- - This allows you to allocate objects on the heap.
36
+ ** Optional crate features:**
37
+
38
+ - ` alloc ` : Enables functionality requiring the ` alloc ` crate from the Rust standard library.
39
+ - For example, this allows many convenient ` uefi-rs ` functions to operate on heap data (` Box ` ).
40
+ - It is up to the user to provide a ` #[global_allocator] ` .
41
+ - ` global_allocator ` : implements a ` #[global_allocator] ` using UEFI functions.
42
+ - This allows you to use all abstractions from the ` alloc ` crate from the Rust standard library
43
+ during runtime. Hence, ` Vec ` , ` Box ` , etc. will be able to allocate memory.
44
+ ** This is optional** , so you can provide a custom ` #[global_allocator] ` as well.
39
45
- There's no guarantee of the efficiency of UEFI's allocator.
40
- - ` logger ` : logging implementation for the standard [ log] crate.
41
- - Prints output to console.
46
+ - ` logger ` : logging implementation for the standard [ ` log ` ] crate.
47
+ - Prints output to UEFI console.
42
48
- No buffering is done: this is not a high-performance logger.
43
- - ` exts ` : extensions providing utility functions for common patterns.
44
- - Requires the ` alloc ` crate (either enable the ` alloc ` optional feature or your own custom allocator).
45
49
46
50
- ` uefi-macros ` : procedural macros that are used to derive some traits in ` uefi ` .
47
51
0 commit comments