block: clarify the buffer-handling constraints for read, write

Each of the page_aligned_buffers must be a whole number of sectors in
size. There's no limit to the number of sectors per buffer or the number
of buffers per request.

I considered adding a notion of 'async' vs 'sync', but we already allow
issuing async operations (instances of 'a io), and synchronising with
them ('bind'). The plan is to start with O_DIRECT-like I/O at the bottom
and then consider adding buffering later. It might be better to always
perform buffering at the application-level, rather than having a
one-size-fits-all policy in the block 'layer'.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
block: add a 'disconnect' operation and a Disconnected error

When we 'disconnect' the underlying implementation is able to free
resources associated with the device. The 'disconnect' function is
guaranteed to succeed: it never fails (for example) if a remote server
cannot be reached.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
BLOCK: further clarify the current error behaviour of write

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

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

Improve BLOCK_DEVICE
Add a DEVICE type which includes common functionality across the block, net and console types
Add (very) experimental device trees and a JOB interface
add more comments to the DEVICE type
META: do not build a cma, as just the cmi is enough here
only build and install the cmi
- Rename v1.ml to v1.mli
- Rename BLOCK_DEVICE to BLOCK.CLIENT (closes #1)
Add Travis files
whitespace
Merge pull request #4 from avsm/abstract-devices

Add DEVICES and rename BLOCK_DEVICE to BLOCK.CLIENT
Block: move the type error back into the module type rather than lifting it out
Merge pull request #5 from avsm/abstract-devices

Block: move the type error back into the module type rather than lifting...