Files
PluralTechnology/service/ptos/arch/amd64/cpu/vector.S
T
2026-07-14 22:14:57 +00:00

154 lines
2.3 KiB
ArmAsm

/*
* Copyright (c) 2026, Chloe M.
* Provided under the BSD-3 clause.
*
* Description: AMD64 interrupt vectors
* Author: Chloe M.
*/
#include <machine/frameasm.h>
.text
.globl TrapDivError
TrapDivError:
INTR_ENTRY($0x00)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapDebugException
TrapDebugException:
INTR_ENTRY($0x01)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapNmi
TrapNmi:
INTR_ENTRY($0x02)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapBreakPoint
TrapBreakPoint:
INTR_ENTRY($0x03)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapOverflow
TrapOverflow:
INTR_ENTRY($0x04)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapBoundRange
TrapBoundRange:
INTR_ENTRY($0x05)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapInvalidOpcode
TrapInvalidOpcode:
INTR_ENTRY($0x06)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapNoCoprocessor
TrapNoCoprocessor:
INTR_ENTRY($0x07)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapDoubleFault
TrapDoubleFault:
INTR_ENTRY_EC($0x08)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapReserved
TrapReserved:
INTR_ENTRY($0x09)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapInvalidTss
TrapInvalidTss:
INTR_ENTRY_EC($0x0A)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapSegNotPresent
TrapSegNotPresent:
INTR_ENTRY_EC($0x0B)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapStackSegmentFault
TrapStackSegmentFault:
INTR_ENTRY_EC($0x0C)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapGeneralProtection
TrapGeneralProtection:
INTR_ENTRY_EC($0x0D)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl TrapPageFault
TrapPageFault:
INTR_ENTRY_EC($0x0E)
mov %rsp, %rdi
call MdTrapDispatch
1: cli
hlt
jmp 1b
.globl LapicTmrIsr
LapicTmrIsr:
INTR_ENTRY($0x81)
mov %rsp, %rdi
call HalContextSwitch
call MdLapicSendEoi
INTR_EXIT()