b6d4a1c963
Signed-off-by: Chloe M. <chloe@mensia.org>
34 lines
645 B
C
34 lines
645 B
C
/*
|
|
* Copyright (c) 2026, Chloe M.
|
|
* Provided under the BSD-3 clause.
|
|
*
|
|
* Description: Interrupt gate management
|
|
* Author: Chloe M.
|
|
*/
|
|
|
|
#ifndef _MACHINE_IDT_H_
|
|
#define _MACHINE_IDT_H_ 1
|
|
|
|
#define IDT_INT_GATE 0x8E
|
|
#define IDT_TRAP_GATE 0x8F
|
|
#define IDT_USER_GATE 0xEE
|
|
|
|
#ifndef __ASSEMBLER__
|
|
/*
|
|
* Set an IDT entry
|
|
*
|
|
* @Vector: Interrupt vector to set
|
|
* @IsrBase: ISR base to set
|
|
* @Type: Gate type
|
|
* @Ist: Interrupt stack table index
|
|
*/
|
|
VOID MdIdtSetEntry(UCHAR Vector, UPTR IsrBase, UCHAR Type, UCHAR Ist);
|
|
|
|
/*
|
|
* Load the IDT
|
|
*/
|
|
VOID MdIdtLoad(VOID);
|
|
|
|
#endif /* !__ASSEMBLER__ */
|
|
#endif /* !_MACHINE_IDT_H_ */
|