From: Ian Campbell <ian.campbell@citrix.com>
To: xen-devel@lists.xensource.com
Cc: Jim Fehlig <jfehlig@novell.com>,
Mike McClurg <mike.mcclurg@citrix.com>,
Dave Scott <Dave.Scott@eu.citrix.com>,
Jonathan Ludlam <Jonathan.Ludlam@eu.citrix.com>
Subject: [PATCH 02 of 23] libxl: add a comment describing the device interfaces
Date: Fri, 30 Sep 2011 14:33:15 +0100 [thread overview]
Message-ID: <7c845e974def74de73f6.1317389595@localhost.localdomain> (raw)
In-Reply-To: <patchbomb.1317389593@localhost.localdomain>
# HG changeset patch
# User Ian Campbell <ian.campbell@citrix.com>
# Date 1317389247 -3600
# Node ID 7c845e974def74de73f67123f39d6fd2769082e9
# Parent 42dee7039d911db8b82e9f857fcad92a689d0318
libxl: add a comment describing the device interfaces.
Subsequent patches will endevour to make reality match this defined
interface.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
diff -r 42dee7039d91 -r 7c845e974def tools/libxl/libxl.h
--- a/tools/libxl/libxl.h Fri Sep 30 14:27:27 2011 +0100
+++ b/tools/libxl/libxl.h Fri Sep 30 14:27:27 2011 +0100
@@ -379,6 +379,78 @@ libxl_dominfo * libxl_list_domain(libxl_
libxl_cpupoolinfo * libxl_list_cpupool(libxl_ctx*, int *nb_pool);
libxl_vminfo * libxl_list_vm(libxl_ctx *ctx, int *nb_vm);
+/*
+ * Devices
+ * =======
+ *
+ * Each device is represented by a libxl_device_<TYPE> data structure
+ * which is defined via the IDL. In addition some devices have an
+ * additional data type libxl_device_<TYPE>_getinfo which contains
+ * further runtime information about the device.
+ *
+ * A common set of methods are available for each device type. These
+ * are described below.
+ *
+ * Querying
+ * --------
+ *
+ * libxl_device_<type>_list(ctx, domid, nr):
+ *
+ * Returns an array of libxl_device_<type> length nr representing
+ * the devices attached to the specified domain.
+ *
+ * libxl_device_<type>_getinfo(ctx, domid, device, info):
+ *
+ * Initialises info with details of the given device which must be
+ * attached to the specified domain.
+ *
+ * Creation / Control
+ * ------------------
+ *
+ * libxl_device_<type>_init(ctx, device):
+ *
+ * Initalises device to a default configuration.
+ *
+ * libxl_device_<type>_add(ctx, domid, device):
+ *
+ * Adds the given device to the specified domain. This can be called
+ * while the guest is running (hotplug) or before boot (coldplug).
+ *
+ * This function only sets up the device but does not wait for the
+ * domain to connect to the device and therefore cannot block on the
+ * guest.
+ *
+ * XXX do we need a way to wait? e.g. wait_for_connect function?
+ * XXX perhaps an optional way to generate an event on connect?
+ * needs event system overhaul.
+ *
+ * libxl_device_<type>_remove(ctx, domid, device):
+ *
+ * Removes the given device from the specified domain by performing
+ * an orderly unplug with guest co-operation. This requires that the
+ * guest is running.
+ *
+ * This method is currently synchronous and therefore can block
+ * while interacting with the guest.
+ *
+ * XXX should provide an async version. needs event system overhaul.
+ *
+ * libxl_device_<type>_force_remove(ctx, domid, device):
+ *
+ * Removes the given device from the specified domain without guest
+ * co-operation. It is guest specific what affect this will have on
+ * a running guest.
+ *
+ * This function does not interact with the guest and therefore
+ * cannot block on the guest.
+ *
+ * Note
+ * ----
+ *
+ * The function libxl_device_<type>_destroy is defined by the IDL and
+ * is used to free the members of the libxl_device_<type> data
+ * type. It has no impact on the devices attached to any domain.
+ */
int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk);
int libxl_device_disk_del(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk, int wait);
libxl_device_disk *libxl_device_disk_list(libxl_ctx *ctx, uint32_t domid, int *num);
next prev parent reply other threads:[~2011-09-30 13:33 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-30 13:33 [PATCH 00 of 23] libxl: rationalise libxl_device_* APIs Ian Campbell
2011-09-30 13:33 ` [PATCH 01 of 23] libxl: remove hard tabs from non-generated *.[ch] Ian Campbell
2011-10-06 16:34 ` Ian Jackson
2011-10-07 8:37 ` Ian Campbell
2011-10-07 14:08 ` [PATCH 0 of 3] libxl: fixup hard tabs and indentation Ian Campbell
2011-10-07 14:08 ` [PATCH 1 of 3] libxl: expand hard tabs stops Ian Campbell
2011-10-07 14:08 ` [PATCH 2 of 3] libxl: fixup incorrect indentation Ian Campbell
2011-10-12 15:23 ` Ian Jackson
2011-10-07 14:08 ` [PATCH 3 of 3] libxl: add emacs local variables block to turn on four space indentation Ian Campbell
2011-10-10 11:09 ` Ian Jackson
2011-09-30 13:33 ` Ian Campbell [this message]
2011-10-04 8:53 ` [PATCH 02 of 23] libxl: add a comment describing the device interfaces Dave Scott
2011-10-04 9:38 ` Ian Campbell
2011-10-11 12:59 ` Roger Pau Monné
2011-10-12 15:27 ` Ian Campbell
2011-09-30 13:33 ` [PATCH 03 of 23] libxl: various fixes to libxl_device_disk_list (and internals) Ian Campbell
2011-09-30 13:33 ` [PATCH 04 of 23] libxl: refactor code to construct disk from xenstore backend Ian Campbell
2011-09-30 13:33 ` [PATCH 05 of 23] libxl: do not read f.e. xenstore dir in disk list function Ian Campbell
2011-09-30 13:33 ` [PATCH 06 of 23] libxl: update nic list API to use common device API style Ian Campbell
2011-10-05 12:48 ` [PATCH] " Roger Pau Monne
2011-10-05 13:10 ` Ian Campbell
2011-10-05 13:22 ` Roger Pau Monné
2011-10-05 13:42 ` Ian Campbell
2011-09-30 13:33 ` [PATCH 07 of 23] libxl: reimplement devid->nic in terms of from_xs_be function Ian Campbell
2011-09-30 13:33 ` [PATCH 08 of 23] libxl: reimplement devid->disk " Ian Campbell
2011-09-30 13:33 ` [PATCH 09 of 23] libxl: libxl_devid_to_* should take an integer device id Ian Campbell
2011-09-30 13:33 ` [PATCH 10 of 23] libxl: separate forced and non-forced device remove Ian Campbell
2011-10-06 16:38 ` Ian Jackson
2011-10-07 8:44 ` Ian Campbell
2011-10-07 13:08 ` Ian Jackson
2011-09-30 13:33 ` [PATCH 11 of 23] libxl: split forced and non-forced uses of libxl__device_del Ian Campbell
2011-09-30 13:33 ` [PATCH 12 of 23] libxl: use IDL to define device front- and back-end kinds Ian Campbell
2011-09-30 13:33 ` [PATCH 13 of 23] libxl: do not remove unidentified frontend paths in libxl__devices_destroy Ian Campbell
2011-09-30 13:33 ` [PATCH 14 of 23] libxl: use libxl__device in libxl_devices_destroy and libxl__device_pci_remove_xenstore Ian Campbell
2011-10-07 12:18 ` Roger Pau Monné
2011-10-07 12:24 ` Ian Campbell
2011-10-07 12:26 ` Ian Campbell
2011-09-30 13:33 ` [PATCH 15 of 23] libxl: merge libxl__device_del into libxl__device_remove Ian Campbell
2011-09-30 13:33 ` [PATCH 16 of 23] libxl: use more descriptive variable names in libxl__devices_destroy Ian Campbell
2011-09-30 13:33 ` [PATCH 17 of 23] libxl: convert disk handling to device API Ian Campbell
2011-09-30 13:33 ` [PATCH 18 of 23] libxl: convert NIC " Ian Campbell
2011-09-30 13:33 ` [PATCH 19 of 23] libxl: remove libxl_device_console_add Ian Campbell
2011-09-30 13:33 ` [PATCH 20 of 23] libxl: convert VKB handling to device API Ian Campbell
2011-09-30 13:33 ` [PATCH 21 " Ian Campbell
2011-09-30 13:33 ` [PATCH 22 of 23] libxl: reorder device functions to put functions for each device together Ian Campbell
2011-09-30 13:33 ` [PATCH 23 of 23] libxl: convert PCI device handling to device API Ian Campbell
2011-10-04 7:32 ` [PATCH 00 of 23] libxl: rationalise libxl_device_* APIs Roger Pau Monné
2011-10-04 8:12 ` Ian Campbell
2011-10-04 8:32 ` Ian Campbell
2011-10-05 9:04 ` Roger Pau Monné
2011-10-05 9:33 ` Ian Campbell
2011-10-05 11:59 ` Roger Pau Monné
2011-10-05 13:08 ` Ian Campbell
2011-10-05 13:15 ` Roger Pau Monné
2011-10-06 16:43 ` Ian Jackson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7c845e974def74de73f6.1317389595@localhost.localdomain \
--to=ian.campbell@citrix.com \
--cc=Dave.Scott@eu.citrix.com \
--cc=Jonathan.Ludlam@eu.citrix.com \
--cc=jfehlig@novell.com \
--cc=mike.mcclurg@citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.