summaryrefslogtreecommitdiffstats
path: root/arch/x86_64/loadgdt.S
blob: a293bae9b43733614391d452feb161214e92039f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
.global x86_64_lgdt
.type x86_64_lgdt @function
x86_64_lgdt:
    lgdt (%rdi)
.reload_segments:
    pushq $0x8
    leaq .reload_cs, %rax
    pushq %rax
    lretq
.reload_cs:
    movw $0x10, %ax
    movw %ax, %ds
    movw %ax, %es
    movw %ax, %fs
    movw %ax, %gs
    movw %ax, %ss
    retq
.size x86_64_lgdt, . - x86_64_lgdt

.global x86_64_flush_tss
.type x86_64_flush_tss @function
x86_64_flush_tss:
    movw $0x30, %ax
    ltr %ax
    retq
.size x86_64_flush_tss, . - x86_64_flush_tss