]> xenbits.xensource.com Git - xen.git/commit
libvchan: interdomain communications library
authorDaniel De Graaf <dgdegra@tycho.nsa.gov>
Thu, 6 Oct 2011 18:44:40 +0000 (19:44 +0100)
committerDaniel De Graaf <dgdegra@tycho.nsa.gov>
Thu, 6 Oct 2011 18:44:40 +0000 (19:44 +0100)
commit1a16a3351ff2f2cf9f0cc0a27c89a0652eb8dfb4
tree0bdd977ac463467766ee133f140085e0f39b0c93
parent399a74471de9f7525e84441c59aa9601133ba828
libvchan: interdomain communications library

This library implements a bidirectional communication interface between
applications in different domains, similar to unix sockets. Data can be
sent using the byte-oriented libvchan_read/libvchan_write or the
packet-oriented libvchan_recv/libvchan_send.

Channel setup is done using a client-server model; domain IDs and a port
number must be negotiated prior to initialization. The server allocates
memory for the shared pages and determines the sizes of the
communication rings (which may span multiple pages, although the default
places rings and control within a single page).

With properly sized rings, testing has shown that this interface
provides speed comparable to pipes within a single Linux domain; it is
significantly faster than network-based communication.

Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/Makefile
tools/Rules.mk
tools/libvchan/Makefile [new file with mode: 0644]
tools/libvchan/init.c [new file with mode: 0644]
tools/libvchan/io.c [new file with mode: 0644]
tools/libvchan/libxenvchan.h [new file with mode: 0644]
tools/libvchan/node-select.c [new file with mode: 0644]
tools/libvchan/node.c [new file with mode: 0644]
tools/libvchan/vchan-node1 [new file with mode: 0755]
tools/libvchan/vchan-node2 [new file with mode: 0755]
xen/include/public/io/libxenvchan.h [new file with mode: 0644]