From 17721b316dd66b0a1ed792eeccd2489fb97828df Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 21 Nov 2019 16:42:59 +0000 Subject: [PATCH 07/19] python: Implement can_zero, can_fast_zero. (cherry picked from commit 039f600d2ad7a9ff04523a165eb2fe41b9c87c01) --- plugins/python/nbdkit-python-plugin.pod | 16 ++++++++++++++-- plugins/python/python.c | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/plugins/python/nbdkit-python-plugin.pod b/plugins/python/nbdkit-python-plugin.pod index 0ea8deef..1f1c30f6 100644 --- a/plugins/python/nbdkit-python-plugin.pod +++ b/plugins/python/nbdkit-python-plugin.pod @@ -208,6 +208,20 @@ contents will be garbage collected. def can_trim(h): # return a boolean +=item C + +(Optional) + + def can_zero(h): + # return a boolean + +=item C + +(Optional) + + def can_fast_zero(h): + # return a boolean + =item C (Required) @@ -326,8 +340,6 @@ C, C, C, C, -C, -C, C, C, C. diff --git a/plugins/python/python.c b/plugins/python/python.c index c5cf38e5..38fc1193 100644 --- a/plugins/python/python.c +++ b/plugins/python/python.c @@ -797,6 +797,18 @@ py_can_trim (void *handle) return boolean_callback (handle, "can_trim", "trim"); } +static int +py_can_zero (void *handle) +{ + return boolean_callback (handle, "can_zero", "zero"); +} + +static int +py_can_fast_zero (void *handle) +{ + return boolean_callback (handle, "can_fast_zero", NULL); +} + #define py_config_help \ "script= (required) The Python plugin to run.\n" \ "[other arguments may be used by the plugin that you load]" @@ -823,6 +835,8 @@ static struct nbdkit_plugin plugin = { .can_write = py_can_write, .can_flush = py_can_flush, .can_trim = py_can_trim, + .can_zero = py_can_zero, + .can_fast_zero = py_can_fast_zero, .pread = py_pread, .pwrite = py_pwrite, -- 2.18.2