1 #include <lunaix/block.h>
2 #include <lunaix/fs/twifs.h>
4 static struct twifs_node* blk_root;
9 blk_root = twifs_dir_node(NULL, "block");
13 __blk_rd_size(struct twimap* map)
15 struct block_dev* bdev = twimap_data(map, struct block_dev*);
16 size_t secsize = bdev->blk_size;
17 twimap_printf(map, "%u", bdev->end_lba * secsize);
21 __blk_rd_lblksz(struct twimap* map)
23 struct block_dev* bdev = twimap_data(map, struct block_dev*);
24 size_t lblksz = bdev->blk_size;
25 twimap_printf(map, "%u", lblksz);
29 __blk_rd_name(struct twimap* map)
31 struct block_dev* bdev = twimap_data(map, struct block_dev*);
32 twimap_printf(map, "%s", bdev->name);
36 blk_set_blkmapping(struct block_dev* bdev, void* fsnode)
38 struct twifs_node* dev_root = (struct twifs_node*)fsnode;
40 struct twimap* map = twifs_mapping(dev_root, bdev, "size");
41 map->read = __blk_rd_size;
43 map = twifs_mapping(dev_root, bdev, "lblk_size");
44 map->read = __blk_rd_lblksz;
46 map = twifs_mapping(dev_root, bdev, "name");
47 map->read = __blk_rd_name;