Mailing List Archive

[xen stable-4.16] tools/ocaml/libs: Don't declare stubs as taking void
commit 552e5f28d411c1a1a92f2fd3592a76e74f47610b
Author: Edwin Török <edwin.torok@cloud.com>
AuthorDate: Thu Jan 12 11:28:29 2023 +0000
Commit: Andrew Cooper <andrew.cooper3@citrix.com>
CommitDate: Thu Feb 9 15:58:51 2023 +0000

tools/ocaml/libs: Don't declare stubs as taking void

There is no such thing as an Ocaml function (C stub or otherwise) taking no
parameters. In the absence of any other parameters, unit is still passed.

This doesn't explode with any ABI we care about, but would malfunction for an
ABI environment such as stdcall.

Fixes: c3afd398ba7f ("ocaml: Add XS bindings.")
Fixes: 8b7ce06a2d34 ("ocaml: Add XC bindings.")
Signed-off-by: Edwin Török <edwin.torok@cloud.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Christian Lindig <christian.lindig@citrix.com>
(cherry picked from commit ff8b560be80b9211c303d74df7e4b3921d2bb8ca)
---
tools/ocaml/libs/xb/xenbus_stubs.c | 5 ++---
tools/ocaml/libs/xc/xenctrl_stubs.c | 4 ++--
2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/tools/ocaml/libs/xb/xenbus_stubs.c b/tools/ocaml/libs/xb/xenbus_stubs.c
index 3065181a55..97116b0782 100644
--- a/tools/ocaml/libs/xb/xenbus_stubs.c
+++ b/tools/ocaml/libs/xb/xenbus_stubs.c
@@ -30,10 +30,9 @@
#include <xenctrl.h>
#include <xen/io/xs_wire.h>

-CAMLprim value stub_header_size(void)
+CAMLprim value stub_header_size(value unit)
{
- CAMLparam0();
- CAMLreturn(Val_int(sizeof(struct xsd_sockmsg)));
+ return Val_int(sizeof(struct xsd_sockmsg));
}

CAMLprim value stub_header_of_string(value s)
diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c b/tools/ocaml/libs/xc/xenctrl_stubs.c
index 5b4fe72c8d..434fc0345b 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -67,9 +67,9 @@ static void Noreturn failwith_xc(xc_interface *xch)
caml_raise_with_string(*caml_named_value("xc.error"), error_str);
}

-CAMLprim value stub_xc_interface_open(void)
+CAMLprim value stub_xc_interface_open(value unit)
{
- CAMLparam0();
+ CAMLparam1(unit);
xc_interface *xch;

/* Don't assert XC_OPENFLAG_NON_REENTRANT because these bindings
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.16