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.


HRT image replacement from ROS application
[palacios.git] / guest / linux / hvm-ros / v3_hvm_ros_user.h
1 #ifndef __v3_hvm_ros_user
2 #define __v3_hvm_ros_user
3
4 /*
5   Copyright (c) 2015 Peter Dinda
6 */
7
8
9
10 // setup and teardown
11 // note that there is ONE HRT hence  no naming
12 int v3_hvm_ros_user_init();
13 int v3_hvm_ros_user_deinit();
14
15
16 // Replace the existing HRT with a new one
17 //  - this does not boot the new HRT
18 //  - the intial image is the one given in the .pal config
19 int v3_hvm_ros_install_hrt_image(void *image, uint64_t size);
20
21 typedef enum {RESET_HRT, RESET_ROS, RESET_BOTH} reset_type;
22
23 int v3_hvm_ros_reset(reset_type what);
24
25 int v3_hvm_ros_merge_address_spaces();
26 int v3_hvm_ros_unmerge_address_spaces();
27
28
29 // Asynchronosus invocation of the HRT using an
30 // opaque pointer (typically this is a pointer
31 // to a structure containing a function pointer and
32 // arguments.  The parallel flag indicates that
33 // that it will be invoked simulatneously on all
34 // cores.  
35 int  v3_hvm_ros_invoke_hrt_async(void *p, int parallel);
36
37
38 // synchronize with HRT via shared location
39 // allow synchronous invokcations.  Note that
40 // any parallelism is done internal to the HRT. 
41 // Also the synchronous invocation always waits
42 int  v3_hvm_ros_synchronize();   
43 int  v3_hvm_ros_invoke_hrt_sync(void *p, int handle_ros_events);
44 int  v3_hvm_ros_desynchronize();
45
46
47 #endif