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

[Xen-devel] [PATCH 19/28] libxl: ocaml: add dominfo_list and dominfo_get



Signed-off-by: Rob Hoes <rob.hoes@xxxxxxxxxx>
---
 tools/ocaml/libs/xl/genwrap.py       |    3 +++
 tools/ocaml/libs/xl/xenlight_stubs.c |   41 ++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+)

diff --git a/tools/ocaml/libs/xl/genwrap.py b/tools/ocaml/libs/xl/genwrap.py
index 40d18ee..10e6a74 100644
--- a/tools/ocaml/libs/xl/genwrap.py
+++ b/tools/ocaml/libs/xl/genwrap.py
@@ -33,6 +33,9 @@ functions = { # ( name , [type1,type2,....] )
     "device_disk":    DEVICE_FUNCTIONS,
     "device_nic":     DEVICE_FUNCTIONS,
     "device_pci":     DEVICE_FUNCTIONS,
+    "dominfo":        [ ("list",           ["ctx", "t list"]),
+                        ("get",            ["ctx", "domid", "t"]),
+                      ],
     "physinfo":       [ ("get",            ["ctx", "t"]),
                       ],
     "cputopology":    [ ("get",            ["ctx", "t array"]),
diff --git a/tools/ocaml/libs/xl/xenlight_stubs.c 
b/tools/ocaml/libs/xl/xenlight_stubs.c
index 939e993..a8655ad 100644
--- a/tools/ocaml/libs/xl/xenlight_stubs.c
+++ b/tools/ocaml/libs/xl/xenlight_stubs.c
@@ -401,6 +401,47 @@ value stub_xl_cputopology_get(value ctx)
        CAMLreturn(topology);
 }
 
+value stub_xl_dominfo_list(value ctx)
+{
+       CAMLparam1(ctx);
+       CAMLlocal2(domlist, temp);
+       libxl_dominfo *c_domlist;
+       int i, nb;
+
+       c_domlist = libxl_list_domain(CTX, &nb);
+       if (!c_domlist)
+               failwith_xl(ERROR_FAIL, "dominfo_list");
+
+       domlist = temp = Val_emptylist;
+       for (i = nb - 1; i >= 0; i--) {
+               domlist = caml_alloc_small(2, Tag_cons);
+               Field(domlist, 0) = Val_int(0);
+               Field(domlist, 1) = temp;
+               temp = domlist;
+
+               Store_field(domlist, 0, Val_dominfo(&c_domlist[i]));
+       }
+
+       libxl_dominfo_list_free(c_domlist, nb);
+
+       CAMLreturn(domlist);
+}
+
+value stub_xl_dominfo_get(value ctx, value domid)
+{
+       CAMLparam2(ctx, domid);
+       CAMLlocal1(dominfo);
+       libxl_dominfo c_dominfo;
+       int ret;
+
+       ret = libxl_domain_info(CTX, &c_dominfo, Int_val(domid));
+       if (ret != 0)
+               failwith_xl(ERROR_FAIL, "domain_info");
+       dominfo = Val_dominfo(&c_dominfo);
+
+       CAMLreturn(dominfo);
+}
+
 value stub_xl_domain_sched_params_get(value ctx, value domid)
 {
        CAMLparam2(ctx, domid);
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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