From b646050b8da51c39cf21f95fa847c12784a1169c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 21 Nov 2019 15:02:44 +0000 Subject: [PATCH 04/19] python: Add various constants to the API. These are accessible from the plugin by: import nbdkit if flags & nbdkit.FLAG_MAY_TRIM: &c. Many (all?) of these are not yet useful for plugins, some will never be useful, but they only consume a tiny bit of memory and it's nice to have the complete set available for future use. (cherry picked from commit 14b7fe2e0de881e3dfc8803484ade29a61e323c9) --- plugins/python/python.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/plugins/python/python.c b/plugins/python/python.c index 7052aac0..47da0838 100644 --- a/plugins/python/python.c +++ b/plugins/python/python.c @@ -231,6 +231,36 @@ create_nbdkit_module (void) nbdkit_error ("could not create the nbdkit API module"); exit (EXIT_FAILURE); } + + /* Constants corresponding to various flags. */ +#define ADD_INT_CONSTANT(name) \ + if (PyModule_AddIntConstant (m, #name, NBDKIT_##name) == -1) { \ + nbdkit_error ("could not add constant %s to nbdkit API module", \ + #name); \ + exit (EXIT_FAILURE); \ + } + ADD_INT_CONSTANT (THREAD_MODEL_SERIALIZE_CONNECTIONS); + ADD_INT_CONSTANT (THREAD_MODEL_SERIALIZE_ALL_REQUESTS); + ADD_INT_CONSTANT (THREAD_MODEL_SERIALIZE_REQUESTS); + ADD_INT_CONSTANT (THREAD_MODEL_PARALLEL); + + ADD_INT_CONSTANT (FLAG_MAY_TRIM); + ADD_INT_CONSTANT (FLAG_FUA); + ADD_INT_CONSTANT (FLAG_REQ_ONE); + ADD_INT_CONSTANT (FLAG_FAST_ZERO); + + ADD_INT_CONSTANT (FUA_NONE); + ADD_INT_CONSTANT (FUA_EMULATE); + ADD_INT_CONSTANT (FUA_NATIVE); + + ADD_INT_CONSTANT (CACHE_NONE); + ADD_INT_CONSTANT (CACHE_EMULATE); + ADD_INT_CONSTANT (CACHE_NATIVE); + + ADD_INT_CONSTANT (EXTENT_HOLE); + ADD_INT_CONSTANT (EXTENT_ZERO); +#undef ADD_INT_CONSTANT + return m; } -- 2.18.2