Arun Sharma
2005-Aug-15 21:43 UTC
[Xen-devel] [PATCH][VT] Distinguish ioemu handled devices and para virtualized devices
Distinguish ioemu handled devices and para virtualized devices Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com> Signed-off-by: Arun Sharma <arun.sharma@intel.com> --- a/tools/examples/xmexample.vmx Thu Aug 11 20:38:44 2005 +++ b/tools/examples/xmexample.vmx Fri Aug 12 17:25:49 2005 @@ -34,7 +34,7 @@ # and MODE is r for read-only, w for read-write. #disk = [ ''phy:hda1,hda1,r'' ] -disk = [ ''file:/var/images/min-el3-i386.img,hda,w'' ] +disk = [ ''file:/var/images/min-el3-i386.img,ioemu:hda,w'' ] #---------------------------------------------------------------------------- # Set according to whether you want the domain restarted when it exits. diff -r c589ca6d292b -r 9413e453e83b tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Thu Aug 11 20:38:44 2005 +++ b/tools/python/xen/xend/XendDomainInfo.py Fri Aug 12 17:25:49 2005 @@ -743,8 +743,7 @@ for ctrl in self.getDeviceControllers(): ctrl.initController(reboot=True) else: - if self.image.ostype != ''vmx'': - self.create_configured_devices() + self.create_configured_devices() if not self.device_model_pid: self.device_model_pid = self.image.createDeviceModel() @@ -916,8 +915,7 @@ """ self.configure_fields() self.create_devices() - if self.image.ostype != ''vmx'': - self.create_blkif() + self.create_blkif() def create_blkif(self): """Create the block device interface (blkif) for the vm. diff -r c589ca6d292b -r 9413e453e83b tools/python/xen/xend/image.py --- a/tools/python/xen/xend/image.py Thu Aug 11 20:38:44 2005 +++ b/tools/python/xen/xend/image.py Fri Aug 12 17:25:49 2005 @@ -16,6 +16,7 @@ #=========================================================================== import os, string +import re import xen.lowlevel.xc; xc = xen.lowlevel.xc.new() from xen.xend import sxp @@ -329,8 +330,15 @@ if name == ''vbd'': vbdinfo = sxp.child(device, ''vbd'') uname = sxp.child_value(vbdinfo, ''uname'') - vbddev = sxp.child_value(vbdinfo, ''dev'') + typedev = sxp.child_value(vbdinfo, ''dev'') (vbdtype, vbdparam) = string.split(uname, '':'', 1) + if re.match(''^ioemu:'', typedev): + (emtype, vbddev) = string.split(typedev, '':'', 1) + else: + emtype = ''vbd'' + vbddev = typedev + if emtype != ''ioemu'': + continue; vbddev_list = [''hda'', ''hdb'', ''hdc'', ''hdd''] if vbddev not in vbddev_list: raise VmError("vmx: for qemu vbd type=file&dev=hda~hdd") diff -r c589ca6d292b -r 9413e453e83b tools/python/xen/xend/server/blkif.py --- a/tools/python/xen/xend/server/blkif.py Thu Aug 11 20:38:44 2005 +++ b/tools/python/xen/xend/server/blkif.py Fri Aug 12 17:25:49 2005 @@ -18,6 +18,7 @@ """Support for virtual block devices. """ import string +import re from xen.util import blkif from xen.xend.XendError import XendError, VmError @@ -199,6 +200,7 @@ self.vdev = None self.mode = None self.type = None + self.emtype = None self.params = None self.node = None self.device = None @@ -237,7 +239,12 @@ # Split into type and type-specific params (which are passed to the # type-specific control script). (self.type, self.params) = string.split(self.uname, '':'', 1) - self.dev = sxp.child_value(config, ''dev'') + typedev = sxp.child_value(config, ''dev'') + if re.match( ''^ioemu:'', typedev): + (self.emtype, self.dev) = string.split(typedev, '':'', 1) + else: + self.emtype = ''vbd'' + self.dev = typedev if not self.dev: raise VmError(''vbd: Missing dev'') self.mode = sxp.child_value(config, ''mode'', ''r'') @@ -258,6 +265,8 @@ if recreate: pass else: + if self.emtype == ''ioemu'': + return node = Blkctl.block(''bind'', self.type, self.params) self.setNode(node) self.attachBackend() _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel