diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2012-09-03 11:21:59 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2012-09-03 11:21:59 +0100 |
commit | 203fbef2fb5e60fe57347146ca20880aca6e5594 (patch) | |
tree | 8f14c8d554c35fbc56928d332e800fd786ec44c4 /tools/libxl/libxl_types.idl | |
parent | 8e66050e3223a9aa55ca29ec32b2e78c3e69e085 (diff) | |
download | xen-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.idl | 8 |
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), |