X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Finterfaces%2Fvmm_graphics_console.h;h=649b53292fee54faa3e27a5a02ac728df9619f54;hb=4aebb78797222e77d9493b44831d1b542fbeb83c;hp=7cdd427d3941f2905621b4a0553a9ca9692971d0;hpb=ba178554a5f6714e5ceb7b77df462ac72de90b0c;p=palacios.git diff --git a/palacios/include/interfaces/vmm_graphics_console.h b/palacios/include/interfaces/vmm_graphics_console.h index 7cdd427..649b532 100644 --- a/palacios/include/interfaces/vmm_graphics_console.h +++ b/palacios/include/interfaces/vmm_graphics_console.h @@ -47,6 +47,19 @@ void *v3_graphics_console_get_frame_buffer_data_rw(v3_graphics_console_t cons, s void v3_graphics_console_release_frame_buffer_data_rw(v3_graphics_console_t cons); // returns >0 if a redraw in response to this update would be useful now int v3_graphics_console_inform_update(v3_graphics_console_t cons); +// when render_request is invoked, Palacios will redraw immediately +int v3_graphics_console_register_render_request( + v3_graphics_console_t cons, + int (*render_request)(v3_graphics_console_t cons, + void *priv_data), + void *priv_data); +// when update_inquire is invoked, palacios will indicate if there +// is anything new with a non-zero return value +int v3_graphics_console_register_update_inquire( + v3_graphics_console_t cons, + int (*update_inquire)(v3_graphics_console_t cons, + void *priv_data), + void *priv_data); void v3_graphics_console_close(v3_graphics_console_t cons); @@ -87,7 +100,27 @@ struct v3_graphics_console_hooks { // callback to indicate that the FB is stale and that an update can occur // a positive return value indicates we should re-render now + // this callback is from Palacios to the implementation and is called + // when virtual GPU state changes to ask if the FB should be re-rendered now int (*changed)(v3_graphics_console_t cons); + + + // callback to allow Palacios to register a render request callback + // with the implementation. Using this callback, the implementation + // can specifically request that Palacios render immediately + int (*register_render_request)(v3_graphics_console_t cons, + int (*render_request)(v3_graphics_console_t cons, + void *priv_data), + void *priv_data); + + // callback to allow Palacios to register an update inquire callback + // with the implementation. Using this callback, the implementation + // can ask if Palacios has any new data + int (*register_update_inquire)(v3_graphics_console_t cons, + int (*update_inquire)(v3_graphics_console_t cons, + void *priv_data), + void *priv_data); + };