diff options
author | Danny Holman <dholman@gymli.org> | 2024-02-16 12:57:09 -0600 |
---|---|---|
committer | Danny Holman <dholman@gymli.org> | 2024-02-16 12:57:09 -0600 |
commit | 157bea025cf120be22efe6327e6dd6b390fc4ba1 (patch) | |
tree | 92a7b747fcefc9d6e93001faf98cde99b0f15018 | |
parent | 67dba16e46cd0f3f204feae3dc0a95a8c3262ff7 (diff) |
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 <dholman@gymli.org>
-rw-r--r-- | arch/i386/boot/boot.s | 13 | ||||
-rw-r--r-- | arch/i386/include/kernel/asm.h | 19 |
2 files changed, 19 insertions, 13 deletions
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 |