Combine cpu headers

This commit is contained in:
Thomas Lovén 2022-01-17 22:16:06 +01:00
parent f32fa00bf8
commit 8dd5e81399
5 changed files with 34 additions and 39 deletions

View File

@ -7,7 +7,6 @@
#include <proc.h> #include <proc.h>
#include <musl-glue.h> #include <musl-glue.h>
#include <cpu/interrupts.h>
#include <ports.h> #include <ports.h>
void TEMP_test_scheduler(); void TEMP_test_scheduler();

View File

@ -1,5 +1,4 @@
#include <cpu.h> #include <cpu.h>
#include <cpu/interrupts.h>
#include <ports.h> #include <ports.h>
#include <multiboot.h> #include <multiboot.h>

View File

@ -1,4 +1,3 @@
#include <cpu/interrupts.h>
#include <stdint.h> #include <stdint.h>
#include <memory.h> #include <memory.h>
#include <cpu.h> #include <cpu.h>

View File

@ -12,6 +12,35 @@
#define IRQ_PS2_KBD 0x1 #define IRQ_PS2_KBD 0x1
#define IRQ_SPURIOUS 0xFF #define IRQ_SPURIOUS 0xFF
typedef struct {
uint64_t rax;
uint64_t rbx;
uint64_t rcx;
uint64_t rdx;
uint64_t rsi;
uint64_t rdi;
uint64_t rbp;
uint64_t r8;
uint64_t r9;
uint64_t r10;
uint64_t r11;
uint64_t r12;
uint64_t r13;
uint64_t r14;
uint64_t r15;
uint64_t int_no;
uint64_t err_code;
uint64_t rip;
uint64_t cs;
uint64_t rflags;
uint64_t rsp;
uint64_t ss;
} registers;
typedef registers *(*int_handler_t)(registers *);
struct cpu { struct cpu {
uint8_t id; uint8_t id;
uint8_t apic_id; uint8_t apic_id;
@ -37,6 +66,11 @@ void write_cr3(uint64_t);
uint64_t read_msr(uint32_t); uint64_t read_msr(uint32_t);
uint64_t write_msr(uint32_t msr, uint64_t value); uint64_t write_msr(uint32_t msr, uint64_t value);
// cpu/interrupts.c
void interrupt_init();
void isr_return(registers *);
int_handler_t bind_interrupt(uint32_t num, int_handler_t fn);
// cpu/acpi.c // cpu/acpi.c
void acpi_parse(void *_rsdp); void acpi_parse(void *_rsdp);

View File

@ -1,36 +0,0 @@
#pragma once
#include <stdint.h>
typedef struct {
uint64_t rax;
uint64_t rbx;
uint64_t rcx;
uint64_t rdx;
uint64_t rsi;
uint64_t rdi;
uint64_t rbp;
uint64_t r8;
uint64_t r9;
uint64_t r10;
uint64_t r11;
uint64_t r12;
uint64_t r13;
uint64_t r14;
uint64_t r15;
uint64_t int_no;
uint64_t err_code;
uint64_t rip;
uint64_t cs;
uint64_t rflags;
uint64_t rsp;
uint64_t ss;
} registers;
typedef registers *(*int_handler_t)(registers *);
// cpu/interrupts.c
void interrupt_init();
void isr_return(registers *);
int_handler_t bind_interrupt(uint32_t num, int_handler_t fn);