summaryrefslogtreecommitdiff
path: root/kernel/kmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kmain.c')
-rw-r--r--kernel/kmain.c35
1 files changed, 32 insertions, 3 deletions
diff --git a/kernel/kmain.c b/kernel/kmain.c
index 6b550b7..00455b7 100644
--- a/kernel/kmain.c
+++ b/kernel/kmain.c
@@ -3,11 +3,40 @@
#include <kernel/sys.h>
#include <stdint.h>
+extern int hd_read(void*, uint32_t, uint8_t);
+extern int hd_write(void*, uint32_t, uint8_t);
+
+static char buf[0x1000];
+
void kmain(void) {
- con_init();
+ int i;
+ int ret;
- printk("Kernel booting...\n");
printk("Kernel booted!\n\n");
- sched_init();
+ /* sched_init(); */
+
+ /* try to read some data */
+
+ ret = hd_read(buf, 0, 2);
+ if(ret < 0) {
+ printk("Failed to read data!\n");
+ return;
+ }
+ printk("Successfully read first and second sectors!\n");
+ printk("First dword (sector 0): 0x%08x\n", *((uint32_t*) buf));
+ printk("First dword (sector 1): 0x%08x\n", *((uint32_t*) (buf + 512)));
+
+ /* try to write some data */
+
+ for(i = 0; i < 256; i++)
+ ((uint16_t*) buf)[i] = i;
+
+ ret = hd_write(buf, 2, 1);
+ if(ret < 0) {
+ printk("Failed to write data!\n");
+ return;
+ }
+
+ printk("Successfully wrote to sector 2\n");
}