feat: (twimap) provide an easy way for mapping kernel objects into filesystem
[lunaix-os.git] / lunaix-os / includes / lunaix / block.h
index db8ae5cfd5055b72adf10bedfd53b0a379d5b7cb..df481d82c32bb245986ee80bba0fe4081b8c5c99 100644 (file)
@@ -2,17 +2,21 @@
 #define __LUNAIX_BLOCK_H
 
 #include <hal/ahci/hba.h>
+#include <lunaix/device.h>
 
 #define LPT_SIG 0x414e554c
 #define PARTITION_NAME_SIZE 48
+#define DEV_ID_SIZE 32
 
 typedef uint64_t partition_t;
 typedef uint32_t bdev_t;
 
 struct block_dev
 {
+    char bdev_id[DEV_ID_SIZE];
     char name[PARTITION_NAME_SIZE];
     struct hba_device* hd_dev;
+    struct device* dev;
     uint64_t base_lba;
     uint64_t end_lba;
 };
@@ -34,4 +38,16 @@ struct lpt_header
     uint32_t table_len;
 } __attribute__((packed));
 
+void
+block_init();
+
+int
+block_mount_disk(struct hba_device* hd_dev);
+
+void
+blk_mapping_init();
+
+void
+blk_set_blkmapping(struct block_dev* bdev);
+
 #endif /* __LUNAIX_BLOCK_H */