feat: setup structure for block devices

added ide block device
added mbr block device driver
started fat block device driver

reordered boot
start timer before pci/ide/etc.
enable interrupts earlier

fixed exception from ide controller

cleanup code
more printfs
This commit is contained in:
2021-02-09 22:47:35 +01:00
parent 9440fae968
commit 2ac0da6574
16 changed files with 467 additions and 106 deletions

View File

@@ -3,11 +3,11 @@
//
#include "isr.h"
#include <kprint.h>
#include <cpu/idt.h>
#include <libc/libc.h>
#include <drivers/ports.h>
#include <libc/kprintf.h>
#define PIC_END_OF_INTERRUPT 0x20
@@ -119,13 +119,7 @@ char *exception_messages[] = {
};
void isr_handler(registers_t r) {
kprint("received interrupt: ");
char s[3];
itoa(r.int_no, s, 10);
kprint(s);
kprint("\n");
kprint(exception_messages[r.int_no]);
kprint("\n");
printf("Received interrupt: %d - %s\n", r.int_no, exception_messages[r.int_no]);
}
void register_interrupt_handler(u8 n, isr_t handler) {

View File

@@ -40,7 +40,7 @@ static void timer_callback(registers_t regs) {
void sleep(u32 milliseconds) {
u32 done = tick + milliseconds;
while (done != milliseconds) {
while (tick != done) {
k_wait_for_interrupt();
}
}