Add functions to query submission queue capacity am: 301d17205a

Original change: https://android-review.googlesource.com/c/platform/system/update_engine/+/2308914

Change-Id: I4826140bccd0130b647c746eab45e2a50769b332
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/liburing_cpp/include/liburing_cpp/IoUring.h b/liburing_cpp/include/liburing_cpp/IoUring.h
index 324fb10..09ed5cc 100644
--- a/liburing_cpp/include/liburing_cpp/IoUring.h
+++ b/liburing_cpp/include/liburing_cpp/IoUring.h
@@ -62,6 +62,13 @@
   virtual IoUringSQE PrepWrite(int fd, const void *buf, unsigned nbytes,
                                uint64_t offset) = 0;
 
+  // Return number of SQEs available in the queue. If this is 0, subsequent
+  // calls to Prep*() functions will fail.
+  virtual size_t SQELeft() const = 0;
+  // Return number of SQEs currently in the queue. SQEs already submitted would
+  // not be counted.
+  virtual size_t SQEReady() const = 0;
+
   // Ring operations
   virtual IoUringSubmitResult Submit() = 0;
   // Submit and block until |completions| number of CQEs are available
diff --git a/liburing_cpp/src/IoUring.cpp b/liburing_cpp/src/IoUring.cpp
index a5fe76f..f561d25 100644
--- a/liburing_cpp/src/IoUring.cpp
+++ b/liburing_cpp/src/IoUring.cpp
@@ -100,6 +100,10 @@
     io_uring_prep_write(sqe, fd, buf, nbytes, offset);
     return IoUringSQE{static_cast<void*>(sqe)};
   }
+
+  size_t SQELeft() const override { return io_uring_sq_space_left(&ring); }
+  size_t SQEReady() const override { return io_uring_sq_ready(&ring); }
+
   IoUringSubmitResult Submit() override {
     return IoUringSubmitResult{io_uring_submit(&ring)};
   }