Import userspace oxenstored server

From ocaml-xenstore-xen c/s 1f25d7a95d77fa7ab632609ccdd3ba1dc33a9a54

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
userspace: use the standard xen-evtchn package

Remove the in-tree bindings.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Rely on io-page for page allocation

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Replace the Lwt C stubs with regular C stubs

We expect the hypercalls (getdomaininfo list etc) to be non-blocking
(and they are only executed on domain shutdown i.e. occasionally)

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
oxenstored: now starts with "open Xenstore.Std"

The Std module presents a prettified view of the xenstore libraries,
but is still a work in progress.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
oxenstored: improve the Domains signature

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Add license header to domains.ml

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
server: pull out the TRANSPORT signature so it can be re-used

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
oxenstored: rename Xs_transport_xen to Interdomain

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Rename Xs_server_lwt_unix to Sockets, constrained to S.TRANSPORT

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
oxenstored: rename files

The plan is to give everything a simple name.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Remove the server's Namespace interface from the client/server transports

Move the S.TRANSPORT signature to core/
Move the client logic to core/

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Use Uri.t to represent connection endpoint addresses

Instead of a fixed datatype which implied a fixed number of possible
functor instantiations, we now have Uri.t with:

domain:domid -- interdomain transport
file://path  -- Unix domain socket

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Reconnect the ability to write to the magic connection trees

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Split ocamlfind into xenstore, xenstored; add userspace CLI

The generic protocol and client implementations are in the 'xenstore'
ocamlfind package. The server core logic (minus the frontend) is in
the 'xenstored' ocamlfind package.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Re-add the benchmark tool from ocaml-xenstore-clients

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Rename Xs_handle to Handle

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
The client shouldn't distinguish between 'unix' and 'xen'

We make the client always behave compatible with both, specifically
by creating only one connection and multiplexing everything over it.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Rename Xs_handle -> Handle
Remove the 'other' Lwt_unix-based transport (Xs_transport_lwt_unix_client)

We can now use Sockets for everything in userspace.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>