]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/xen.git/commit
libxendevicemodel: add ioreq server interfaces
authorIan Campbell <ian.campbell@citrix.com>
Fri, 29 Jan 2016 13:11:51 +0000 (13:11 +0000)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 10 Feb 2016 17:09:53 +0000 (17:09 +0000)
commit60985421a990a68dc176719bb01c3e1c211cc017
treecb7b11decf11208d03c823b44e6f8712b23997d6
parent8443791992c2100b1a08934f2c896616ef374ba0
libxendevicemodel: add ioreq server interfaces

These are taken wholesale pretty much directly from the libxc
versions. Those libxc ones will be deleted later in the series in
order to make the transition simpler for QEMU upstream.

Changes compared with libxc are:
  - All functions take a xendevicemodel_handle instead of an
    xc_interface+domid, and are named xendevicemodel_* not xc_hvm_*.
  - ioservid_t becomes uint16_t (since hvm_op.h is not exposed to
    users of this library)
  - ioserv's which handle buffered ioreq must always use the ATOMIC
    variant, LEGACY is not exposed (since anything being ported to
    this library should be adjusted to be atomic at the same time)
  - a few integer params which were actually booleans converted to
    bool.
  - Internally use xencall_alloc_buffer directly.
  - All always log on failure.

XXX underlying hypercall is not stable. Note this with the version of
    @@UNSTABLE. Also in order to build need to define __XEN_TOOLS__,
    use a separate source file to avoid accidentally poluting the
    stable bits of the library.

TBD replace hypercall with a stable variant and move to ioreq.c +
    version as @@1.0

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
tools/libs/devicemodel/Makefile
tools/libs/devicemodel/include/xendevicemodel.h
tools/libs/devicemodel/ioreqserv_unstable.c [new file with mode: 0644]
tools/libs/devicemodel/libxendevicemodel.map