X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=guest%2Flinux%2Fhvm-ros%2Fv3_hvm_ros_user.h;fp=guest%2Flinux%2Fhvm-ros%2Fv3_hvm_ros_user.h;h=de3b2e1f1b8cb5ca9b712367db34d449b8b2af79;hp=96c8262b3948d9ab33d7861cdbb78c4a33ae9976;hb=4e43946f01f687361197dc9571b7df02ae20de30;hpb=a8686374c6aa74d805b32e7675f42f7ab9a0b348 diff --git a/guest/linux/hvm-ros/v3_hvm_ros_user.h b/guest/linux/hvm-ros/v3_hvm_ros_user.h index 96c8262..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,13 @@ 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 @@ -43,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