1 #ifndef __v3_hvm_ros_user
2 #define __v3_hvm_ros_user
5 Copyright (c) 2015 Peter Dinda
11 // note that there is ONE HRT hence no naming
12 int v3_hvm_ros_user_init();
13 int v3_hvm_ros_user_deinit();
16 typedef enum {RESET_HRT, RESET_ROS, RESET_BOTH} reset_type;
18 int v3_hvm_ros_reset(reset_type what);
20 int v3_hvm_ros_merge_address_spaces();
21 int v3_hvm_ros_unmerge_address_spaces();
24 // Asynchronosus invocation of the HRT using an
25 // opaque pointer (typically this is a pointer
26 // to a structure containing a function pointer and
27 // arguments. The parallel flag indicates that
28 // that it will be invoked simulatneously on all
30 int v3_hvm_ros_invoke_hrt_async(void *p, int parallel);
33 // synchronize with HRT via shared location
34 // allow synchronous invokcations. Note that
35 // any parallelism is done internal to the HRT.
36 // Also the synchronous invocation always waits
37 int v3_hvm_ros_synchronize();
38 int v3_hvm_ros_invoke_hrt_sync(void *p, int handle_ros_events);
39 int v3_hvm_ros_desynchronize();