Big code refactor, get rid of HAL entirely
This commit is contained in:
42
kernel/intr/intr.h
Normal file
42
kernel/intr/intr.h
Normal file
@ -0,0 +1,42 @@
|
||||
#ifndef INTR_INTR_H_
|
||||
#define INTR_INTR_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include "compiler/attr.h"
|
||||
|
||||
#define INTR_IRQBASE 0x20
|
||||
|
||||
typedef struct {
|
||||
uint64_t r15;
|
||||
uint64_t r14;
|
||||
uint64_t r13;
|
||||
uint64_t r12;
|
||||
uint64_t r11;
|
||||
uint64_t r10;
|
||||
uint64_t r9;
|
||||
uint64_t r8;
|
||||
uint64_t rbp;
|
||||
uint64_t rdi;
|
||||
uint64_t rsi;
|
||||
uint64_t rdx;
|
||||
uint64_t rcx;
|
||||
uint64_t rax;
|
||||
} PACKED SavedRegs;
|
||||
|
||||
typedef struct {
|
||||
SavedRegs regs;
|
||||
uint64_t trapnum;
|
||||
uint64_t errnum;
|
||||
uint64_t rip;
|
||||
uint64_t cs;
|
||||
uint64_t rflags;
|
||||
uint64_t rsp;
|
||||
uint64_t ss;
|
||||
} PACKED IntrStackFrame;
|
||||
|
||||
void intr_attchhandler(void (*fn)(void), int irq);
|
||||
void intr_disable(void);
|
||||
void intr_enable(void);
|
||||
void intr_init(void);
|
||||
|
||||
#endif // INTR_INTR_H_
|
||||
Reference in New Issue
Block a user