diff options
author | Dennis Kobert <dennis@kobert.dev> | 2019-11-08 22:50:13 +0100 |
---|---|---|
committer | Dennis Kobert <dennis@kobert.dev> | 2019-11-08 22:50:13 +0100 |
commit | 933abe8bc6f9480bcdea39c6bdd1a4e937402a06 (patch) | |
tree | b6679b8e3c68fd71e59ec3ba22fe086525ddd3bc /kernel/src/lib.rs | |
parent | f3dcfa225a6e3b7e6916e9b5a22db9090275d065 (diff) |
Add InterruptStackTable
Diffstat (limited to 'kernel/src/lib.rs')
-rw-r--r-- | kernel/src/lib.rs | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs index 8ec68e5..15f027b 100644 --- a/kernel/src/lib.rs +++ b/kernel/src/lib.rs @@ -26,6 +26,7 @@ pub fn test_runner(tests: &[&dyn Fn(&mut OStream)]) { #[no_mangle] pub extern "C" fn _start() -> ! { + interrupts::gdt::init(); interrupts::table::init(); if cfg!(test) { #[cfg(test)] @@ -37,10 +38,19 @@ pub extern "C" fn _start() -> ! { stdout.clear(); panic!("panic! at the disco"); - core::iter::successors(Some(0), |n| Some(n + 1)) - .for_each(|n| write!(&mut stdout, "hello world {}!", n).unwrap()); - - x86_64::instructions::interrupts::int3(); + /// TODO: write test + ///fn _loop(i: u64) -> u64 { + /// if i > 0b1010101001101101 { + /// return i; + /// } + /// let n = i; + /// let mut stdout = OStream::new(); + /// write!(&mut stdout, "{:x}", &n as *const u64 as u64).unwrap(); + /// _loop(i + 1) + ///} + ///_loop(0); + /// TODO: write test + ///x86_64::instructions::interrupts::int3(); loop {} } @@ -72,7 +82,6 @@ pub extern "C" fn panic_handler(info: &core::panic::PanicInfo) -> ! { info.message() .unwrap_or(&format_args!("no panic information obtainable")) ); - //loop{} stderr.set_centered(false); if cfg!(test) { write!(serial::SerialStream::new(), "Testing failed\n").unwrap(); |