Adjust internal functions in preparation for FUA support; although at this point, the default plugins.c can_fua implementation correctly reports python as needing emulation, and we can assert that we aren't seeing a FUA flag.
Signed-off-by: Eric Blake <[email protected]> --- plugins/python/python.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/plugins/python/python.c b/plugins/python/python.c index d75b36a..a50bf85 100644 --- a/plugins/python/python.c +++ b/plugins/python/python.c @@ -49,6 +49,7 @@ #include <assert.h> #include <errno.h> +#define NBDKIT_API_VERSION 2 #include <nbdkit-plugin.h> /* XXX Apparently global state is technically wrong in Python 3, see: @@ -430,12 +431,13 @@ py_get_size (void *handle) static int py_pread (void *handle, void *buf, - uint32_t count, uint64_t offset) + uint32_t count, uint64_t offset, uint32_t flags) { PyObject *obj = handle; PyObject *fn; PyObject *r; + assert (!flags); if (!callback_defined ("pread", &fn)) { nbdkit_error ("%s: missing callback: %s", script, "pread"); return -1; @@ -469,12 +471,13 @@ py_pread (void *handle, void *buf, static int py_pwrite (void *handle, const void *buf, - uint32_t count, uint64_t offset) + uint32_t count, uint64_t offset, uint32_t flags) { PyObject *obj = handle; PyObject *fn; PyObject *r; + assert (!flags); if (callback_defined ("pwrite", &fn)) { PyErr_Clear (); @@ -495,12 +498,13 @@ py_pwrite (void *handle, const void *buf, } static int -py_flush (void *handle) +py_flush (void *handle, uint32_t flags) { PyObject *obj = handle; PyObject *fn; PyObject *r; + assert (!flags); if (callback_defined ("flush", &fn)) { PyErr_Clear (); @@ -519,12 +523,13 @@ py_flush (void *handle) } static int -py_trim (void *handle, uint32_t count, uint64_t offset) +py_trim (void *handle, uint32_t count, uint64_t offset, uint32_t flags) { PyObject *obj = handle; PyObject *fn; PyObject *r; + assert (!flags); if (callback_defined ("trim", &fn)) { PyErr_Clear (); @@ -543,14 +548,16 @@ py_trim (void *handle, uint32_t count, uint64_t offset) } static int -py_zero (void *handle, uint32_t count, uint64_t offset, int may_trim) +py_zero (void *handle, uint32_t count, uint64_t offset, uint32_t flags) { PyObject *obj = handle; PyObject *fn; PyObject *args; PyObject *kwargs; PyObject *r; + int may_trim = (flags & NBDKIT_FLAG_MAY_TRIM) != 0; + assert (!(flags & ~NBDKIT_FLAG_MAY_TRIM)); if (callback_defined ("zero", &fn)) { static int zero_may_trim = -1; -- 2.14.3 _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
