]> xenbits.xensource.com Git - xen.git/commitdiff
tools: libxl: add libxl_domid to IDL
authorIan Campbell <ian.campbell@citrix.com>
Wed, 20 Apr 2011 16:13:07 +0000 (17:13 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 20 Apr 2011 16:13:07 +0000 (17:13 +0100)
Language bindings would like to strongly type the domid as a separate
type so make it a defined type.

This patch only impacts the datatypes and autogenerated destructors, I
didn't think the churn of switching the uint32_t's through the code
was worth it.

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>
tools/libxl/libxl.h
tools/libxl/libxl.idl
tools/libxl/libxltypes.py
tools/python/xen/lowlevel/xl/xl.c

index f4f7faa2c2b1c5c878c0dde3e9458cddc2f39e6e..95a7ba3a7b7f411837d08101b84baefe7ec0ed84 100644 (file)
@@ -183,6 +183,8 @@ void libxl_cpuid_destroy(libxl_cpuid_policy_list *cpuid_list);
 
 #define LIBXL_PCI_FUNC_ALL (~0U)
 
+typedef uint32_t libxl_domid;
+
 #include "_libxl_types.h"
 
 typedef struct libxl__ctx libxl_ctx;
index 1ccddfc1ba374d5e005cf0e3a3bcbf4f02e98257..ca5ae5e0b7fc2b762e62589d2ab0f3e9f72798af 100644 (file)
@@ -3,7 +3,7 @@
 # Builtin libxl types
 #
 
-libxl_ctx = Builtin("ctx")
+libxl_domid = Builtin("domid")
 libxl_uuid = Builtin("uuid")
 libxl_mac = Builtin("mac")
 libxl_cpumap = Builtin("cpumap", destructor_fn="libxl_cpumap_destroy", passby=PASS_BY_REFERENCE)
@@ -88,7 +88,7 @@ libxl_button = Enumeration("button", [
 #
 libxl_dominfo = Struct("dominfo",[
     ("uuid",        libxl_uuid),
-    ("domid",       domid),
+    ("domid",       libxl_domid),
     ("running",     BitField(uint8, 1)),
     ("blocked",     BitField(uint8, 1)),
     ("paused",      BitField(uint8, 1)),
@@ -116,7 +116,7 @@ libxl_cpupoolinfo = Struct("cpupoolinfo", [
 
 libxl_vminfo = Struct("vminfo", [
     ("uuid", libxl_uuid),
-    ("domid", domid),
+    ("domid", libxl_domid),
     ], destructor_fn=None)
 
 libxl_version_info = Struct("version_info", [
@@ -198,7 +198,7 @@ libxl_domain_build_state = Struct("domain_build_state",[
     ], destructor_fn=None)
 
 libxl_device_model_info = Struct("device_model_info",[
-    ("domid",            integer),
+    ("domid",            libxl_domid),
     ("uuid",             libxl_uuid,  False, "this is use only with stubdom, and must be different from the domain uuid"),
     ("dom_name",         string),
     ("device_model_version", libxl_device_model_version),
@@ -236,7 +236,7 @@ libxl_device_model_info = Struct("device_model_info",[
 Network is missing""")
 
 libxl_device_vfb = Struct("device_vfb", [
-    ("backend_domid", uint32),
+    ("backend_domid", libxl_domid),
     ("devid",         integer),
     ("vnc",           bool,     False, "vnc enabled or disabled"),
     ("vnclisten",     string,   False, "address:port that should be listened on for the VNC server if vnc is set"),
@@ -251,12 +251,12 @@ libxl_device_vfb = Struct("device_vfb", [
     ])
 
 libxl_device_vkb = Struct("device_vkb", [
-    ("backend_domid", uint32),
+    ("backend_domid", libxl_domid),
     ("devid", integer),
     ])
 
 libxl_device_console = Struct("device_console", [
-    ("backend_domid", uint32),
+    ("backend_domid", libxl_domid),
     ("devid", integer),
     ("consback", libxl_console_backend),
     ("build_state", Reference(libxl_domain_build_state), True),
@@ -264,7 +264,7 @@ libxl_device_console = Struct("device_console", [
     ])
 
 libxl_device_disk = Struct("device_disk", [
-    ("backend_domid", uint32),
+    ("backend_domid", libxl_domid),
     ("pdev_path", string),
     ("vdev", string),
     ("backend", libxl_disk_backend),
@@ -275,7 +275,7 @@ libxl_device_disk = Struct("device_disk", [
     ])
 
 libxl_device_nic = Struct("device_nic", [
-    ("backend_domid", uint32),
+    ("backend_domid", libxl_domid),
     ("devid", integer),
     ("mtu", integer),
     ("model", string),
index a00711fe1eb464ce6f81c51776843ba4e3b531f5..608de4388afcd89001d16c3b1fda966246809d79 100644 (file)
@@ -184,8 +184,6 @@ uint16 = UInt(16)
 uint32 = UInt(32)
 uint64 = UInt(64)
 
-domid = UInt(32)
-
 string = Builtin("char *", namespace = None, destructor_fn = "free")
 
 class OrderedDict(dict):
index ba8bd7c548f0144d01fc76190c8c86a889594dec..9cea942f691ddd88cd02759552ffb39a41960696 100644 (file)
@@ -155,6 +155,7 @@ int genwrap__ll_set(PyObject *v, long long *val, long long mask)
     *val = tmp;
     return 0;
 }
+
 static int fixed_bytearray_set(PyObject *v, uint8_t *ptr, size_t len)
 {
     char *tmp;
@@ -275,6 +276,11 @@ int attrib__libxl_uuid_set(PyObject *v, libxl_uuid *pptr)
     return fixed_bytearray_set(v, libxl_uuid_bytearray(pptr), 16);
 }
 
+int attrib__libxl_domid_set(PyObject *v, libxl_domid *domid) {
+    *domid = PyInt_AsLong(v);
+    return 0;
+}
+
 int attrib__struct_in_addr_set(PyObject *v, struct in_addr *pptr)
 {
     PyErr_SetString(PyExc_NotImplementedError, "Setting in_addr");
@@ -362,6 +368,10 @@ PyObject *attrib__libxl_uuid_get(libxl_uuid *pptr)
     return fixed_bytearray_get(libxl_uuid_bytearray(pptr), 16);
 }
 
+PyObject *attrib__libxl_domid_get(libxl_domid *domid) {
+    return PyInt_FromLong(*domid);
+}
+
 PyObject *attrib__struct_in_addr_get(struct in_addr *pptr)
 {
     PyErr_SetString(PyExc_NotImplementedError, "Getting in_addr");