#![no_std]
#![feature(alloc_error_handler)]
#![feature(concat_idents)]
#![feature(core_intrinsics)]
#![feature(custom_test_frameworks)]
#![feature(format_args_nl)]
#![feature(lang_items)]
#![feature(log_syntax)]
#![feature(prelude_import)]
#![feature(prelude_2024)]
#![feature(slice_concat_ext)]
#![feature(test)]
#![feature(trace_macros)]
#[prelude_import]
#[allow(unused)]
use prelude::*;
#[allow(unused_imports)]
#[macro_use]
extern crate alloc as alloc_crate;
#[macro_use]
mod macros;
pub mod prelude;
pub use alloc_crate::borrow;
pub use alloc_crate::boxed;
pub use alloc_crate::fmt;
pub use alloc_crate::format;
pub use alloc_crate::rc;
pub use alloc_crate::slice;
pub use alloc_crate::str;
pub use alloc_crate::string;
pub use alloc_crate::vec;
pub use core::any;
pub use core::arch;
pub use core::array;
pub use core::cell;
pub use core::char;
pub use core::clone;
pub use core::cmp;
pub use core::convert;
pub use core::default;
pub use core::hash;
pub use core::hint;
pub use core::i128;
pub use core::i16;
pub use core::i32;
pub use core::i64;
pub use core::i8;
pub use core::intrinsics;
pub use core::isize;
pub use core::iter;
pub use core::marker;
pub use core::mem;
pub use core::ops;
pub use core::option;
pub use core::pin;
pub use core::ptr;
pub use core::result;
pub use core::u128;
pub use core::u16;
pub use core::u32;
pub use core::u64;
pub use core::u8;
pub use core::usize;
#[allow(deprecated, deprecated_in_future)]
pub use core::{
assert_eq,
assert_ne,
debug_assert,
debug_assert_eq,
debug_assert_ne,
r#try,
todo,
unimplemented,
unreachable,
write,
writeln,
};
pub use core::prelude::v1::{
assert,
cfg,
column,
compile_error,
concat,
concat_idents,
env,
file,
format_args,
format_args_nl,
include,
include_bytes,
include_str,
line,
log_syntax,
module_path,
option_env,
stringify,
trace_macros,
};
pub use uefi;
pub use uefi_alloc;
pub mod rt;
pub mod exec;
pub mod ffi;
pub mod fs;
pub mod io;
pub mod loaded_image;
pub mod pointer;
pub mod proto;
pub mod shell;
pub mod vars;
#[global_allocator]
static ALLOCATOR: uefi_alloc::Allocator = uefi_alloc::Allocator;
static mut HANDLE: uefi::Handle = uefi::Handle(0);
static mut SYSTEM_TABLE: *mut uefi::system::SystemTable = 0 as *mut uefi::system::SystemTable;
pub fn handle() -> uefi::Handle {
unsafe { HANDLE }
}
pub fn system_table() -> &'static uefi::system::SystemTable {
unsafe { &*SYSTEM_TABLE }
}
pub unsafe fn system_table_mut() -> &'static mut uefi::system::SystemTable {
&mut *SYSTEM_TABLE
}