[Libguestfs] [PATCH nbdkit v3 1/7] python: Add various constants to the API.

Richard W.M. Jones rjones at redhat.com
Sat Nov 23 13:26:33 UTC 2019


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.
---
 plugins/python/python.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/plugins/python/python.c b/plugins/python/python.c
index 214fffb..52eb752 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.23.0




More information about the Libguestfs mailing list