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