36 lines
988 B
Rust
36 lines
988 B
Rust
#[macro_export]
|
|
macro_rules! interrupt {
|
|
($name:ident, $func:block) => {
|
|
pub extern "x86-interrupt" fn $name(stack_frame: &mut ExceptionStackFrame)
|
|
{
|
|
println!("Exception: {}", stringify!($name));
|
|
println!("{:#?}", stack_frame);
|
|
flush!();
|
|
|
|
#[allow(unused_variables)]
|
|
fn inner(stack: &mut ExceptionStackFrame) {
|
|
$func
|
|
}
|
|
inner(stack_frame);
|
|
}
|
|
}
|
|
}
|
|
|
|
#[macro_export]
|
|
macro_rules! interrupt_err {
|
|
($name:ident, $func:block) => {
|
|
pub extern "x86-interrupt" fn $name(
|
|
stack_frame: &mut ExceptionStackFrame, _error_code: u32)
|
|
{
|
|
println!("Exception: {}", stringify!($name));
|
|
println!("{:#?}", stack_frame);
|
|
flush!();
|
|
|
|
#[allow(unused_variables)]
|
|
fn inner(stack: &mut ExceptionStackFrame) {
|
|
$func
|
|
}
|
|
inner(stack_frame);
|
|
}
|
|
}
|
|
}
|