Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Linux guest user library and test application for ROS<->HRT interaction in an HVM
[palacios.git] / guest / linux / hvm-ros / v3_hvm_ros_user.h
diff --git a/guest/linux/hvm-ros/v3_hvm_ros_user.h b/guest/linux/hvm-ros/v3_hvm_ros_user.h
new file mode 100644 (file)
index 0000000..94858f4
--- /dev/null
@@ -0,0 +1,38 @@
+#ifndef __v3_hvm_ros_user
+#define __v3_hvm_ros_user
+
+/*
+  Copyright (c) 2015 Peter Dinda
+*/
+
+
+
+// setup and teardown
+// note that there is ONE HRT hence  no naming
+int v3_hvm_ros_user_init();
+int v3_hvm_ros_user_deinit();
+
+
+int v3_hvm_ros_merge_address_spaces();
+int v3_hvm_ros_unmerge_address_spaces();
+
+
+// Asynchronosus invocation of the HRT using an
+// opaque pointer (typically this is a pointer
+// to a structure containing a function pointer and
+// arguments.  The parallel flag indicates that
+// that it will be invoked simulatneously on all
+// cores.  
+int  v3_hvm_ros_invoke_hrt_async(void *p, int parallel);
+
+
+// synchronize with HRT via shared location
+// allow synchronous invokcations.  Note that
+// any parallelism is done internal to the HRT. 
+// Also the synchronous invocation always waits
+int  v3_hvm_ros_synchronize();   
+int  v3_hvm_ros_invoke_hrt_sync(void *p, int handle_ros_events);
+int  v3_hvm_ros_desynchronize();
+
+
+#endif