These functions added in VDDK 6.0 - 6.5 implement asynchronous read
and write.
---
 plugins/vddk/vddk-structs.h |  3 +++
 plugins/vddk/vddk-stubs.h   | 19 ++++++++++++++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/plugins/vddk/vddk-structs.h b/plugins/vddk/vddk-structs.h
index aeb5bfd0f..e97f017cd 100644
--- a/plugins/vddk/vddk-structs.h
+++ b/plugins/vddk/vddk-structs.h
@@ -43,6 +43,7 @@
 
 typedef uint64_t VixError;
 #define VIX_OK 0
+#define VIX_ASYNC 25000
 
 #define VIXDISKLIB_FLAG_OPEN_UNBUFFERED 1
 #define VIXDISKLIB_FLAG_OPEN_SINGLE_LINK 2
@@ -61,6 +62,8 @@ typedef void *VixDiskLibHandle;
 
 typedef void VixDiskLibGenericLogFunc (const char *fmt, va_list args);
 
+typedef void (*VixDiskLibCompletionCB) (void *data, VixError result);
+
 enum VixDiskLibCredType {
   VIXDISKLIB_CRED_UID       = 1,
   VIXDISKLIB_CRED_SESSIONID = 2,
diff --git a/plugins/vddk/vddk-stubs.h b/plugins/vddk/vddk-stubs.h
index a94df9cda..66353691c 100644
--- a/plugins/vddk/vddk-stubs.h
+++ b/plugins/vddk/vddk-stubs.h
@@ -103,10 +103,27 @@ STUB (VixDiskLib_Write,
        uint64_t start_sector, uint64_t nr_sectors,
        const unsigned char *buf));
 
-/* Added in VDDK 6.0, this will be NULL in earlier versions. */
+/* Added in VDDK 6.0, these will be NULL in earlier versions. */
 OPTIONAL_STUB (VixDiskLib_Flush,
                VixError,
                (VixDiskLibHandle handle));
+OPTIONAL_STUB (VixDiskLib_ReadAsync,
+               VixError,
+               (VixDiskLibHandle handle,
+                uint64_t start_sector, uint64_t nr_sectors,
+                unsigned char *buf,
+                VixDiskLibCompletionCB callback, void *data));
+OPTIONAL_STUB (VixDiskLib_WriteAsync,
+               VixError,
+               (VixDiskLibHandle handle,
+                uint64_t start_sector, uint64_t nr_sectors,
+                const unsigned char *buf,
+                VixDiskLibCompletionCB callback, void *data));
+
+/* Added in VDDK 6.5, this will be NULL in earlier versions. */
+OPTIONAL_STUB (VixDiskLib_Wait,
+               VixError,
+               (VixDiskLibHandle handle));
 
 /* Added in VDDK 6.7, these will be NULL for earlier versions: */
 OPTIONAL_STUB (VixDiskLib_QueryAllocatedBlocks,
-- 
2.32.0

_______________________________________________
Libguestfs mailing list
[email protected]
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to