blob: 00455b70327ab59aeba09c10c5d8ea514456aa18 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include <kernel/con.h>
#include <kernel/sched.h>
#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) {
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");
}
|