diff --git a/docs/labs/0x03/tasks.md b/docs/labs/0x03/tasks.md index 9fd395e2..16bb2222 100644 --- a/docs/labs/0x03/tasks.md +++ b/docs/labs/0x03/tasks.md @@ -79,20 +79,18 @@ macro_rules! as_handler { ($fn: ident) => { paste::item! { - #[naked] + #[unsafe(naked)] pub extern "x86-interrupt" fn [<$fn _handler>](_sf: InterruptStackFrame) { - unsafe { - core::arch::naked_asm!(" - push rbp - // ... - push r15 - call {} - pop r15 - // ... - pop rbp - iretq", - sym $fn); - } + core::arch::naked_asm!(" + push rbp + // ... + push r15 + call {} + pop r15 + // ... + pop rbp + iretq", + sym $fn); } } }; diff --git a/src/0x01/pkg/kernel/src/lib.rs b/src/0x01/pkg/kernel/src/lib.rs index a20c1ebf..92c083b5 100644 --- a/src/0x01/pkg/kernel/src/lib.rs +++ b/src/0x01/pkg/kernel/src/lib.rs @@ -1,5 +1,4 @@ #![no_std] -#![feature(naked_functions)] #![feature(abi_x86_interrupt)] #![feature(type_alias_impl_trait)] diff --git a/src/0x02/pkg/kernel/src/lib.rs b/src/0x02/pkg/kernel/src/lib.rs index 443868c3..350a3884 100644 --- a/src/0x02/pkg/kernel/src/lib.rs +++ b/src/0x02/pkg/kernel/src/lib.rs @@ -1,6 +1,5 @@ #![no_std] #![allow(dead_code)] -#![feature(naked_functions)] #![feature(abi_x86_interrupt)] #![feature(alloc_error_handler)] #![feature(type_alias_impl_trait)] diff --git a/src/0x03/pkg/kernel/src/utils/regs.rs b/src/0x03/pkg/kernel/src/utils/regs.rs index af64ce4c..2132ba32 100644 --- a/src/0x03/pkg/kernel/src/utils/regs.rs +++ b/src/0x03/pkg/kernel/src/utils/regs.rs @@ -46,44 +46,42 @@ impl fmt::Debug for RegistersValue { macro_rules! as_handler { ($fn: ident) => { paste::item! { - #[naked] + #[unsafe(naked)] pub extern "x86-interrupt" fn [<$fn _handler>](_sf: InterruptStackFrame) { - unsafe { - core::arch::naked_asm!(" - push rbp - push rax - push rbx - push rcx - push rdx - push rsi - push rdi - push r8 - push r9 - push r10 - push r11 - push r12 - push r13 - push r14 - push r15 - call {} - pop r15 - pop r14 - pop r13 - pop r12 - pop r11 - pop r10 - pop r9 - pop r8 - pop rdi - pop rsi - pop rdx - pop rcx - pop rbx - pop rax - pop rbp - iretq", - sym $fn); - } + core::arch::naked_asm!(" + push rbp + push rax + push rbx + push rcx + push rdx + push rsi + push rdi + push r8 + push r9 + push r10 + push r11 + push r12 + push r13 + push r14 + push r15 + call {} + pop r15 + pop r14 + pop r13 + pop r12 + pop r11 + pop r10 + pop r9 + pop r8 + pop rdi + pop rsi + pop rdx + pop rcx + pop rbx + pop rax + pop rbp + iretq", + sym $fn); } } };