Add README.md
Import from xen-api c/s a360d445d13df73ed1685f0f7cbf5de44d049e49

Unfortunately there are some bad commits in the history of xen-api
so it's easier to perform a fresh import of the files.

The new structure is:

lib/        -- stuff which is common to all xenopsd instances
simulator/  -- the simulation backend (for testing)
xen/        -- the xen-specific backend

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Add xn cli from xen-api 63d41a86fbbda3a384f41f97567222d4e0afd013

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Add a Makefile which triggers an ocamlbuild via OASIS

Eventually we will auto-detect the libraries we can build but for now
we will only attempt to build the simulator and the tests.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Add component test from xen-api 63d41a86fbbda3a384f41f97567222d4e0afd013

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
device_number.ml is generic: move to lib/; update _tags to add rpc.syntax

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Remove stdext dependency from device_number.ml (String.implode, explode)

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
xenops_client.ml: now with less Fun (as in 'open Fun')

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Xenops_client depends on Cohttp and Uri rather than xen-api-libs functions

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Update _oasis with new dependencies
Make sure 'srcstr' and 'deststr' are unified as strings and not left generic

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Move xenops_utils into the library, since it's needed by the plugin infrastructure

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

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Inline Unixext.{int_of_file_descr,file_descr_of_int}

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

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

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

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Switch to using buffered input/output channels and streaming json parsing/printing

This removes a Unixext dependency and avoids building up large intermediate strings.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Add dependency on posix threads

It's inevitable that we'll end up using a concurrency monad such as
lwt or async, but not today.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Inline Mutex.execute, Opt.map

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