1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#![no_std]
#![feature(const_btree_new)]
#![feature(const_mut_refs)]
#![feature(linked_list_remove)]
#![feature(panic_info_message)]

#[macro_use]
extern crate lazy_static;
extern crate fe_osi;

mod fe_alloc;
pub mod interrupt;
pub mod ipc;
mod spinlock;
pub mod syscall;
pub mod task;

use fe_alloc::KernelAllocator;

//Declare the heap allocator so we can use Rust's collections
#[global_allocator]
static mut A: KernelAllocator = KernelAllocator;

extern "C" {
    fn disable_interrupts();
    fn enable_interrupts();
}