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

@@ -74,11 +74,22 @@ u32 vasprintf(char *buf, const char *fmt, va_list args) {
return ptr;
}
void printf(const char *fmt, ...) {
int printf(const char *fmt, ...) {
int result;
char buf[1024] = {-1};
va_list args;
va_start(args, fmt);
vasprintf(buf, fmt, args);
result = vasprintf(buf, fmt, args);
va_end(args);
kprint(buf);
return result;
}
int sprintf(char* target, const char*fmt, ...) {
int result;
va_list args;
va_start(args, fmt);
result = vasprintf(target, fmt, args);
va_end(args);
return result;
}

View File

@@ -5,6 +5,8 @@
#ifndef NEW_KERNEL_KPRINTF_H
#define NEW_KERNEL_KPRINTF_H
void printf(const char *fmt, ...);
int printf(const char *fmt, ...);
int sprintf(char *target, const char *fmt, ...);
#endif //NEW_KERNEL_KPRINTF_H

View File

@@ -5,9 +5,10 @@
* Author: rick
*/
#include <types.h>
#include "libc.h"
int memcpy(char *dst, char *src, int amount) {
int memcpy(u8 *dst, const u8 *src, int amount) {
for (int i = 0; i < amount; i++) {
dst[i] = src[i];
}

View File

@@ -8,7 +8,9 @@
#ifndef KERNEL_LIBC_LIBC_H_
#define KERNEL_LIBC_LIBC_H_
int memcpy(char *dst, char *src, int amount);
#include <types.h>
int memcpy(u8 *dst, const u8 *src, int amount);
int memset(char *dst, char data, int amount);