tidy up for final version
This commit is contained in:
@@ -52,28 +52,19 @@ nmi_handler!(non_maskable, |stack| {
|
||||
use crate::info;
|
||||
use crate::time::realtime;
|
||||
|
||||
let req = syscall::TimeSpec {
|
||||
tv_sec: 0,
|
||||
tv_nsec: 0,
|
||||
};
|
||||
|
||||
let time = realtime();
|
||||
info!("{} : Entering NMI", time);
|
||||
|
||||
// let mut rem = syscall::TimeSpec::default();
|
||||
// let _ = crate::syscall::time::nanosleep(&req, Some(&mut rem));
|
||||
|
||||
// Page Fault
|
||||
let addr = 0xDEADC0DE as *const u8;
|
||||
let n = core::ptr::read(addr);
|
||||
println!("{}",n);
|
||||
//loop{}
|
||||
// core::arch::asm!(
|
||||
// "
|
||||
// mov rdx, [0xDEADC0DE]
|
||||
// ");
|
||||
|
||||
// let mut rem = syscall::TimeSpec::default();
|
||||
// let _ = crate::syscall::time::nanosleep(&req, Some(&mut rem));
|
||||
let time = realtime();
|
||||
info!("{} : Exiting NMI", time);
|
||||
|
||||
@@ -173,6 +164,8 @@ interrupt_error!(page, |stack| {
|
||||
println!(" Reserved write: {}", stack.code & 1 << 3 != 0);
|
||||
println!(" Instruction fetch: {}", stack.code & 1 << 4 != 0);
|
||||
// stack.dump();
|
||||
// stack.inner.iret.cs
|
||||
// stack.inner.iret.rip
|
||||
stack_trace();
|
||||
// ksignal(SIGSEGV);
|
||||
|
||||
|
||||
@@ -509,10 +509,10 @@ macro_rules! nmi_handler {
|
||||
"
|
||||
nested_nmi:
|
||||
/// ! repalce with address of repeat nmi and end repeat nmi
|
||||
mov rdx, 0x080a3352
|
||||
mov rdx, 0x0806f292
|
||||
cmp rdx, 8[rsp]
|
||||
ja 1f
|
||||
mov rdx, 0x080a3377
|
||||
mov rdx, 0x0806f2b7
|
||||
cmp rdx, 8[rsp]
|
||||
ja nested_nmi_out
|
||||
",
|
||||
@@ -527,7 +527,7 @@ macro_rules! nmi_handler {
|
||||
pushf
|
||||
push {GDT_KERNEL_CODE}
|
||||
//replace address repeat nmi
|
||||
push 0x080a3352
|
||||
push 0x0806f292
|
||||
",
|
||||
// nested nmi out
|
||||
"
|
||||
@@ -586,9 +586,9 @@ macro_rules! nmi_handler {
|
||||
"
|
||||
//call {frsp}
|
||||
7:
|
||||
add rsp,$(12*8)
|
||||
add rsp,$(5*8)
|
||||
|
||||
mov QWORD PTR 5*8[rsp], $0
|
||||
mov QWORD PTR [rsp + 5 * 8], $0
|
||||
|
||||
//call {frsp}
|
||||
iretq
|
||||
|
||||
Reference in New Issue
Block a user