X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/6f6da1abb22dff69dbb710bd2fd9d95f083f2b43..8c06c883e7b13c115d5ff207f79d4b68fccd5ad6:/lunaix-os/kernel/block/block.c diff --git a/lunaix-os/kernel/block/block.c b/lunaix-os/kernel/block/block.c index 76ef778..3f3c1e8 100644 --- a/lunaix-os/kernel/block/block.c +++ b/lunaix-os/kernel/block/block.c @@ -1,4 +1,4 @@ -#include +#include #include #include @@ -295,7 +295,7 @@ block_mount(struct block_dev* bdev, devfs_exporter fs_export) errno = blkpart_probegpt(bdev->dev); if (errno < 0) { - kprintf(KERROR "Fail to parse partition table (%d)\n", errno); + kprintf(KERROR "Fail to parse partition table (%d)", errno); } else if (!errno) { // TODO try other PT parser... } @@ -307,7 +307,7 @@ block_mount(struct block_dev* bdev, devfs_exporter fs_export) return errno; error: - kprintf(KERROR "Fail to mount block device: %s (%x)\n", bdev->name, -errno); + kprintf(KERROR "Fail to mount block device: %s (%x)", bdev->name, -errno); return errno; } @@ -318,16 +318,19 @@ __block_register(struct block_dev* bdev) return 0; } - struct device* dev = - device_addvol(blk_parent_dev, bdev->class, bdev, "sd%c", 'a' + free_slot); + struct device* dev = device_allocvol(blk_parent_dev, bdev); dev->ops.write = __block_write; dev->ops.write_page = __block_write_page; dev->ops.read = __block_read; dev->ops.read_page = __block_read_page; bdev->dev = dev; - strcpy(bdev->bdev_id, dev->name_val); + + device_register(dev, bdev->class, "sd%c", 'a' + free_slot); dev_registry[free_slot++] = bdev; + + strcpy(bdev->bdev_id, dev->name_val); + return 1; } @@ -341,8 +344,7 @@ blk_mount_part(struct block_dev* bdev, struct block_dev* pbdev = cake_grab(lbd_pile); memcpy(pbdev, bdev, sizeof(*bdev)); - struct device* dev = device_addvol( - NULL, pbdev->class, pbdev, "%sp%d", bdev->bdev_id, index + 1); + struct device* dev = device_allocvol(NULL, pbdev); dev->ops.write = __block_write; dev->ops.write_page = __block_write_page; dev->ops.read = __block_read; @@ -359,5 +361,7 @@ blk_mount_part(struct block_dev* bdev, llist_append(&bdev->parts, &pbdev->parts); + device_register(dev, pbdev->class, "%sp%d", bdev->bdev_id, index + 1); + return pbdev; } \ No newline at end of file