The aims are:
1. make the records instantiable if they have field names in common; and
2. to make it easier to derive the names programatically from the IDL
Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
}
end
-type build_pv_info =
-{
- slack_memkb : int64;
- cmdline : string;
- ramdisk : string;
- features : string;
-}
-
-type build_hvm_info =
-{
- pae : bool;
- apic : bool;
- acpi : bool;
- nx : bool;
- viridian : bool;
- timeoffset : string;
- timer_mode : int;
- hpet : int;
- vpt_align : int;
-}
-
-type build_spec = BuildHVM of build_hvm_info | BuildPV of build_pv_info
+module Domain_build_info = struct
+ module Hvm = struct
+ type t =
+ {
+ pae : bool;
+ apic : bool;
+ acpi : bool;
+ nx : bool;
+ viridian : bool;
+ timeoffset : string;
+ timer_mode : int;
+ hpet : int;
+ vpt_align : int;
+ }
+ end
+
+ module Pv = struct
+ type t =
+ {
+ slack_memkb : int64;
+ cmdline : string;
+ ramdisk : string;
+ features : string;
+ }
+ end
-type build_info =
-{
- max_vcpus : int;
- cur_vcpus : int;
- max_memkb : int64;
- target_memkb : int64;
- video_memkb : int64;
- shadow_memkb : int64;
- kernel : string;
- priv: build_spec;
-}
+ type t =
+ {
+ max_vcpus : int;
+ cur_vcpus : int;
+ max_memkb : int64;
+ target_memkb : int64;
+ video_memkb : int64;
+ shadow_memkb : int64;
+ kernel : string;
+ u : [ `HVM of Hvm.t | `PV of Pv.t ];
+ }
+end
type build_state =
{
}
end
-type build_pv_info =
-{
- slack_memkb : int64;
- cmdline : string;
- ramdisk : string;
- features : string;
-}
-
-type build_hvm_info =
-{
- pae : bool;
- apic : bool;
- acpi : bool;
- nx : bool;
- viridian : bool;
- timeoffset : string;
- timer_mode : int;
- hpet : int;
- vpt_align : int;
-}
-
-type build_spec = BuildHVM of build_hvm_info | BuildPV of build_pv_info
+module Domain_build_info : sig
+ module Hvm : sig
+ type t =
+ {
+ pae : bool;
+ apic : bool;
+ acpi : bool;
+ nx : bool;
+ viridian : bool;
+ timeoffset : string;
+ timer_mode : int;
+ hpet : int;
+ vpt_align : int;
+ }
+ end
+
+ module Pv : sig
+ type t =
+ {
+ slack_memkb : int64;
+ cmdline : string;
+ ramdisk : string;
+ features : string;
+ }
+ end
-type build_info =
-{
- max_vcpus : int;
- cur_vcpus : int;
- max_memkb : int64;
- target_memkb : int64;
- video_memkb : int64;
- shadow_memkb : int64;
- kernel : string;
- priv: build_spec;
-}
+ type t =
+ {
+ max_vcpus : int;
+ cur_vcpus : int;
+ max_memkb : int64;
+ target_memkb : int64;
+ video_memkb : int64;
+ shadow_memkb : int64;
+ kernel : string;
+ u : [ `HVM of Hvm.t | `PV of Pv.t ];
+ }
+end
type build_state =
{