From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Scott Subject: [PATCH v2 1/6] libxl: add a list of abstract 'channels' to the domain config Date: Mon, 16 Jun 2014 10:49:50 +0100 Message-ID: <1402912195-24732-2-git-send-email-dave.scott@citrix.com> References: <1402912195-24732-1-git-send-email-dave.scott@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WwTYP-0006oa-NM for xen-devel@lists.xenproject.org; Mon, 16 Jun 2014 09:50:17 +0000 In-Reply-To: <1402912195-24732-1-git-send-email-dave.scott@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: ian.jackson@eu.citrix.com, David Scott , wei.liu2@citrix.com, ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org A 'channel' is a low-bandwidth private communication channel that resembles a physical serial port. Example uses include: * providing initial VM configuration without having to use the network * signalling a guest agent Every channel has a string 'name' which the VM can use to find the appropriate handler. Each channel has an implementation 'type' which currently includes: * NONE: reads will block, writes will be thrown away * PTY: the I/O surfaces as a pty in the backend domain * PATH: writes are appended to a log file in the backend domain * SOCKET: a listening Unix domain socket accepts a connection in the backend domain and proxies Signed-off-by: David Scott --- tools/libxl/libxl_types.idl | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl index 52f1aa9..5671d86 100644 --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -51,6 +51,17 @@ libxl_domain_type = Enumeration("domain_type", [ (2, "PV"), ], init_val = -1) +libxl_channel_type = Enumeration("channel_type", [ + # Connected to nothing: + (0, "NONE"), + # Connect to a pty in the backend domain: + (1, "PTY"), + # Spool output to a file in the backend domain: + (2, "PATH"), + # Listen on a Unix domain socket in the backend domain: + (3, "SOCKET"), + ]) + libxl_device_model_version = Enumeration("device_model_version", [ (0, "UNKNOWN"), (1, "QEMU_XEN_TRADITIONAL"), # Historical qemu-xen device model (qemu-dm) @@ -457,6 +468,15 @@ libxl_device_vtpm = Struct("device_vtpm", [ ("uuid", libxl_uuid), ]) +libxl_device_channel = Struct("device_channel", [ + ("backend_domid", libxl_domid), + ("backend_domname", string), + ("devid", libxl_devid), + ("name", string), + ("type", libxl_channel_type), + ("path", string), +]) + libxl_domain_config = Struct("domain_config", [ ("c_info", libxl_domain_create_info), ("b_info", libxl_domain_build_info), @@ -467,6 +487,7 @@ libxl_domain_config = Struct("domain_config", [ ("vfbs", Array(libxl_device_vfb, "num_vfbs")), ("vkbs", Array(libxl_device_vkb, "num_vkbs")), ("vtpms", Array(libxl_device_vtpm, "num_vtpms")), + ("channels", Array(libxl_device_channel, "num_channels")), ("on_poweroff", libxl_action_on_shutdown), ("on_reboot", libxl_action_on_shutdown), -- 1.7.10.4