X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=guest%2Flinux%2Fhvm-ros%2Fv3_hvm_ros_user.h;h=de3b2e1f1b8cb5ca9b712367db34d449b8b2af79;hb=4e43946f01f687361197dc9571b7df02ae20de30;hp=21011082b18f74de0258854eab7bcddac37b4273;hpb=0205b0a0d6ad39a783330299f8afca735cf9a459;p=palacios.git diff --git a/guest/linux/hvm-ros/v3_hvm_ros_user.h b/guest/linux/hvm-ros/v3_hvm_ros_user.h index 2101108..de3b2e1 100644 --- a/guest/linux/hvm-ros/v3_hvm_ros_user.h +++ b/guest/linux/hvm-ros/v3_hvm_ros_user.h @@ -12,6 +12,18 @@ int v3_hvm_ros_user_init(); int v3_hvm_ros_user_deinit(); +// Establish function to be invoked by the VMM +// to signal activity (basically an interrupt handler) +// The handler can use the GPRs, but must save/restore +// any other registers it needs itself. If it goes +// out of its stack, it's out of luck +int v3_hvm_ros_register_signal(void (*handler)(uint64_t), void *stack, uint64_t stack_size); +int v3_hvm_ros_unregister_signal(); + +// Replace the existing HRT with a new one +// - this does not boot the new HRT +// - the intial image is the one given in the .pal config +int v3_hvm_ros_install_hrt_image(void *image, uint64_t size); typedef enum {RESET_HRT, RESET_ROS, RESET_BOTH} reset_type; @@ -38,5 +50,8 @@ int v3_hvm_ros_synchronize(); int v3_hvm_ros_invoke_hrt_sync(void *p, int handle_ros_events); int v3_hvm_ros_desynchronize(); +// Signal the HRT from the ROS +// The ROS can call this too, but it shouldn't be necesary +int v3_hvm_hrt_signal_ros(uint64_t code); #endif