From 350748137b62e2aa15c62c53ebf4d30816e441f4 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Fri, 30 Apr 2021 15:03:27 +0200 Subject: Added MBR driver and better disk creation --- kernel/drivers/ide.c | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) (limited to 'kernel/drivers/ide.c') diff --git a/kernel/drivers/ide.c b/kernel/drivers/ide.c index 68e797f..bde72b7 100644 --- a/kernel/drivers/ide.c +++ b/kernel/drivers/ide.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -128,30 +129,17 @@ CLEAR static void ata_probe(void) if (!ide_find(bus, drive)) continue; - struct vfs_dev *dev = zalloc(sizeof(*dev)); - struct ata_data *data = malloc(sizeof(*data)); + struct ata_data *data = zalloc(sizeof(*data)); data->drive = (bus << 1) | drive; - char *str = zalloc(8); - strlcpy(str, "hd", 8); - str[2] = 'a' + i; - - dev->name = str; + struct vfs_dev *dev = zalloc(sizeof(*dev)); + strlcpy(dev->name, "hd", 3); + dev->name[2] = 'a' + i; dev->type = DEV_BLOCK; dev->read = ata_read; - vfs_add_dev(dev); - if (vfs_mounted(dev, "/")) - continue; - - // TODO: Check if ext2 first - struct vfs *vfs = zalloc(sizeof(*vfs)); - vfs->type = VFS_EXT2; - vfs->read = ext2_read; - vfs->stat = ext2_stat; - vfs->perm = ext2_perm; - dev->vfs = vfs; dev->data = data; - vfs_mount(dev, "/"); + vfs_add_dev(dev); + vfs_load(dev); } } -- cgit v1.2.3