#include #include #include #include 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) { int i; int ret; printk("Kernel booted!\n\n"); /* 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"); }