From: Ian Campbell Date: Wed, 20 Apr 2011 16:13:07 +0000 (+0100) Subject: tools: libxl: remove BitField type class from IDL X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=442ee1681a29f049c4c7f18ace9003bd266fbe9f;p=xen.git tools: libxl: remove BitField type class from IDL All usages are single bit BitFields, AKA booleans. In general we prefer to use simple structures (e.g. without packing or specific layouts) in the libxl API and take care of any require structure by marshalling within the library instead of expecting users to do so (e.g. the PCI device BDF is unpacked in the libxl API). Signed-off-by: Ian Campbell Acked-by: Ian Jackson Committed-by: Ian Jackson --- diff --git a/tools/libxl/gentypes.py b/tools/libxl/gentypes.py index 099a3919f2..b64ec0ccb2 100644 --- a/tools/libxl/gentypes.py +++ b/tools/libxl/gentypes.py @@ -22,9 +22,7 @@ def libxl_C_type_of(ty): return ty.typename def libxl_C_instance_of(ty, instancename): - if isinstance(ty, libxltypes.BitField): - return libxl_C_type_of(ty) + " " + instancename + ":%d" % ty.width - elif isinstance(ty, libxltypes.Aggregate) and ty.typename is None: + if isinstance(ty, libxltypes.Aggregate) and ty.typename is None: if instancename is None: return libxl_C_type_define(ty) else: diff --git a/tools/libxl/idl.txt b/tools/libxl/idl.txt index 9048828e77..be835cd8f6 100644 --- a/tools/libxl/idl.txt +++ b/tools/libxl/idl.txt @@ -64,14 +64,6 @@ libxltype.UInt The for a given instance must be passed to the constructor and is then available in UInt.width -libxltype.BitField - - Instances of this class represent bitfield type classes. - - The base type and desired width for a given instance must be passed - to the contructor. The base type becomes the type of the instance and - width is contained in BitField.width - libxltype.Reference Instances of this type represent a reference to another type diff --git a/tools/libxl/libxl.idl b/tools/libxl/libxl.idl index ca5ae5e0b7..bb85f61ad2 100644 --- a/tools/libxl/libxl.idl +++ b/tools/libxl/libxl.idl @@ -89,11 +89,11 @@ libxl_button = Enumeration("button", [ libxl_dominfo = Struct("dominfo",[ ("uuid", libxl_uuid), ("domid", libxl_domid), - ("running", BitField(uint8, 1)), - ("blocked", BitField(uint8, 1)), - ("paused", BitField(uint8, 1)), - ("shutdown", BitField(uint8, 1)), - ("dying", BitField(uint8, 1)), + ("running", bool), + ("blocked", bool), + ("paused", bool), + ("shutdown", bool), + ("dying", bool), ("shutdown_reason", unsigned, False, """Valid SHUTDOWN_* value from xen/sched.h iff (shutdown||dying). @@ -326,9 +326,9 @@ libxl_nicinfo = Struct("nicinfo", [ libxl_vcpuinfo = Struct("vcpuinfo", [ ("vcpuid", uint32, False, "vcpu's id"), ("cpu", uint32, False, "current mapping"), - ("online", BitField(uint8, 1), False, "currently online (not hotplugged)?"), - ("blocked", BitField(uint8, 1), False, "blocked waiting for an event?"), - ("running", BitField(uint8, 1), False, "currently scheduled on its CPU?"), + ("online", bool, False, "currently online (not hotplugged)?"), + ("blocked", bool, False, "blocked waiting for an event?"), + ("running", bool, False, "currently scheduled on its CPU?"), ("vcpu_time", uint64, False, "total vcpu time ran (ns)"), ("cpumap", libxl_cpumap, False, "current cpu's affinities"), ]) diff --git a/tools/libxl/libxltypes.py b/tools/libxl/libxltypes.py index 608de4388a..8f0b516889 100644 --- a/tools/libxl/libxltypes.py +++ b/tools/libxl/libxltypes.py @@ -81,14 +81,6 @@ class Enumeration(Type): comment=comment, typename=self.rawname)) -class BitField(Type): - def __init__(self, ty, w, **kwargs): - kwargs.setdefault('namespace', None) - kwargs.setdefault('destructor_fn', None) - Type.__init__(self, ty.typename, **kwargs) - - self.width = w - class Field(object): """An element of an Aggregate type""" def __init__(self, type, name, **kwargs): diff --git a/tools/python/genwrap.py b/tools/python/genwrap.py index d707d4f011..ed92b35b7b 100644 --- a/tools/python/genwrap.py +++ b/tools/python/genwrap.py @@ -7,7 +7,7 @@ import libxltypes (TYPE_BOOL, TYPE_INT, TYPE_UINT, TYPE_STRING) = range(4) def py_type(ty): - if ty == libxltypes.bool or isinstance(ty, libxltypes.BitField) and ty.width == 1: + if ty == libxltypes.bool: return TYPE_BOOL if isinstance(ty, libxltypes.Enumeration): return TYPE_UINT