Moved header files into their lib directory

This commit is contained in:
2024-10-10 09:48:54 +02:00
parent 8deefad48d
commit 6369c29773
36 changed files with 3 additions and 2 deletions
+6
View File
@@ -0,0 +1,6 @@
#ifndef INTERRUPT_EXCEPTIONS_H
#define INTERRUPT_EXCEPTIONS_H
void setupExceptions();
#endif
+35
View File
@@ -0,0 +1,35 @@
#ifndef INTERRUPT_IDT_H
#define INTERRUPT_IDT_H
#include <stdint.h>
#define TRAP_GATE_FLAGS 0x8f // P = 1, DPL = 00, S = 0, Type = 1111 (32-bit Trap gate)
#define INT_GATE_FLAGS 0x8e // P = 1, DPL = 00, S = 0, Type = 1110 (32-bit Int gate)
#define USR_INT_GAME_FLAGS 0xee // P = 1, DPL = 11, S = 0, Type = 1110 (32-bit Int gate)
typedef struct {
uint16_t offsetLow;
uint16_t selector;
uint8_t zero;
uint8_t typeAttr;
uint16_t offsetHigh;
} __attribute__ ((packed)) idtEntry_t;
typedef struct {
uint16_t limit;
uint32_t base;
} __attribute__ ((packed)) idtp_t;
typedef struct {
uint32_t eip;
uint32_t cs;
uint32_t eflags;
uint32_t esp;
uint32_t ss;
} __attribute__ ((packed)) intFrame_t;
void idtSetGate(uint8_t i, void* handler, uint8_t flags);
void setupIdt();
#endif
+26
View File
@@ -0,0 +1,26 @@
#ifndef INTERRUPT_PIC_H
#define INTERRUPT_PIC_H
#include <stdint.h>
// PIC I/O Ports
#define PIC_1_CMD 0x20
#define PIC_1_DATA 0x21
#define PIC_2_CMD 0xA0
#define PIC_2_DATA 0xA1
// IRQs
#define NEW_IRQ_0 0x20 // IRQ 0 : int 32
#define NEW_IRQ_8 0x28 // IRQ 8 : int 40
// Commands
#define PIC_EOI 0x20 // End Of Interrupt
#define PIC_DISABLE 0xff
void sendPicEOI(uint8_t irq);
void disableIrqs();
void setIrqMask(uint8_t irq);
void unsetIrqMask(uint8_t irq);
void remapPic();
#endif
+13
View File
@@ -0,0 +1,13 @@
#ifndef INTERRUPT_PIT_H
#define INTERRUPT_PIT_H
#include <stdint.h>
#define CHANNEL_0 0x40 // Offset it by 1 or 2 for ch1 and ch2
#define COMMAND 0x43
#define INPUT_CLK 1193182
void setPitPhase(uint8_t channel, uint8_t opMode, uint16_t hz);
void setupTimer();
#endif
+25
View File
@@ -0,0 +1,25 @@
#ifndef INTERRUPT_RTC_H
#define INTERRUPT_RTC_H
#include <stdint.h>
#include <stdbool.h>
#define CMOS_ADDRESS 0x70
#define CMOS_DATA 0x71
typedef struct {
uint8_t second;
uint8_t minute;
uint8_t hour;
uint8_t day;
uint8_t month;
uint16_t year;
} __attribute__ ((packed)) datetime_t;
bool cmosUpdateProgress();
uint8_t getRtcRegister(uint8_t reg);
void enableRtc();
void disableRtc();
void setupRtc();
#endif
+24
View File
@@ -0,0 +1,24 @@
#ifndef INTERRUPT_SYSCALLS_H
#define INTERRUPT_SYSCALLS_H
#include <interrupt/idt.h>
#include <stdint.h>
typedef struct {
uint32_t esp;
uint32_t ebx;
uint32_t ecx;
uint32_t edx;
uint32_t esi;
uint32_t edi;
uint32_t ebp;
uint32_t ds;
uint32_t es;
uint32_t fs;
uint32_t gs;
uint32_t eax;
} __attribute__ ((packed)) sys_regs_t;
__attribute__ ((naked)) void syscallHandler(intFrame_t* iframe);
#endif