summaryrefslogtreecommitdiffstats
path: root/arch/x86_64/hal/lxdt.s
blob: 15915995a0e00c92fab548a7493c9e0c57310b58 (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 load_gdt
.type load_gdt @function
load_gdt:
    lgdt (%rdi)
.reload_segments:
    pushq $0x8
    leaq .reload_cs(%rip), %rax
    pushq %rax
    retfq
.reload_cs:
    movw $0x10, %ax
    movw %ax, %ds
    movw %ax, %es
    movw %ax, %fs
    movw %ax, %gs
    movw %ax, %ss
    retq
.size load_gdt, . - load_gdt

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