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 // 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);
21 typedef enum {RESET_HRT, RESET_ROS, RESET_BOTH} reset_type;
23 int v3_hvm_ros_reset(reset_type what);
25 int v3_hvm_ros_merge_address_spaces();
26 int v3_hvm_ros_unmerge_address_spaces();
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
35 int v3_hvm_ros_invoke_hrt_async(void *p, int parallel);
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();