From 5d06824289868c5a345fbcfa8ed4d1e63af84fdb Mon Sep 17 00:00:00 2001 From: Danny Holman Date: Sat, 24 Feb 2024 06:41:48 -0600 Subject: arch: i386: move jump_userspace to its own file Move the function that jumps to ring 3 to its own assembly file. Signed-off-by: Danny Holman --- arch/i386/kernel/jump_userspace.s | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 arch/i386/kernel/jump_userspace.s (limited to 'arch/i386/kernel') diff --git a/arch/i386/kernel/jump_userspace.s b/arch/i386/kernel/jump_userspace.s new file mode 100644 index 0000000..fe69880 --- /dev/null +++ b/arch/i386/kernel/jump_userspace.s @@ -0,0 +1,29 @@ +.global jump_userspace +.type jump_userspace, @function +jump_userspace: + movw $0x23, %ax + movw %ax, %ds + movw %ax, %es + movw %ax, %fs + movw %ax, %gs + + movl %esp, %eax + pushl $0x23 + pushl %eax + pushf + push $0x1B + pushl $start_init + + pushl %esp + call set_kernel_esp + addl $4, %esp + + movl $0x0004, %eax + orl $0x0002, %eax + pushl %eax + call init_page_dir + addl $4, %esp + + movl %eax, %cr3 + + iret -- cgit v1.2.3