--- /dev/null
+This is a library that encapsulates interaction between
+a ROS Linux application and an HRT that are both running
+in the same HVM. A test application is included.
+
+ROS/HRT interaction is done via Palacios's HVM component
+and there is a detailed technical description in
+palacios/include/palacios/vmm_hvm.h.
+
+When the HVM is started, both the ROS (Linux) and the HRT
+(for example, Nautilus) are booted simultaneously.
+
+A Linux application running in the ROS has control over the
+HRT and the ROS.. Specifically, it can:
+
+- reboot the HRT
+- reboot the ROS
+- reboot the whole HVM
+
+- merge/unmerge its address space with the HRT's address
+ space (provided the HRT can do so (e.g. Nautilus))
+
+- asynchronously invoke functions with the HRT
+ functions can be invoked on the HRT's first core
+ or simultaneously on all cores of the HRT
+
+- synchronize with the HRT to decide on a common memory
+ location to use for future, synchronous communication
+ via that memory. And teardown when this is done.
+
+The HRT can in turn call back to the ROS application
+for the following reasons, which are really only sensical
+for a merged address space. These callbacks currently include:
+
+- system call forwarding
+
+- page fault forwarding (for the ROS user portion of
+ the address space)
+
+Because on the ROS side, we do everything within user
+space, the ROS currently needs to poll. It polls both
+to determine completion of a request, and get event
+callbacks from the HRT.
+
+