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
28
29
30
//! Implementation of the Mycelium HAL for 64-bit x86 platforms.
#![cfg_attr(not(test), no_std)]
// Allow const operands in asm.
#![feature(asm_const)]
#![feature(abi_x86_interrupt)]
#![feature(doc_cfg, doc_auto_cfg)]
#![feature(extern_types)]
// A bunch of const fn features.
#![feature(const_mut_refs)]
// Oftentimes it's necessary to write to a value at a particular location in
// memory, and these types don't implement Copy to ensure they aren't
// inadvertantly copied.
#![allow(clippy::trivially_copy_pass_by_ref)]

pub(crate) use hal_core::{PAddr, VAddr};
#[cfg(feature = "alloc")]
extern crate alloc;

pub mod control_regs;
pub mod cpu;
pub mod framebuffer;
pub mod interrupt;
pub mod mm;
pub mod segment;
pub mod serial;
pub mod task;
pub mod time;
pub mod vga;

pub const NAME: &str = "x86_64";