- make sure that all the function declarations are non-static, so the header can be included by more than one C source - move all the common includes there from the generated file from generator.pl - add include guard for it, even if it will not be used in practice Signed-off-by: Pino Toscano <ptoscano@xxxxxxxxxx> --- libvirt/generator.pl | 17 ---------- libvirt/libvirt_c.h | 60 ++++++++++++++++++++++++------------ libvirt/libvirt_c_epilogue.c | 38 +++++++++++------------ 3 files changed, 60 insertions(+), 55 deletions(-) diff --git a/libvirt/generator.pl b/libvirt/generator.pl index 92d5a64..61526c0 100755 --- a/libvirt/generator.pl +++ b/libvirt/generator.pl @@ -232,23 +232,6 @@ print F <<'END'; * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <libvirt/libvirt.h> -#include <libvirt/virterror.h> - -#include <caml/config.h> -#include <caml/alloc.h> -#include <caml/callback.h> -#include <caml/custom.h> -#include <caml/fail.h> -#include <caml/memory.h> -#include <caml/misc.h> -#include <caml/mlvalues.h> -#include <caml/signals.h> - #include "libvirt_c.h" #include "libvirt_c_oneoffs.c" diff --git a/libvirt/libvirt_c.h b/libvirt/libvirt_c.h index 8533618..541d8e3 100644 --- a/libvirt/libvirt_c.h +++ b/libvirt/libvirt_c.h @@ -18,18 +18,38 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#ifndef LIBVIRT_C_H +#define LIBVIRT_C_H + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <libvirt/libvirt.h> +#include <libvirt/virterror.h> + +#include <caml/config.h> +#include <caml/alloc.h> +#include <caml/callback.h> +#include <caml/custom.h> +#include <caml/fail.h> +#include <caml/memory.h> +#include <caml/misc.h> +#include <caml/mlvalues.h> +#include <caml/signals.h> + /* Please read libvirt/README file. */ -static const char *Optstring_val (value strv); +const char *Optstring_val (value strv); typedef value (*Val_ptr_t) (void *); -static value Val_opt (void *ptr, Val_ptr_t Val_ptr); +value Val_opt (void *ptr, Val_ptr_t Val_ptr); typedef value (*Val_const_ptr_t) (const void *); -static value Val_opt_const (const void *ptr, Val_const_ptr_t Val_ptr); -/*static value option_default (value option, value deflt);*/ -static void _raise_virterror (const char *fn) Noreturn; -static value Val_virterror (virErrorPtr err); -static int _list_length (value listv); -static value Val_virconnectcredential (const virConnectCredentialPtr cred); +value Val_opt_const (const void *ptr, Val_const_ptr_t Val_ptr); +/*value option_default (value option, value deflt);*/ +void _raise_virterror (const char *fn) Noreturn; +value Val_virterror (virErrorPtr err); +int _list_length (value listv); +value Val_virconnectcredential (const virConnectCredentialPtr cred); /* Use this around synchronous libvirt API calls to release the OCaml * lock, allowing other threads to run simultaneously. 'code' must not @@ -106,12 +126,12 @@ static value Val_virconnectcredential (const virConnectCredentialPtr cred); #define Sec_val(rv) (*((virSecretPtr *)Data_custom_val(rv))) /* Wrap up a pointer to something in a custom block. */ -static value Val_connect (virConnectPtr conn); -static value Val_dom (virDomainPtr dom); -static value Val_net (virNetworkPtr net); -static value Val_pol (virStoragePoolPtr pool); -static value Val_vol (virStorageVolPtr vol); -static value Val_sec (virSecretPtr sec); +value Val_connect (virConnectPtr conn); +value Val_dom (virDomainPtr dom); +value Val_net (virNetworkPtr net); +value Val_pol (virStoragePoolPtr pool); +value Val_vol (virStorageVolPtr vol); +value Val_sec (virSecretPtr sec); /* Domains and networks are stored as pairs (dom/net, conn), so have * some convenience functions for unwrapping and wrapping them. @@ -127,8 +147,10 @@ static value Val_sec (virSecretPtr sec); #define Connect_volv(rv) (Connect_val(Field((rv),1))) #define Connect_secv(rv) (Connect_val(Field((rv),1))) -static value Val_domain (virDomainPtr dom, value connv); -static value Val_network (virNetworkPtr net, value connv); -static value Val_pool (virStoragePoolPtr pol, value connv); -static value Val_volume (virStorageVolPtr vol, value connv); -static value Val_secret (virSecretPtr sec, value connv); +value Val_domain (virDomainPtr dom, value connv); +value Val_network (virNetworkPtr net, value connv); +value Val_pool (virStoragePoolPtr pol, value connv); +value Val_volume (virStorageVolPtr vol, value connv); +value Val_secret (virSecretPtr sec, value connv); + +#endif diff --git a/libvirt/libvirt_c_epilogue.c b/libvirt/libvirt_c_epilogue.c index 37efc43..e58f7bb 100644 --- a/libvirt/libvirt_c_epilogue.c +++ b/libvirt/libvirt_c_epilogue.c @@ -20,7 +20,7 @@ /* Please read libvirt/README file. */ -static const char * +const char * Optstring_val (value strv) { if (strv == Val_int (0)) /* None */ @@ -29,7 +29,7 @@ Optstring_val (value strv) return String_val (Field (strv, 0)); } -static value +value Val_opt (void *ptr, Val_ptr_t Val_ptr) { CAMLparam0 (); @@ -45,7 +45,7 @@ Val_opt (void *ptr, Val_ptr_t Val_ptr) CAMLreturn (optv); } -static value +value Val_opt_const (const void *ptr, Val_const_ptr_t Val_ptr) { CAMLparam0 (); @@ -62,7 +62,7 @@ Val_opt_const (const void *ptr, Val_const_ptr_t Val_ptr) } #if 0 -static value +value option_default (value option, value deflt) { if (option == Val_int (0)) /* "None" */ @@ -72,7 +72,7 @@ option_default (value option, value deflt) } #endif -static void +void _raise_virterror (const char *fn) { CAMLparam0 (); @@ -100,7 +100,7 @@ _raise_virterror (const char *fn) (void) caml__frame; } -static int +int _list_length (value listv) { CAMLparam1 (listv); @@ -111,7 +111,7 @@ _list_length (value listv) CAMLreturnT (int, len); } -static value +value Val_virconnectcredential (const virConnectCredentialPtr cred) { CAMLparam0 (); @@ -196,7 +196,7 @@ Val_err_level (virErrorLevel code) } /* Convert a virterror to a value. */ -static value +value Val_virterror (virErrorPtr err) { CAMLparam0 (); @@ -283,7 +283,7 @@ static struct custom_operations sec_custom_operations = { custom_deserialize_default }; -static value +value Val_connect (virConnectPtr conn) { CAMLparam0 (); @@ -294,7 +294,7 @@ Val_connect (virConnectPtr conn) CAMLreturn (rv); } -static value +value Val_dom (virDomainPtr dom) { CAMLparam0 (); @@ -305,7 +305,7 @@ Val_dom (virDomainPtr dom) CAMLreturn (rv); } -static value +value Val_net (virNetworkPtr net) { CAMLparam0 (); @@ -316,7 +316,7 @@ Val_net (virNetworkPtr net) CAMLreturn (rv); } -static value +value Val_pol (virStoragePoolPtr pol) { CAMLparam0 (); @@ -327,7 +327,7 @@ Val_pol (virStoragePoolPtr pol) CAMLreturn (rv); } -static value +value Val_vol (virStorageVolPtr vol) { CAMLparam0 (); @@ -338,7 +338,7 @@ Val_vol (virStorageVolPtr vol) CAMLreturn (rv); } -static value +value Val_sec (virSecretPtr sec) { CAMLparam0 (); @@ -350,7 +350,7 @@ Val_sec (virSecretPtr sec) } /* This wraps up the (dom, conn) pair (Domain.t). */ -static value +value Val_domain (virDomainPtr dom, value connv) { CAMLparam1 (connv); @@ -364,7 +364,7 @@ Val_domain (virDomainPtr dom, value connv) } /* This wraps up the (net, conn) pair (Network.t). */ -static value +value Val_network (virNetworkPtr net, value connv) { CAMLparam1 (connv); @@ -378,7 +378,7 @@ Val_network (virNetworkPtr net, value connv) } /* This wraps up the (pol, conn) pair (Pool.t). */ -static value +value Val_pool (virStoragePoolPtr pol, value connv) { CAMLparam1 (connv); @@ -392,7 +392,7 @@ Val_pool (virStoragePoolPtr pol, value connv) } /* This wraps up the (vol, conn) pair (Volume.t). */ -static value +value Val_volume (virStorageVolPtr vol, value connv) { CAMLparam1 (connv); @@ -406,7 +406,7 @@ Val_volume (virStorageVolPtr vol, value connv) } /* This wraps up the (sec, conn) pair (Secret.t). */ -static value +value Val_secret (virSecretPtr sec, value connv) { CAMLparam1 (connv); -- 2.21.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list