feat: (iso9660) directory read support
[lunaix-os.git] / lunaix-os / includes / lunaix / block.h
index 551bc22818a64531fad899c05bfc2243ad82a261..c574dd346d32e9d789b3f29680530e1af3e39047 100644 (file)
@@ -9,6 +9,16 @@
 #define PARTITION_NAME_SIZE 48
 #define DEV_ID_SIZE 32
 
+struct block_dev;
+
+struct block_dev_ops
+{
+    int (*block_read)(struct block_dev*, void*, u64_t, size_t);
+    int (*block_write)(struct block_dev*, void*, u64_t, size_t);
+    void* (*block_alloc)(struct block_dev*);
+    void (*block_free)(struct block_dev*, void*);
+};
+
 struct block_dev
 {
     struct llist_header parts;
@@ -20,6 +30,7 @@ struct block_dev
     u64_t start_lba;
     u64_t end_lba;
     u32_t blk_size;
+    struct block_dev_ops ops;
 };
 
 // Lunaix Partition Table