From 157bea025cf120be22efe6327e6dd6b390fc4ba1 Mon Sep 17 00:00:00 2001 From: Danny Holman Date: Fri, 16 Feb 2024 12:57:09 -0600 Subject: arch: i386: move raw assembly calls to their own header Move simple assembly calls to their own header. All one or two line assembly calls should be defined in a single place. Signed-off-by: Danny Holman --- arch/i386/boot/boot.s | 13 ------------- arch/i386/include/kernel/asm.h | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 13 deletions(-) create mode 100644 arch/i386/include/kernel/asm.h diff --git a/arch/i386/boot/boot.s b/arch/i386/boot/boot.s index 48f9f29..005b07b 100644 --- a/arch/i386/boot/boot.s +++ b/arch/i386/boot/boot.s @@ -92,15 +92,9 @@ load_page_dir: .global enable_paging .type enable_paging, @function enable_paging: - pushl %ebp - movl %esp, %ebp - movl %cr0, %eax orl $0x80000001, %eax movl %eax, %cr0 - - movl %ebp, %esp - popl %ebp ret .global flush_gdt @@ -118,13 +112,6 @@ flush_gdt: .flush: ret -.global flush_tss -.type flush_tss, @function -flush_tss: - movw $0x28, %ax - ltr %ax - ret - .global jump_userspace .type jump_userspace, @function jump_userspace: diff --git a/arch/i386/include/kernel/asm.h b/arch/i386/include/kernel/asm.h new file mode 100644 index 0000000..33ec3d7 --- /dev/null +++ b/arch/i386/include/kernel/asm.h @@ -0,0 +1,19 @@ +#ifndef I386_ASM_H +#define I386_ASM_H + +static inline void enable_ints(void) { + __asm__ volatile("sti"); + return; +} + +static inline void disable_ints(void) { + __asm__ volatile("cli"); + return; +} + +static inline void flush_tss(void) { + __asm__ volatile("movw $0x28, %ax; ltr %ax"); + return; +} + +#endif -- cgit v1.2.3