package mirage-qubes

  1. Overview
  2. Docs

https://www.qubes-os.org/doc/gui/

see qubes-gui-common/include/qubes-gui-protocol.h

val const_QUBES_MAIN_WINDOW : int32
val sizeof_gui_protocol_version : int
val get_gui_protocol_version_version : Cstruct.t -> Cstruct.uint32
val set_gui_protocol_version_version : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_gui_protocol_version_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_gui_protocol_version : Cstruct.t -> unit
val sizeof_msg_header : int
val get_msg_header_ty : Cstruct.t -> Cstruct.uint32
val set_msg_header_ty : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_header_window : Cstruct.t -> Cstruct.uint32
val set_msg_header_window : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_header_untrusted_len : Cstruct.t -> Cstruct.uint32
val set_msg_header_untrusted_len : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_header_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_header : Cstruct.t -> unit
val sizeof_msg_map_info : int
val get_msg_map_info_override_redirect : Cstruct.t -> Cstruct.uint32
val set_msg_map_info_override_redirect : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_map_info_transient_for : Cstruct.t -> Cstruct.uint32
val set_msg_map_info_transient_for : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_map_info_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_map_info : Cstruct.t -> unit
val sizeof_msg_clipboard_req : int

Dom0 -> VM, dom0 wants us to reply with a MSG_CLIPBOARD_DATA

