summaryrefslogtreecommitdiff
path: root/arch/i386/kernel/jump_userspace.s
blob: add144a37f24556fbb07ca3ba5d65c3e13722251 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.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

        iret