Skip to content

Commit

Permalink
Update description of uefi-services
Browse files Browse the repository at this point in the history
  • Loading branch information
GabrielMajeri committed Sep 20, 2018
1 parent 6a58b30 commit 183dd33
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,29 @@ interfaces, and allow developers to write idiomatic Rust code.

This project contains multiple sub-crates:

- `uefi` (top directory): defines the standard UEFI tables / interfaces.
- `uefi` (top directory): defines the standard UEFI tables / interfaces. The objective is to stay unopionated
and safely wrap most interfaces.

- `uefi-services`: initializes many convenience crates:
- `uefi-logger`: wrapper for the standard [logging](https://github.com/rust-lang-nursery/log) crate. Prints log output to console.
- `uefi-alloc`: implements a global allocator using UEFI functions. This allows you to allocate objects on the heap.
- `uefi-logger`: wrapper for the standard [logging](https://github.com/rust-lang-nursery/log) crate.
Prints log output to console. No buffering is done: this is not a high-performance logger.
- `uefi-alloc`: implements a global allocator using UEFI functions.
This allows you to allocate objects on the heap.
There's no guarantee of the efficiency of UEFI's allocator.

Since the global logger / allocator **can only be set once** per binary, if you're building
a real OS you will want to either:
- provide your own logger / allocator, using _your_ kernel's systems
- use UEFI for writing an OS-specific boot loader binary, while your kernel is a separate binary, packaged
together with the boot loader: similar to what the Linux kernel's [EFI stub] does

- `uefi-exts`: extends existing UEFI objects by providing utility functions for common API usage.
Requires the `alloc` crate (either use `uefi-alloc` or your own custom allocator).

- `uefi-test-runner` a UEFI application that runs unit / integration tests.

[EFI stub]: https://www.kernel.org/doc/Documentation/efi-stub.txt

## Documentation

This crate's documentation is fairly minimal, and you are encouraged to refer to
Expand Down

0 comments on commit 183dd33

Please sign in to comment.