val sizeof_msg_clipboard_data : int
val get_msg_clipboard_data_window_id : Cstruct.t -> Cstruct.uint32
val set_msg_clipboard_data_window_id : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_clipboard_data_len : Cstruct.t -> Cstruct.uint32
val set_msg_clipboard_data_len : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_clipboard_data_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_clipboard_data : Cstruct.t -> unit
val sizeof_msg_create : int
val get_msg_create_x : Cstruct.t -> Cstruct.uint32
val set_msg_create_x : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_create_y : Cstruct.t -> Cstruct.uint32
val set_msg_create_y : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_create_width : Cstruct.t -> Cstruct.uint32
val set_msg_create_width : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_create_height : Cstruct.t -> Cstruct.uint32
val set_msg_create_height : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_create_parent : Cstruct.t -> Cstruct.uint32
val set_msg_create_parent : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_create_override_redirect : Cstruct.t -> Cstruct.uint32
val set_msg_create_override_redirect : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_create_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_create : Cstruct.t -> unit
type msg_keypress_t = {
  1. ty : int32;
  2. x : int32;
  3. y : int32;
  4. state : int32;
  5. keycode : int32;
}
val sizeof_msg_keypress : int
val get_msg_keypress_ty : Cstruct.t -> Cstruct.uint32
val set_msg_keypress_ty : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_keypress_x : Cstruct.t -> Cstruct.uint32
val set_msg_keypress_x : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_keypress_y : Cstruct.t -> Cstruct.uint32
val set_msg_keypress_y : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_keypress_state : Cstruct.t -> Cstruct.uint32
val set_msg_keypress_state : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_keypress_keycode : Cstruct.t -> Cstruct.uint32
val set_msg_keypress_keycode : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_keypress_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_keypress : Cstruct.t -> unit
type msg_button_t = {
  1. ty : int32;
  2. x : int32;
  3. y : int32;
  4. state : int32;
  5. button : int32;
}
val sizeof_msg_button : int
val get_msg_button_ty : Cstruct.t -> Cstruct.uint32
val set_msg_button_ty : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_button_x : Cstruct.t -> Cstruct.uint32
val set_msg_button_x : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_button_y : Cstruct.t -> Cstruct.uint32
val set_msg_button_y : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_button_state : Cstruct.t -> Cstruct.uint32
val set_msg_button_state : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_button_button : Cstruct.t -> Cstruct.uint32
val set_msg_button_button : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_button_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_button : Cstruct.t -> unit
val decode_msg_button : Cstruct.t -> msg_button_t option
type msg_motion_t = {
  1. x : int;
  2. y : int;
  3. state : int32;
  4. is_hint : int;
}
val sizeof_msg_motion : int
val get_msg_motion_x : Cstruct.t -> Cstruct.uint32
val set_msg_motion_x : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_motion_y : Cstruct.t -> Cstruct.uint32
val set_msg_motion_y : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_motion_state : Cstruct.t -> Cstruct.uint32
val set_msg_motion_state : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_motion_is_hint : Cstruct.t -> Cstruct.uint32
val set_msg_motion_is_hint : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_motion_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_motion : Cstruct.t -> unit
val decode_msg_motion : Cstruct.t -> msg_motion_t option
type msg_crossing_t = {
  1. ty : int32;
  2. x : int32;
  3. y : int32;
  4. state : int32;
  5. mode : int32;
  6. detail : int32;
  7. focus : int32;
}
val sizeof_msg_crossing : int
val get_msg_crossing_ty : Cstruct.t -> Cstruct.uint32
val set_msg_crossing_ty : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_crossing_x : Cstruct.t -> Cstruct.uint32
val set_msg_crossing_x : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_crossing_y : Cstruct.t -> Cstruct.uint32
val set_msg_crossing_y : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_crossing_state : Cstruct.t -> Cstruct.uint32
val set_msg_crossing_state : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_crossing_mode : Cstruct.t -> Cstruct.uint32
val set_msg_crossing_mode : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_crossing_detail : Cstruct.t -> Cstruct.uint32
val set_msg_crossing_detail : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_crossing_focus : Cstruct.t -> Cstruct.uint32
val set_msg_crossing_focus : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_crossing_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_crossing : Cstruct.t -> unit
val decode_msg_crossing : Cstruct.t -> msg_crossing_t option
val sizeof_msg_configure : int
val get_msg_configure_x : Cstruct.t -> Cstruct.uint32
val set_msg_configure_x : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_configure_y : Cstruct.t -> Cstruct.uint32
val set_msg_configure_y : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_configure_width : Cstruct.t -> Cstruct.uint32
val set_msg_configure_width : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_configure_height : Cstruct.t -> Cstruct.uint32
val set_msg_configure_height : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_configure_override_redirect : Cstruct.t -> Cstruct.uint32
val set_msg_configure_override_redirect : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_configure_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_configure : Cstruct.t -> unit
type msg_configure_t = {
  1. x : int32;
  2. y : int32;
  3. width : int32;
  4. height : int32;
  5. override_redirect : int32;
}
val decode_msg_configure : Cstruct.t -> msg_configure_t option
val sizeof_msg_shmimage : int
val get_msg_shmimage_x : Cstruct.t -> Cstruct.uint32
val set_msg_shmimage_x : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_shmimage_y : Cstruct.t -> Cstruct.uint32
val set_msg_shmimage_y : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_shmimage_width : Cstruct.t -> Cstruct.uint32
val set_msg_shmimage_width : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_shmimage_height : Cstruct.t -> Cstruct.uint32
val set_msg_shmimage_height : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_shmimage_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_shmimage : Cstruct.t -> unit
type msg_focus_t = {
  1. mode : Cstruct.uint32;
  2. detail : Cstruct.uint32;
}
val sizeof_msg_focus : int
val get_msg_focus_ty : Cstruct.t -> Cstruct.uint32
val set_msg_focus_ty : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_focus_mode : Cstruct.t -> Cstruct.uint32
val set_msg_focus_mode : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_focus_detail : Cstruct.t -> Cstruct.uint32
val set_msg_focus_detail : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_focus_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_focus : Cstruct.t -> unit
val sizeof_msg_execute : int
val get_msg_execute_cmd : Cstruct.t -> Cstruct.t
val copy_msg_execute_cmd : Cstruct.t -> string
val set_msg_execute_cmd : string -> int -> Cstruct.t -> unit
val blit_msg_execute_cmd : Cstruct.t -> int -> Cstruct.t -> unit
val hexdump_msg_execute_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_execute : Cstruct.t -> unit
val sizeof_xconf : int
val get_xconf_w : Cstruct.t -> Cstruct.uint32
val set_xconf_w : Cstruct.t -> Cstruct.uint32 -> unit
val get_xconf_h : Cstruct.t -> Cstruct.uint32
val set_xconf_h : Cstruct.t -> Cstruct.uint32 -> unit
val get_xconf_depth : Cstruct.t -> Cstruct.uint32
val set_xconf_depth : Cstruct.t -> Cstruct.uint32 -> unit
val get_xconf_mem : Cstruct.t -> Cstruct.uint32
val set_xconf_mem : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_xconf_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_xconf : Cstruct.t -> unit
val sizeof_msg_wmname : int
val get_msg_wmname_data : Cstruct.t -> Cstruct.t
val copy_msg_wmname_data : Cstruct.t -> string
val set_msg_wmname_data : string -> int -> Cstruct.t -> unit
val blit_msg_wmname_data : Cstruct.t -> int -> Cstruct.t -> unit
val hexdump_msg_wmname_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_wmname : Cstruct.t -> unit
val sizeof_msg_keymap_notify : int
val get_msg_keymap_notify_keys : Cstruct.t -> Cstruct.t
val copy_msg_keymap_notify_keys : Cstruct.t -> string
val set_msg_keymap_notify_keys : string -> int -> Cstruct.t -> unit
val blit_msg_keymap_notify_keys : Cstruct.t -> int -> Cstruct.t -> unit
val hexdump_msg_keymap_notify_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_keymap_notify : Cstruct.t -> unit
val sizeof_msg_window_hints : int
val get_msg_window_hints_flags : Cstruct.t -> Cstruct.uint32
val set_msg_window_hints_flags : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_window_hints_min_width : Cstruct.t -> Cstruct.uint32
val set_msg_window_hints_min_width : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_window_hints_min_height : Cstruct.t -> Cstruct.uint32
val set_msg_window_hints_min_height : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_window_hints_max_width : Cstruct.t -> Cstruct.uint32
val set_msg_window_hints_max_width : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_window_hints_max_height : Cstruct.t -> Cstruct.uint32
val set_msg_window_hints_max_height : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_window_hints_width_inc : Cstruct.t -> Cstruct.uint32
val set_msg_window_hints_width_inc : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_window_hints_height_inc : Cstruct.t -> Cstruct.uint32
val set_msg_window_hints_height_inc : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_window_hints_base_width : Cstruct.t -> Cstruct.uint32
val set_msg_window_hints_base_width : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_window_hints_base_height : Cstruct.t -> Cstruct.uint32
val set_msg_window_hints_base_height : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_window_hints_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_window_hints : Cstruct.t -> unit
val sizeof_msg_window_flags : int
val get_msg_window_flags_flags_set : Cstruct.t -> Cstruct.uint32
val set_msg_window_flags_flags_set : Cstruct.t -> Cstruct.uint32 -> unit
val get_msg_window_flags_flags_unset : Cstruct.t -> Cstruct.uint32
val set_msg_window_flags_flags_unset : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_msg_window_flags_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_window_flags : Cstruct.t -> unit
val sizeof_shm_cmd : int
val get_shm_cmd_shmid : Cstruct.t -> Cstruct.uint32
val set_shm_cmd_shmid : Cstruct.t -> Cstruct.uint32 -> unit
val get_shm_cmd_width : Cstruct.t -> Cstruct.uint32
val set_shm_cmd_width : Cstruct.t -> Cstruct.uint32 -> unit
val get_shm_cmd_height : Cstruct.t -> Cstruct.uint32
val set_shm_cmd_height : Cstruct.t -> Cstruct.uint32 -> unit
val get_shm_cmd_bpp : Cstruct.t -> Cstruct.uint32
val set_shm_cmd_bpp : Cstruct.t -> Cstruct.uint32 -> unit
val get_shm_cmd_off : Cstruct.t -> Cstruct.uint32
val set_shm_cmd_off : Cstruct.t -> Cstruct.uint32 -> unit
val get_shm_cmd_num_mfn : Cstruct.t -> Cstruct.uint32
val set_shm_cmd_num_mfn : Cstruct.t -> Cstruct.uint32 -> unit
val get_shm_cmd_domid : Cstruct.t -> Cstruct.uint32
val set_shm_cmd_domid : Cstruct.t -> Cstruct.uint32 -> unit
val hexdump_shm_cmd_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_shm_cmd : Cstruct.t -> unit
val sizeof_msg_wmclass : int
val get_msg_wmclass_res_class : Cstruct.t -> Cstruct.t
val copy_msg_wmclass_res_class : Cstruct.t -> string
val set_msg_wmclass_res_class : string -> int -> Cstruct.t -> unit
val blit_msg_wmclass_res_class : Cstruct.t -> int -> Cstruct.t -> unit
val get_msg_wmclass_res_name : Cstruct.t -> Cstruct.t
val copy_msg_wmclass_res_name : Cstruct.t -> string
val set_msg_wmclass_res_name : string -> int -> Cstruct.t -> unit
val blit_msg_wmclass_res_name : Cstruct.t -> int -> Cstruct.t -> unit
val hexdump_msg_wmclass_to_buffer : Stdlib.Buffer.t -> Cstruct.t -> unit
val hexdump_msg_wmclass : Cstruct.t -> unit
type msg_type =
  1. | MSG_KEYPRESS
  2. | MSG_BUTTON
  3. | MSG_MOTION
  4. | MSG_CROSSING
  5. | MSG_FOCUS
  6. | MSG_CREATE
  7. | MSG_DESTROY
  8. | MSG_MAP
  9. | MSG_UNMAP
  10. | MSG_CONFIGURE
  11. | MSG_MFNDUMP
  12. | MSG_SHMIMAGE
  13. | MSG_CLOSE
  14. | MSG_EXECUTE
  15. | MSG_CLIPBOARD_REQ
  16. | MSG_CLIPBOARD_DATA
  17. | MSG_WMNAME
  18. | MSG_KEYMAP_NOTIFY
  19. | MSG_DOCK
  20. | MSG_WINDOW_HINTS
  21. | MSG_WINDOW_FLAGS
  22. | MSG_WMCLASS
