Switch the result type to a polymorphic variant

We want this not to clash with other identical definitions in
other libraries.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Rename Vhd -> F (for 'format'); add vhd_lwt.mli

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Complete renaming of 'Vhd' to 'F'

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Rename 'Vhd_result' to simpler 'Result'

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Start adding implementation of V1_LWT.BLOCK

This will allow mirage apps to read and write .vhd format data
transparently.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
BLOCK: implement read, write

Note the vhd API requires an extra data copy -- we should remove
this.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
BLOCK: verify the file exists in 'connect'

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Use Io_page for memory allocation

We don't need to functorise over the memory allocator: the standard
page-aligned allocator will do.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
The core library doesn't need lwt or lwt.unix

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Pack Vhd_lwt; rename module Vhd_lwt to module IO

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
write: only write the footer on close, not on every write

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

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
Merge pull request #20 from djs55/mirage-block

Expose the mirage BLOCK interface