2 unstable releases

0.1.0 Apr 16, 2019
0.0.0 Feb 17, 2019

#546 in Memory management

MIT license

22KB
471 lines

efw Latest Version Build Status

Framework for writing UEFI application


State of development

The types in this crate do not yet wrap the entirety of the UEFI spec. Currently only a subset of UEFI functions are defined. Some types (SystemTable) for example allow you access lower layers though (via the bits() method).

Getting started

This is a hello world application using efw:

#![no_std]
#![no_main]

#[macro_use] extern crate efw;

#[no_mangle]
fn efw_main() {
    println!("Hello, world!");
}

efw reexports the contents of the alloc crate so you can use dynamic memory allocation:

#![no_std]
#![no_main]

#[macro_use] extern crate efw;

#[no_mangle]
fn efw_main() {
    let vector = vec![1, 2, 3];
    println!("Allocated vector: {:?}", vector);
}

Protocol support

efw provides a set of predefined protocols that are needed for it to function properly. You can extend the set of protocols though by implementing the Protocol trait. That trait provides methods for finding handles supporting the protocol.

Dependencies

~280KB