[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen staging] tools/ocaml: Build fix following libxl API changes



commit e17381916ef06c8199f079026d2ee6715c228320
Author:     Anthony PERARD <anthony.perard@xxxxxxxxxx>
AuthorDate: Fri Sep 20 17:19:02 2019 +0100
Commit:     Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
CommitDate: Mon Sep 23 11:14:41 2019 +0100

    tools/ocaml: Build fix following libxl API changes
    
    The following libxl API became asynchronous and gained an additional
    `ao_how' parameter:
        libxl_domain_pause()
        libxl_domain_unpause()
        libxl_send_trigger()
    
    Adapt the ocaml binding.
    
    Build tested only.
    
    Fixes: edaa631ddcee665cdfae1cf6bc7492c791e01ef4
    Fixes: 95627b87c3159928458ee586e8c5c593bdd248d8
    Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
    Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
 tools/ocaml/libs/xl/xenlight.ml.in   |  6 +++---
 tools/ocaml/libs/xl/xenlight.mli.in  |  6 +++---
 tools/ocaml/libs/xl/xenlight_stubs.c | 27 ++++++++++++++++++---------
 3 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/tools/ocaml/libs/xl/xenlight.ml.in 
b/tools/ocaml/libs/xl/xenlight.ml.in
index 80e620a9be..954e56fc74 100644
--- a/tools/ocaml/libs/xl/xenlight.ml.in
+++ b/tools/ocaml/libs/xl/xenlight.ml.in
@@ -41,10 +41,10 @@ module Domain = struct
        external reboot : ctx -> domid -> unit = "stub_libxl_domain_reboot"
        external destroy : ctx -> domid -> ?async:'a -> unit -> unit = 
"stub_libxl_domain_destroy"
        external suspend : ctx -> domid -> Unix.file_descr -> ?async:'a -> unit 
-> unit = "stub_libxl_domain_suspend"
-       external pause : ctx -> domid -> unit = "stub_libxl_domain_pause"
-       external unpause : ctx -> domid -> unit = "stub_libxl_domain_unpause"
+       external pause : ctx -> domid -> ?async:'a -> unit = 
"stub_libxl_domain_pause"
+       external unpause : ctx -> domid -> ?async:'a -> unit = 
"stub_libxl_domain_unpause"
 
-       external send_trigger : ctx -> domid -> trigger -> int -> unit = 
"stub_xl_send_trigger"
+       external send_trigger : ctx -> domid -> trigger -> int -> ?async:'a -> 
unit = "stub_xl_send_trigger"
        external send_sysrq : ctx -> domid -> char -> unit = 
"stub_xl_send_sysrq"
 end
 
diff --git a/tools/ocaml/libs/xl/xenlight.mli.in 
b/tools/ocaml/libs/xl/xenlight.mli.in
index b2c06b5eed..c08304ae8b 100644
--- a/tools/ocaml/libs/xl/xenlight.mli.in
+++ b/tools/ocaml/libs/xl/xenlight.mli.in
@@ -43,10 +43,10 @@ module Domain : sig
        external reboot : ctx -> domid -> unit = "stub_libxl_domain_reboot"
        external destroy : ctx -> domid -> ?async:'a -> unit -> unit = 
"stub_libxl_domain_destroy"
        external suspend : ctx -> domid -> Unix.file_descr -> ?async:'a -> unit 
-> unit = "stub_libxl_domain_suspend"
-       external pause : ctx -> domid -> unit = "stub_libxl_domain_pause"
-       external unpause : ctx -> domid -> unit = "stub_libxl_domain_unpause"
+       external pause : ctx -> domid -> ?async:'a -> unit = 
"stub_libxl_domain_pause"
+       external unpause : ctx -> domid -> ?async:'a -> unit = 
"stub_libxl_domain_unpause"
 
-       external send_trigger : ctx -> domid -> trigger -> int -> unit = 
"stub_xl_send_trigger"
+       external send_trigger : ctx -> domid -> trigger -> int -> ?async:'a -> 
unit = "stub_xl_send_trigger"
        external send_sysrq : ctx -> domid -> char -> unit = 
"stub_xl_send_sysrq"
 end
 
diff --git a/tools/ocaml/libs/xl/xenlight_stubs.c 
b/tools/ocaml/libs/xl/xenlight_stubs.c
index 0140780a34..37b046df63 100644
--- a/tools/ocaml/libs/xl/xenlight_stubs.c
+++ b/tools/ocaml/libs/xl/xenlight_stubs.c
@@ -622,32 +622,38 @@ value stub_libxl_domain_suspend(value ctx, value domid, 
value fd, value async, v
        CAMLreturn(Val_unit);
 }
 
-value stub_libxl_domain_pause(value ctx, value domid)
+value stub_libxl_domain_pause(value ctx, value domid, value async)
 {
-       CAMLparam2(ctx, domid);
+       CAMLparam3(ctx, domid, async);
        int ret;
        uint32_t c_domid = Int_val(domid);
+       libxl_asyncop_how *ao_how = aohow_val(async);
 
        caml_enter_blocking_section();
-       ret = libxl_domain_pause(CTX, c_domid);
+       ret = libxl_domain_pause(CTX, c_domid, ao_how);
        caml_leave_blocking_section();
 
+       free(ao_how);
+
        if (ret != 0)
                failwith_xl(ret, "domain_pause");
 
        CAMLreturn(Val_unit);
 }
 
-value stub_libxl_domain_unpause(value ctx, value domid)
+value stub_libxl_domain_unpause(value ctx, value domid, value async)
 {
-       CAMLparam2(ctx, domid);
+       CAMLparam3(ctx, domid, async);
        int ret;
        uint32_t c_domid = Int_val(domid);
+       libxl_asyncop_how *ao_how = aohow_val(async);
 
        caml_enter_blocking_section();
-       ret = libxl_domain_unpause(CTX, c_domid);
+       ret = libxl_domain_unpause(CTX, c_domid, ao_how);
        caml_leave_blocking_section();
 
+       free(ao_how);
+
        if (ret != 0)
                failwith_xl(ret, "domain_unpause");
 
@@ -1031,20 +1037,23 @@ value stub_xl_domain_sched_params_set(value ctx, value 
domid, value scinfo)
        CAMLreturn(Val_unit);
 }
 
-value stub_xl_send_trigger(value ctx, value domid, value trigger, value vcpuid)
+value stub_xl_send_trigger(value ctx, value domid, value trigger, value 
vcpuid, value async)
 {
-       CAMLparam4(ctx, domid, trigger, vcpuid);
+       CAMLparam5(ctx, domid, trigger, vcpuid, async);
        int ret;
        uint32_t c_domid = Int_val(domid);
        libxl_trigger c_trigger = LIBXL_TRIGGER_UNKNOWN;
        int c_vcpuid = Int_val(vcpuid);
+       libxl_asyncop_how *ao_how = aohow_val(async);
 
        trigger_val(CTX, &c_trigger, trigger);
 
        caml_enter_blocking_section();
-       ret = libxl_send_trigger(CTX, c_domid, c_trigger, c_vcpuid);
+       ret = libxl_send_trigger(CTX, c_domid, c_trigger, c_vcpuid, ao_how);
        caml_leave_blocking_section();
 
+       free(ao_how);
+
        if (ret != 0)
                failwith_xl(ret, "send_trigger");
 
--
generated by git-patchbot for /home/xen/git/xen.git#staging

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.