feat: lunadbg GDB plugin to ease kernel debugging process.
[lunaix-os.git] / lunaix-os / includes / lunaix / blkio.h
index 3814917171a533568c307962c7364f052049756c..a869c8c2e1a0f759b52795b00246e60f6d428044 100644 (file)
@@ -3,14 +3,19 @@
 
 #include <lunaix/buffer.h>
 #include <lunaix/ds/llist.h>
+#include <lunaix/ds/waitq.h>
 #include <lunaix/types.h>
 
 #define BLKIO_WRITE 0x1
 #define BLKIO_ERROR 0x2
 
-// Free on complete
 #define BLKIO_BUSY 0x4
 #define BLKIO_PENDING 0x8
+
+#define BLKIO_WAIT 0x1
+#define BLKIO_NOASYNC 0x2
+
+// Free on complete
 #define BLKIO_FOC 0x10
 
 #define BLKIO_SCHED_IDEL 0x1
@@ -24,8 +29,9 @@ struct blkio_req
 {
     struct llist_header reqs;
     struct blkio_context* io_ctx;
-    u32_t flags;
     struct vecbuf* vbuf;
+    u32_t flags;
+    waitq_t wait;
     u64_t blk_addr;
     void* evt_args;
     blkio_cb completed;
@@ -93,7 +99,7 @@ blkio_free_req(struct blkio_req* req);
  * @param req
  */
 void
-blkio_commit(struct blkio_context* ctx, struct blkio_req* req);
+blkio_commit(struct blkio_context* ctx, struct blkio_req* req, int options);
 
 /**
  * @brief Schedule an IO request to be handled.