aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl_types.idl
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2012-09-03 11:21:59 +0100
committerIan Campbell <ian.campbell@citrix.com>2012-09-03 11:21:59 +0100
commit203fbef2fb5e60fe57347146ca20880aca6e5594 (patch)
tree8f14c8d554c35fbc56928d332e800fd786ec44c4 /tools/libxl/libxl_types.idl
parent8e66050e3223a9aa55ca29ec32b2e78c3e69e085 (diff)
downloadxen-203fbef2fb5e60fe57347146ca20880aca6e5594.tar.gz
xen-203fbef2fb5e60fe57347146ca20880aca6e5594.tar.bz2
xen-203fbef2fb5e60fe57347146ca20880aca6e5594.zip
libxl/xl: implement support for guest ioport and irq permissions.
This is useful for passing legacy ISA devices (e.g. com ports, parallel ports) to guests. Supported syntax is as described in http://cmrg.fifthhorseman.net/wiki/xen#grantingaccesstoserialhardwaretoadomU I tested this using Xen's 'q' key handler which prints out the I/O port and IRQ ranges allowed for each domain. e.g.: (XEN) Rangesets belonging to domain 31: (XEN) I/O Ports { 2e8-2ef, 2f8-2ff } (XEN) Interrupts { 3, 5-6 } Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Tested-by: Dieter Bloms <dieter@bloms.de> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'tools/libxl/libxl_types.idl')
-rw-r--r--tools/libxl/libxl_types.idl8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index c5716a44bd..6d5c578519 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -135,6 +135,11 @@ libxl_vga_interface_type = Enumeration("vga_interface_type", [
# Complex libxl types
#
+libxl_ioport_range = Struct("ioport_range", [
+ ("first", uint32),
+ ("number", uint32),
+ ])
+
libxl_vga_interface_info = Struct("vga_interface_info", [
("kind", libxl_vga_interface_type),
])
@@ -277,6 +282,9 @@ libxl_domain_build_info = Struct("domain_build_info",[
# parameters for all type of scheduler
("sched_params", libxl_domain_sched_params),
+ ("ioports", Array(libxl_ioport_range, "num_ioports")),
+ ("irqs", Array(uint32, "num_irqs")),
+
("u", KeyedUnion(None, libxl_domain_type, "type",
[("hvm", Struct(None, [("firmware", string),
("bios", libxl_bios_type),