Files
Sylva/kernel/interrupt/idt_helpers.S
T
2026-05-31 18:35:25 +08:00

34 lines
470 B
ArmAsm

.intel_syntax noprefix
.global idt_load
idt_load:
sub rsp, 10
mov [rsp], si
mov [rsp + 2], rdi
lidt [rsp]
add rsp, 10
ret
.global lgdt_and_reload
lgdt_and_reload:
lgdt [rdi]
push 0x08
mov rax, offset .reload_cs
push rax
retfq
.reload_cs:
mov ax, 0x10
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov ss, ax
ret
.global tss_load
tss_load:
ltr di
ret
.section .note.GNU-stack,"",@progbits