val int_to_msg_type : int32 -> msg_type option
val msg_type_to_int : msg_type -> int32
val compare_msg_type : msg_type -> msg_type -> int
val msg_type_to_string : msg_type -> string
val string_to_msg_type : string -> msg_type option
val msg_type_size : msg_type -> int option

"MFN: machine frame number - actual hw addresses" http://ccrc.web.nthu.edu.tw/ezfiles/16/1016/img/598/v14n_xen.pdf

val make_with_header : window:Cstruct.uint32 -> ty:msg_type -> Cstruct.t -> Cstruct.t
val make_msg_mfndump : window:Cstruct.uint32 -> width:Cstruct.uint32 -> height:Cstruct.uint32 -> mfns:Cstruct.uint32 list -> Cstruct.t
val make_msg_shmimage : window:Cstruct.uint32 -> x:Cstruct.uint32 -> y:Cstruct.uint32 -> width:Cstruct.uint32 -> height:Cstruct.uint32 -> Cstruct.t
val make_msg_create : window:Cstruct.uint32 -> width:Cstruct.uint32 -> height:Cstruct.uint32 -> x:Cstruct.uint32 -> y:Cstruct.uint32 -> override_redirect:Cstruct.uint32 -> parent:Cstruct.uint32 -> Cstruct.t
val make_msg_map_info : window:Cstruct.uint32 -> override_redirect:Cstruct.uint32 -> transient_for:Cstruct.uint32 -> Cstruct.t
val make_msg_wmname : window:Cstruct.uint32 -> wmname:string -> Cstruct.t
val make_msg_window_hints : window:Cstruct.uint32 -> width:Cstruct.uint32 -> height:Cstruct.uint32 -> Cstruct.t
val make_msg_configure : window:Cstruct.uint32 -> x:Cstruct.uint32 -> y:Cstruct.uint32 -> width:Cstruct.uint32 -> height:Cstruct.uint32 -> Cstruct.t
module Framing : sig ... end