tools/ocaml: Small improvement to the ocaml xenctrl library
authorJon Ludlam <jonathan.ludlam@eu.citrix.com>
Mon, 10 Oct 2011 15:41:17 +0000 (16:41 +0100)
committerJon Ludlam <jonathan.ludlam@eu.citrix.com>
Mon, 10 Oct 2011 15:41:17 +0000 (16:41 +0100)
Add a new field 'max_nr_cpus' to the physinfo type in the ocaml xc bindings

Signed-off-by: Zheng Li <zheng.li@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
tools/ocaml/libs/xc/xenctrl.ml
tools/ocaml/libs/xc/xenctrl.mli
tools/ocaml/libs/xc/xenctrl_stubs.c

index c02efbcc69be5b40c5390dd306fcec0149d97b25..b7ba8b7ddc4b827c46235c5b33438e0eb0c9a366 100644 (file)
@@ -70,6 +70,7 @@ type physinfo =
        scrub_pages      : nativeint;
        (* XXX hw_cap *)
        capabilities     : physinfo_cap_flag list;
+       max_nr_cpus      : int;
 }
 
 type version =
index 07667848db5d0685b5969c8dd875008930c3009e..bc4af56a1d7df069e65f073edbda59a91159dcac 100644 (file)
@@ -52,6 +52,7 @@ type physinfo = {
   free_pages       : nativeint;
   scrub_pages      : nativeint;
   capabilities     : physinfo_cap_flag list;
+  max_nr_cpus      : int; (** compile-time max possible number of nr_cpus *)
 }
 type version = { major : int; minor : int; extra : string; }
 type compile_info = {
index 03923e8c6a4ff07ae58a328377b55ad6998de304..36b7801a3dbf4ae6902f0dd6e2b507a385a1121c 100644 (file)
@@ -534,6 +534,7 @@ CAMLprim value stub_xc_readconsolering(value xch)
 
        if (retval)
                failwith_xc(_H(xch));
+
        ring[size] = '\0';
        CAMLreturn(caml_copy_string(ring));
 }
@@ -573,7 +574,7 @@ CAMLprim value stub_xc_physinfo(value xch)
                }
        }
 
-       physinfo = caml_alloc_tuple(9);
+       physinfo = caml_alloc_tuple(10);
        Store_field(physinfo, 0, Val_int(c_physinfo.threads_per_core));
        Store_field(physinfo, 1, Val_int(c_physinfo.cores_per_socket));
        Store_field(physinfo, 2, Val_int(c_physinfo.nr_cpus));
@@ -583,6 +584,7 @@ CAMLprim value stub_xc_physinfo(value xch)
        Store_field(physinfo, 6, caml_copy_nativeint(c_physinfo.free_pages));
        Store_field(physinfo, 7, caml_copy_nativeint(c_physinfo.scrub_pages));
        Store_field(physinfo, 8, cap_list);
+       Store_field(physinfo, 9, Val_int(c_physinfo.max_cpu_id + 1));
 
        CAMLreturn(physinfo);
 }