Update the shared memory ring unsafe_{read,write} to take strings

This avoids creating a temporary bigarray (which could be slow) but
we need the new fast blit functions in Cstruct to make this fast.

On this laptop, the ocaml code manages ~988 MiB/sec vs ~94 MiB/sec
for the C.
The lwt push request functions take a (unit -> unit) callback to allow a notification to be sent to the other end.

A user may decide to pass in (fun () -> ()) and batch notifications, or
send one notification per request.
Fix unit tests after interface change where a notifyfn is passed in
Add git://github.com/jonludlam/mirage-platform suspend-resume4 ring changes
Spawn the "freefn" in the background to wait for the request to be complete.
Add CHANGES file for 0.1.0 initial version
Place ring diagnostics into a (string * string) list rather than a big string

This will allow the diagnostics to fit naturally into a xenstore
directory.
Fix the build by removing a broken printf
Add Lwt_ring.{write,push} where 'write' writes to ring slots without updating the request pointers and 'push' updates the request pointers

This allows us to support protocols like that between netback/netfront
where a network packet consisting of multiple fragments must only be
exposed to the backend as a complete list.
Correct typo in Makefile
update CHANGES for 0.2.0
bump to version 0.2.0
Merge pull request #1 from mirage/master

release 0.2.0
Add support for memory barriers on ARM; use the same semantics as the C xenstore

To support ARM we need to have an ARM #ifdef in barrier.h

To match the C sementics we need to use the xen_mb () barrier twice
in xenstore read/write rather than using a xen_wmb ().
Merge branch 'master' of github.com:djs55/shared-memory-ring
update CHANGES for 0.3.0
bump version to 0.3.0
Fix typo in unit test (!)
When the console/xenstore ring pointers overflow a 32-bit signed int, adjust the modulo arithmetic to match
In the xenstore and console rings, if we hit the highest byte, repeat the read/write call. This matches the behaviour of the old C code (although it shouldn't be required)