mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 13:00:15 +02:00
Thunks: Adds libxcb
This commit is contained in:
1 parent
29debcda3d
commit
798c6772b7
4 files changed
+2671
No files matched your search
@@ -0,0 +1,809 @@
|
||||
#!/usr/bin/python3
|
||||
from ThunkHelpers import *
|
||||
|
||||
lib("libxcb")
|
||||
|
||||
# There is a paradigm inside of XCB of functions that return a pointer, a length, and an end
|
||||
# The application is seemingly reading directly from some internal data structures
|
||||
# This means the application doesn't have ownership of the pointers and shouldn't free them
|
||||
# These are marked with ::Iterator::
|
||||
|
||||
# FEX
|
||||
fn("void FEX_xcb_init_extension(xcb_connection_t *, xcb_extension_t *)"); no_unpack()
|
||||
fn("size_t FEX_usable_size(void*)"); no_unpack()
|
||||
fn("void FEX_free_on_host(void*)"); no_unpack()
|
||||
fn("void FEX_GiveEvents(CrossArchEvent *, CrossArchEvent *, CBWork*)"); no_unpack()
|
||||
|
||||
# xcb.h
|
||||
fn("int xcb_flush(xcb_connection_t *)")
|
||||
fn("uint32_t xcb_get_maximum_request_length(xcb_connection_t *)")
|
||||
fn("void xcb_prefetch_maximum_request_length(xcb_connection_t *)")
|
||||
fn("xcb_generic_event_t * xcb_wait_for_event(xcb_connection_t *)"); no_pack()
|
||||
fn("xcb_generic_event_t * xcb_poll_for_event(xcb_connection_t *)"); no_pack()
|
||||
fn("xcb_generic_event_t * xcb_poll_for_queued_event(xcb_connection_t *)"); no_pack()
|
||||
fn("xcb_generic_event_t * xcb_poll_for_special_event(xcb_connection_t *, xcb_special_event_t *)"); no_pack()
|
||||
fn("xcb_generic_event_t * xcb_wait_for_special_event(xcb_connection_t *, xcb_special_event_t *)"); no_pack()
|
||||
|
||||
# Looks like unregister will free the memory of the result
|
||||
fn("xcb_special_event_t * xcb_register_for_special_xge(xcb_connection_t *, xcb_extension_t *, uint32_t, uint32_t *)")
|
||||
fn("void xcb_unregister_for_special_event(xcb_connection_t *, xcb_special_event_t *)")
|
||||
|
||||
fn("xcb_generic_error_t * xcb_request_check(xcb_connection_t *, xcb_void_cookie_t)"); no_pack()
|
||||
fn("void xcb_discard_reply(xcb_connection_t *, unsigned int)")
|
||||
fn("void xcb_discard_reply64(xcb_connection_t *, uint64_t)")
|
||||
fn("const struct xcb_query_extension_reply_t * xcb_get_extension_data(xcb_connection_t *, xcb_extension_t *)")
|
||||
fn("void xcb_prefetch_extension_data(xcb_connection_t *, xcb_extension_t *)")
|
||||
|
||||
# Documentation says that return must NOT be freed
|
||||
fn("const struct xcb_setup_t * xcb_get_setup(xcb_connection_t *)")
|
||||
fn("int xcb_get_file_descriptor(xcb_connection_t *)")
|
||||
fn("int xcb_connection_has_error(xcb_connection_t *)")
|
||||
# xcb_disconnect frees result
|
||||
fn("xcb_connection_t * xcb_connect_to_fd(int, xcb_auth_info_t *)")
|
||||
|
||||
fn("void xcb_disconnect(xcb_connection_t *)"); no_pack()
|
||||
|
||||
# Second argument is owned by application on return
|
||||
fn("int xcb_parse_display(const char *, char **, int *, int *)"); no_pack()
|
||||
|
||||
# xcb_disconnect frees result
|
||||
fn("xcb_connection_t * xcb_connect(const char *, int *)"); no_pack()
|
||||
fn("xcb_connection_t * xcb_connect_to_display_with_auth_info(const char *, xcb_auth_info_t *, int *)"); no_pack()
|
||||
fn("uint32_t xcb_generate_id(xcb_connection_t *)")
|
||||
fn("uint64_t xcb_total_read(xcb_connection_t *)")
|
||||
fn("uint64_t xcb_total_written(xcb_connection_t *)")
|
||||
|
||||
# xcbext.h
|
||||
fn("unsigned int xcb_send_request(xcb_connection_t *, int, struct iovec *, const xcb_protocol_request_t *)")
|
||||
fn("unsigned int xcb_send_request_with_fds(xcb_connection_t *, int, struct iovec *, const xcb_protocol_request_t *, unsigned int, int *)")
|
||||
fn("uint64_t xcb_send_request64(xcb_connection_t *, int, struct iovec *, const xcb_protocol_request_t *)")
|
||||
fn("uint64_t xcb_send_request_with_fds64(xcb_connection_t *, int, struct iovec *, const xcb_protocol_request_t *, unsigned int, int *)")
|
||||
fn("void xcb_send_fd(xcb_connection_t *, int)")
|
||||
fn("int xcb_take_socket(xcb_connection_t *, CBType, void *, int, uint64_t *)"); no_thunk(); no_pack(); no_unpack(); no_tab_unpack()
|
||||
#fn("int XIfEvent(Display*, XEvent*, XIfEventCBFN*, XPointer)"); no_thunk(); no_pack(); no_unpack(); no_tab_unpack()
|
||||
#fn("int XIfEvent_internal(Display*, XEvent*, XIfEventCBFN*, XPointer)"); no_ldr();
|
||||
#cb("int XIfEventCB(Display*, XEvent*, XPointer)")
|
||||
|
||||
fn("int xcb_take_socket_internal(xcb_connection_t *, CBType, void *, int, uint64_t *)"); no_ldr()
|
||||
cb("void xcb_take_socket_cb(void*)"); no_cb_unpack()
|
||||
|
||||
fn("int xcb_writev(xcb_connection_t *, struct iovec *, int, uint64_t)")
|
||||
fn("void * xcb_wait_for_reply(xcb_connection_t *, unsigned int, xcb_generic_error_t **)"); no_pack()
|
||||
fn("void * xcb_wait_for_reply64(xcb_connection_t *, uint64_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_poll_for_reply(xcb_connection_t *, unsigned int, void **, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_poll_for_reply64(xcb_connection_t *, uint64_t, void **, xcb_generic_error_t **)"); no_pack()
|
||||
|
||||
# XXX: Who owns the return?
|
||||
fn("int * xcb_get_reply_fds(xcb_connection_t *, void *, size_t)")
|
||||
fn("int xcb_popcount(uint32_t)")
|
||||
fn("int xcb_sumof(uint8_t *, int)")
|
||||
|
||||
# xproto.h
|
||||
fn("void xcb_char2b_next(xcb_char2b_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_char2b_end(xcb_char2b_iterator_t)")
|
||||
fn("void xcb_window_next(xcb_window_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_window_end(xcb_window_iterator_t)")
|
||||
fn("void xcb_pixmap_next(xcb_pixmap_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_pixmap_end(xcb_pixmap_iterator_t)")
|
||||
fn("void xcb_cursor_next(xcb_cursor_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_cursor_end(xcb_cursor_iterator_t)")
|
||||
fn("void xcb_font_next(xcb_font_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_font_end(xcb_font_iterator_t)")
|
||||
fn("void xcb_gcontext_next(xcb_gcontext_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_gcontext_end(xcb_gcontext_iterator_t)")
|
||||
fn("void xcb_colormap_next(xcb_colormap_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_colormap_end(xcb_colormap_iterator_t)")
|
||||
fn("void xcb_atom_next(xcb_atom_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_atom_end(xcb_atom_iterator_t)")
|
||||
fn("void xcb_drawable_next(xcb_drawable_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_drawable_end(xcb_drawable_iterator_t)")
|
||||
fn("void xcb_fontable_next(xcb_fontable_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_fontable_end(xcb_fontable_iterator_t)")
|
||||
fn("void xcb_bool32_next(xcb_bool32_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_bool32_end(xcb_bool32_iterator_t)")
|
||||
fn("void xcb_visualid_next(xcb_visualid_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_visualid_end(xcb_visualid_iterator_t)")
|
||||
fn("void xcb_timestamp_next(xcb_timestamp_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_timestamp_end(xcb_timestamp_iterator_t)")
|
||||
fn("void xcb_keysym_next(xcb_keysym_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_keysym_end(xcb_keysym_iterator_t)")
|
||||
fn("void xcb_keycode_next(xcb_keycode_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_keycode_end(xcb_keycode_iterator_t)")
|
||||
fn("void xcb_keycode32_next(xcb_keycode32_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_keycode32_end(xcb_keycode32_iterator_t)")
|
||||
fn("void xcb_button_next(xcb_button_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_button_end(xcb_button_iterator_t)")
|
||||
fn("void xcb_point_next(xcb_point_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_point_end(xcb_point_iterator_t)")
|
||||
fn("void xcb_rectangle_next(xcb_rectangle_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_rectangle_end(xcb_rectangle_iterator_t)")
|
||||
fn("void xcb_arc_next(xcb_arc_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_arc_end(xcb_arc_iterator_t)")
|
||||
fn("void xcb_format_next(xcb_format_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_format_end(xcb_format_iterator_t)")
|
||||
fn("void xcb_visualtype_next(xcb_visualtype_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_visualtype_end(xcb_visualtype_iterator_t)")
|
||||
fn("int xcb_depth_sizeof(const void *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_visualtype_t * xcb_depth_visuals(const xcb_depth_t *)")
|
||||
fn("int xcb_depth_visuals_length(const xcb_depth_t *)")
|
||||
fn("xcb_visualtype_iterator_t xcb_depth_visuals_iterator(const xcb_depth_t *)")
|
||||
|
||||
fn("void xcb_depth_next(xcb_depth_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_depth_end(xcb_depth_iterator_t)")
|
||||
fn("int xcb_screen_sizeof(const void *)")
|
||||
fn("int xcb_screen_allowed_depths_length(const xcb_screen_t *)")
|
||||
fn("xcb_depth_iterator_t xcb_screen_allowed_depths_iterator(const xcb_screen_t *)")
|
||||
fn("void xcb_screen_next(xcb_screen_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_screen_end(xcb_screen_iterator_t)")
|
||||
fn("int xcb_setup_request_sizeof(const void *)")
|
||||
|
||||
# ::Iterator::
|
||||
fn("char * xcb_setup_request_authorization_protocol_name(const xcb_setup_request_t *)")
|
||||
fn("int xcb_setup_request_authorization_protocol_name_length(const xcb_setup_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_setup_request_authorization_protocol_name_end(const xcb_setup_request_t *)")
|
||||
|
||||
# ::Iterator::
|
||||
fn("char * xcb_setup_request_authorization_protocol_data(const xcb_setup_request_t *)")
|
||||
fn("int xcb_setup_request_authorization_protocol_data_length(const xcb_setup_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_setup_request_authorization_protocol_data_end(const xcb_setup_request_t *)")
|
||||
|
||||
fn("void xcb_setup_request_next(xcb_setup_request_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_setup_request_end(xcb_setup_request_iterator_t)")
|
||||
fn("int xcb_setup_failed_sizeof(const void *)")
|
||||
# XXX: Who owns result?
|
||||
fn("char * xcb_setup_failed_reason(const xcb_setup_failed_t *)")
|
||||
|
||||
fn("int xcb_setup_failed_reason_length(const xcb_setup_failed_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_setup_failed_reason_end(const xcb_setup_failed_t *)")
|
||||
fn("void xcb_setup_failed_next(xcb_setup_failed_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_setup_failed_end(xcb_setup_failed_iterator_t)")
|
||||
fn("int xcb_setup_authenticate_sizeof(const void *)")
|
||||
# ::Iterator::
|
||||
fn("char * xcb_setup_authenticate_reason(const xcb_setup_authenticate_t *)")
|
||||
fn("int xcb_setup_authenticate_reason_length(const xcb_setup_authenticate_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_setup_authenticate_reason_end(const xcb_setup_authenticate_t *)")
|
||||
|
||||
fn("void xcb_setup_authenticate_next(xcb_setup_authenticate_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_setup_authenticate_end(xcb_setup_authenticate_iterator_t)")
|
||||
fn("int xcb_setup_sizeof(const void *)")
|
||||
# ::Iterator::
|
||||
fn("char * xcb_setup_vendor(const xcb_setup_t *)")
|
||||
fn("int xcb_setup_vendor_length(const xcb_setup_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_setup_vendor_end(const xcb_setup_t *)")
|
||||
|
||||
# ::Iterator::
|
||||
fn("xcb_format_t * xcb_setup_pixmap_formats(const xcb_setup_t *)")
|
||||
fn("int xcb_setup_pixmap_formats_length(const xcb_setup_t *)")
|
||||
fn("xcb_format_iterator_t xcb_setup_pixmap_formats_iterator(const xcb_setup_t *)")
|
||||
|
||||
fn("int xcb_setup_roots_length(const xcb_setup_t *)")
|
||||
fn("xcb_screen_iterator_t xcb_setup_roots_iterator(const xcb_setup_t *)")
|
||||
fn("void xcb_setup_next(xcb_setup_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_setup_end(xcb_setup_iterator_t)")
|
||||
fn("void xcb_client_message_data_next(xcb_client_message_data_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_client_message_data_end(xcb_client_message_data_iterator_t)")
|
||||
fn("int xcb_create_window_value_list_serialize(void **, uint32_t, const xcb_create_window_value_list_t *)")
|
||||
fn("int xcb_create_window_value_list_unpack(const void *, uint32_t, xcb_create_window_value_list_t *)")
|
||||
fn("int xcb_create_window_value_list_sizeof(const void *, uint32_t)")
|
||||
fn("int xcb_create_window_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_create_window_checked(xcb_connection_t *, uint8_t, xcb_window_t, xcb_window_t, int16_t, int16_t, uint16_t, uint16_t, uint16_t, uint16_t, xcb_visualid_t, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_create_window(xcb_connection_t *, uint8_t, xcb_window_t, xcb_window_t, int16_t, int16_t, uint16_t, uint16_t, uint16_t, uint16_t, xcb_visualid_t, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_create_window_aux_checked(xcb_connection_t *, uint8_t, xcb_window_t, xcb_window_t, int16_t, int16_t, uint16_t, uint16_t, uint16_t, uint16_t, xcb_visualid_t, uint32_t, const xcb_create_window_value_list_t *)")
|
||||
fn("xcb_void_cookie_t xcb_create_window_aux(xcb_connection_t *, uint8_t, xcb_window_t, xcb_window_t, int16_t, int16_t, uint16_t, uint16_t, uint16_t, uint16_t, xcb_visualid_t, uint32_t, const xcb_create_window_value_list_t *)")
|
||||
# XXX: Who owns result?
|
||||
fn("void * xcb_create_window_value_list(const xcb_create_window_request_t *)")
|
||||
fn("int xcb_change_window_attributes_value_list_serialize(void **, uint32_t, const xcb_change_window_attributes_value_list_t *)")
|
||||
fn("int xcb_change_window_attributes_value_list_unpack(const void *, uint32_t, xcb_change_window_attributes_value_list_t *)")
|
||||
fn("int xcb_change_window_attributes_value_list_sizeof(const void *, uint32_t)")
|
||||
fn("int xcb_change_window_attributes_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_window_attributes_checked(xcb_connection_t *, xcb_window_t, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_window_attributes(xcb_connection_t *, xcb_window_t, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_window_attributes_aux_checked(xcb_connection_t *, xcb_window_t, uint32_t, const xcb_change_window_attributes_value_list_t *)")
|
||||
fn("xcb_void_cookie_t xcb_change_window_attributes_aux(xcb_connection_t *, xcb_window_t, uint32_t, const xcb_change_window_attributes_value_list_t *)")
|
||||
# XXX: Who owns result?
|
||||
fn("void * xcb_change_window_attributes_value_list(const xcb_change_window_attributes_request_t *)")
|
||||
fn("xcb_get_window_attributes_cookie_t xcb_get_window_attributes(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_get_window_attributes_cookie_t xcb_get_window_attributes_unchecked(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_get_window_attributes_reply_t * xcb_get_window_attributes_reply(xcb_connection_t *, xcb_get_window_attributes_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_destroy_window_checked(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_destroy_window(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_destroy_subwindows_checked(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_destroy_subwindows(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_change_save_set_checked(xcb_connection_t *, uint8_t, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_change_save_set(xcb_connection_t *, uint8_t, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_reparent_window_checked(xcb_connection_t *, xcb_window_t, xcb_window_t, int16_t, int16_t)")
|
||||
fn("xcb_void_cookie_t xcb_reparent_window(xcb_connection_t *, xcb_window_t, xcb_window_t, int16_t, int16_t)")
|
||||
fn("xcb_void_cookie_t xcb_map_window_checked(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_map_window(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_map_subwindows_checked(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_map_subwindows(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_unmap_window_checked(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_unmap_window(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_unmap_subwindows_checked(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_unmap_subwindows(xcb_connection_t *, xcb_window_t)")
|
||||
fn("int xcb_configure_window_value_list_serialize(void **, uint16_t, const xcb_configure_window_value_list_t *)")
|
||||
fn("int xcb_configure_window_value_list_unpack(const void *, uint16_t, xcb_configure_window_value_list_t *)")
|
||||
fn("int xcb_configure_window_value_list_sizeof(const void *, uint16_t)")
|
||||
fn("int xcb_configure_window_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_configure_window_checked(xcb_connection_t *, xcb_window_t, uint16_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_configure_window(xcb_connection_t *, xcb_window_t, uint16_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_configure_window_aux_checked(xcb_connection_t *, xcb_window_t, uint16_t, const xcb_configure_window_value_list_t *)")
|
||||
fn("xcb_void_cookie_t xcb_configure_window_aux(xcb_connection_t *, xcb_window_t, uint16_t, const xcb_configure_window_value_list_t *)")
|
||||
# XXX: Who owns result?
|
||||
fn("void * xcb_configure_window_value_list(const xcb_configure_window_request_t *)")
|
||||
fn("xcb_void_cookie_t xcb_circulate_window_checked(xcb_connection_t *, uint8_t, xcb_window_t)")
|
||||
fn("xcb_void_cookie_t xcb_circulate_window(xcb_connection_t *, uint8_t, xcb_window_t)")
|
||||
fn("xcb_get_geometry_cookie_t xcb_get_geometry(xcb_connection_t *, xcb_drawable_t)")
|
||||
fn("xcb_get_geometry_cookie_t xcb_get_geometry_unchecked(xcb_connection_t *, xcb_drawable_t)")
|
||||
fn("xcb_get_geometry_reply_t * xcb_get_geometry_reply(xcb_connection_t *, xcb_get_geometry_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_query_tree_sizeof(const void *)")
|
||||
fn("xcb_query_tree_cookie_t xcb_query_tree(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_query_tree_cookie_t xcb_query_tree_unchecked(xcb_connection_t *, xcb_window_t)")
|
||||
# ::Iterator::
|
||||
fn("xcb_window_t * xcb_query_tree_children(const xcb_query_tree_reply_t *)")
|
||||
fn("int xcb_query_tree_children_length(const xcb_query_tree_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_query_tree_children_end(const xcb_query_tree_reply_t *)")
|
||||
|
||||
fn("xcb_query_tree_reply_t * xcb_query_tree_reply(xcb_connection_t *, xcb_query_tree_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_intern_atom_sizeof(const void *)")
|
||||
fn("xcb_intern_atom_cookie_t xcb_intern_atom(xcb_connection_t *, uint8_t, uint16_t, const char *)")
|
||||
fn("xcb_intern_atom_cookie_t xcb_intern_atom_unchecked(xcb_connection_t *, uint8_t, uint16_t, const char *)")
|
||||
fn("xcb_intern_atom_reply_t * xcb_intern_atom_reply(xcb_connection_t *, xcb_intern_atom_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_get_atom_name_sizeof(const void *)")
|
||||
fn("xcb_get_atom_name_cookie_t xcb_get_atom_name(xcb_connection_t *, xcb_atom_t)")
|
||||
fn("xcb_get_atom_name_cookie_t xcb_get_atom_name_unchecked(xcb_connection_t *, xcb_atom_t)")
|
||||
# ::Iterator::
|
||||
fn("char * xcb_get_atom_name_name(const xcb_get_atom_name_reply_t *)")
|
||||
fn("int xcb_get_atom_name_name_length(const xcb_get_atom_name_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_get_atom_name_name_end(const xcb_get_atom_name_reply_t *)")
|
||||
|
||||
fn("xcb_get_atom_name_reply_t * xcb_get_atom_name_reply(xcb_connection_t *, xcb_get_atom_name_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_change_property_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_property_checked(xcb_connection_t *, uint8_t, xcb_window_t, xcb_atom_t, xcb_atom_t, uint8_t, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_property(xcb_connection_t *, uint8_t, xcb_window_t, xcb_atom_t, xcb_atom_t, uint8_t, uint32_t, const void *)")
|
||||
# ::Iterator::
|
||||
fn("void * xcb_change_property_data(const xcb_change_property_request_t *)")
|
||||
fn("int xcb_change_property_data_length(const xcb_change_property_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_change_property_data_end(const xcb_change_property_request_t *)")
|
||||
|
||||
fn("xcb_void_cookie_t xcb_delete_property_checked(xcb_connection_t *, xcb_window_t, xcb_atom_t)")
|
||||
fn("xcb_void_cookie_t xcb_delete_property(xcb_connection_t *, xcb_window_t, xcb_atom_t)")
|
||||
fn("int xcb_get_property_sizeof(const void *)")
|
||||
fn("xcb_get_property_cookie_t xcb_get_property(xcb_connection_t *, uint8_t, xcb_window_t, xcb_atom_t, xcb_atom_t, uint32_t, uint32_t)")
|
||||
fn("xcb_get_property_cookie_t xcb_get_property_unchecked(xcb_connection_t *, uint8_t, xcb_window_t, xcb_atom_t, xcb_atom_t, uint32_t, uint32_t)")
|
||||
# ::Iterator::
|
||||
fn("void * xcb_get_property_value(const xcb_get_property_reply_t *)")
|
||||
fn("int xcb_get_property_value_length(const xcb_get_property_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_get_property_value_end(const xcb_get_property_reply_t *)")
|
||||
|
||||
fn("xcb_get_property_reply_t * xcb_get_property_reply(xcb_connection_t *, xcb_get_property_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_list_properties_sizeof(const void *)")
|
||||
fn("xcb_list_properties_cookie_t xcb_list_properties(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_list_properties_cookie_t xcb_list_properties_unchecked(xcb_connection_t *, xcb_window_t)")
|
||||
# ::Iterator::
|
||||
fn("xcb_atom_t * xcb_list_properties_atoms(const xcb_list_properties_reply_t *)")
|
||||
fn("int xcb_list_properties_atoms_length(const xcb_list_properties_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_list_properties_atoms_end(const xcb_list_properties_reply_t *)")
|
||||
|
||||
fn("xcb_list_properties_reply_t * xcb_list_properties_reply(xcb_connection_t *, xcb_list_properties_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_set_selection_owner_checked(xcb_connection_t *, xcb_window_t, xcb_atom_t, xcb_timestamp_t)")
|
||||
fn("xcb_void_cookie_t xcb_set_selection_owner(xcb_connection_t *, xcb_window_t, xcb_atom_t, xcb_timestamp_t)")
|
||||
fn("xcb_get_selection_owner_cookie_t xcb_get_selection_owner(xcb_connection_t *, xcb_atom_t)")
|
||||
fn("xcb_get_selection_owner_cookie_t xcb_get_selection_owner_unchecked(xcb_connection_t *, xcb_atom_t)")
|
||||
fn("xcb_get_selection_owner_reply_t * xcb_get_selection_owner_reply(xcb_connection_t *, xcb_get_selection_owner_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_convert_selection_checked(xcb_connection_t *, xcb_window_t, xcb_atom_t, xcb_atom_t, xcb_atom_t, xcb_timestamp_t)")
|
||||
fn("xcb_void_cookie_t xcb_convert_selection(xcb_connection_t *, xcb_window_t, xcb_atom_t, xcb_atom_t, xcb_atom_t, xcb_timestamp_t)")
|
||||
fn("xcb_void_cookie_t xcb_send_event_checked(xcb_connection_t *, uint8_t, xcb_window_t, uint32_t, const char *)")
|
||||
fn("xcb_void_cookie_t xcb_send_event(xcb_connection_t *, uint8_t, xcb_window_t, uint32_t, const char *)")
|
||||
fn("xcb_grab_pointer_cookie_t xcb_grab_pointer(xcb_connection_t *, uint8_t, xcb_window_t, uint16_t, uint8_t, uint8_t, xcb_window_t, xcb_cursor_t, xcb_timestamp_t)")
|
||||
fn("xcb_grab_pointer_cookie_t xcb_grab_pointer_unchecked(xcb_connection_t *, uint8_t, xcb_window_t, uint16_t, uint8_t, uint8_t, xcb_window_t, xcb_cursor_t, xcb_timestamp_t)")
|
||||
fn("xcb_grab_pointer_reply_t * xcb_grab_pointer_reply(xcb_connection_t *, xcb_grab_pointer_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_ungrab_pointer_checked(xcb_connection_t *, xcb_timestamp_t)")
|
||||
fn("xcb_void_cookie_t xcb_ungrab_pointer(xcb_connection_t *, xcb_timestamp_t)")
|
||||
fn("xcb_void_cookie_t xcb_grab_button_checked(xcb_connection_t *, uint8_t, xcb_window_t, uint16_t, uint8_t, uint8_t, xcb_window_t, xcb_cursor_t, uint8_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_grab_button(xcb_connection_t *, uint8_t, xcb_window_t, uint16_t, uint8_t, uint8_t, xcb_window_t, xcb_cursor_t, uint8_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_ungrab_button_checked(xcb_connection_t *, uint8_t, xcb_window_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_ungrab_button(xcb_connection_t *, uint8_t, xcb_window_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_change_active_pointer_grab_checked(xcb_connection_t *, xcb_cursor_t, xcb_timestamp_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_change_active_pointer_grab(xcb_connection_t *, xcb_cursor_t, xcb_timestamp_t, uint16_t)")
|
||||
fn("xcb_grab_keyboard_cookie_t xcb_grab_keyboard(xcb_connection_t *, uint8_t, xcb_window_t, xcb_timestamp_t, uint8_t, uint8_t)")
|
||||
fn("xcb_grab_keyboard_cookie_t xcb_grab_keyboard_unchecked(xcb_connection_t *, uint8_t, xcb_window_t, xcb_timestamp_t, uint8_t, uint8_t)")
|
||||
fn("xcb_grab_keyboard_reply_t * xcb_grab_keyboard_reply(xcb_connection_t *, xcb_grab_keyboard_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_ungrab_keyboard_checked(xcb_connection_t *, xcb_timestamp_t)")
|
||||
fn("xcb_void_cookie_t xcb_ungrab_keyboard(xcb_connection_t *, xcb_timestamp_t)")
|
||||
fn("xcb_void_cookie_t xcb_grab_key_checked(xcb_connection_t *, uint8_t, xcb_window_t, uint16_t, xcb_keycode_t, uint8_t, uint8_t)")
|
||||
fn("xcb_void_cookie_t xcb_grab_key(xcb_connection_t *, uint8_t, xcb_window_t, uint16_t, xcb_keycode_t, uint8_t, uint8_t)")
|
||||
fn("xcb_void_cookie_t xcb_ungrab_key_checked(xcb_connection_t *, xcb_keycode_t, xcb_window_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_ungrab_key(xcb_connection_t *, xcb_keycode_t, xcb_window_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_allow_events_checked(xcb_connection_t *, uint8_t, xcb_timestamp_t)")
|
||||
fn("xcb_void_cookie_t xcb_allow_events(xcb_connection_t *, uint8_t, xcb_timestamp_t)")
|
||||
fn("xcb_void_cookie_t xcb_grab_server_checked(xcb_connection_t *)")
|
||||
fn("xcb_void_cookie_t xcb_grab_server(xcb_connection_t *)")
|
||||
fn("xcb_void_cookie_t xcb_ungrab_server_checked(xcb_connection_t *)")
|
||||
fn("xcb_void_cookie_t xcb_ungrab_server(xcb_connection_t *)")
|
||||
fn("xcb_query_pointer_cookie_t xcb_query_pointer(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_query_pointer_cookie_t xcb_query_pointer_unchecked(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_query_pointer_reply_t * xcb_query_pointer_reply(xcb_connection_t *, xcb_query_pointer_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("void xcb_timecoord_next(xcb_timecoord_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_timecoord_end(xcb_timecoord_iterator_t)")
|
||||
fn("int xcb_get_motion_events_sizeof(const void *)")
|
||||
fn("xcb_get_motion_events_cookie_t xcb_get_motion_events(xcb_connection_t *, xcb_window_t, xcb_timestamp_t, xcb_timestamp_t)")
|
||||
fn("xcb_get_motion_events_cookie_t xcb_get_motion_events_unchecked(xcb_connection_t *, xcb_window_t, xcb_timestamp_t, xcb_timestamp_t)")
|
||||
# ::Iterator::
|
||||
fn("xcb_timecoord_t * xcb_get_motion_events_events(const xcb_get_motion_events_reply_t *)")
|
||||
fn("int xcb_get_motion_events_events_length(const xcb_get_motion_events_reply_t *)")
|
||||
fn("xcb_timecoord_iterator_t xcb_get_motion_events_events_iterator(const xcb_get_motion_events_reply_t *)")
|
||||
|
||||
fn("xcb_get_motion_events_reply_t * xcb_get_motion_events_reply(xcb_connection_t *, xcb_get_motion_events_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_translate_coordinates_cookie_t xcb_translate_coordinates(xcb_connection_t *, xcb_window_t, xcb_window_t, int16_t, int16_t)")
|
||||
fn("xcb_translate_coordinates_cookie_t xcb_translate_coordinates_unchecked(xcb_connection_t *, xcb_window_t, xcb_window_t, int16_t, int16_t)")
|
||||
fn("xcb_translate_coordinates_reply_t * xcb_translate_coordinates_reply(xcb_connection_t *, xcb_translate_coordinates_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_warp_pointer_checked(xcb_connection_t *, xcb_window_t, xcb_window_t, int16_t, int16_t, uint16_t, uint16_t, int16_t, int16_t)")
|
||||
fn("xcb_void_cookie_t xcb_warp_pointer(xcb_connection_t *, xcb_window_t, xcb_window_t, int16_t, int16_t, uint16_t, uint16_t, int16_t, int16_t)")
|
||||
fn("xcb_void_cookie_t xcb_set_input_focus_checked(xcb_connection_t *, uint8_t, xcb_window_t, xcb_timestamp_t)")
|
||||
fn("xcb_void_cookie_t xcb_set_input_focus(xcb_connection_t *, uint8_t, xcb_window_t, xcb_timestamp_t)")
|
||||
fn("xcb_get_input_focus_cookie_t xcb_get_input_focus(xcb_connection_t *)")
|
||||
fn("xcb_get_input_focus_cookie_t xcb_get_input_focus_unchecked(xcb_connection_t *)")
|
||||
fn("xcb_get_input_focus_reply_t * xcb_get_input_focus_reply(xcb_connection_t *, xcb_get_input_focus_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_query_keymap_cookie_t xcb_query_keymap(xcb_connection_t *)")
|
||||
fn("xcb_query_keymap_cookie_t xcb_query_keymap_unchecked(xcb_connection_t *)")
|
||||
fn("xcb_query_keymap_reply_t * xcb_query_keymap_reply(xcb_connection_t *, xcb_query_keymap_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_open_font_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_open_font_checked(xcb_connection_t *, xcb_font_t, uint16_t, const char *)")
|
||||
fn("xcb_void_cookie_t xcb_open_font(xcb_connection_t *, xcb_font_t, uint16_t, const char *)")
|
||||
# ::Iterator::
|
||||
fn("char * xcb_open_font_name(const xcb_open_font_request_t *)")
|
||||
fn("int xcb_open_font_name_length(const xcb_open_font_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_open_font_name_end(const xcb_open_font_request_t *)")
|
||||
|
||||
fn("xcb_void_cookie_t xcb_close_font_checked(xcb_connection_t *, xcb_font_t)")
|
||||
fn("xcb_void_cookie_t xcb_close_font(xcb_connection_t *, xcb_font_t)")
|
||||
fn("void xcb_fontprop_next(xcb_fontprop_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_fontprop_end(xcb_fontprop_iterator_t)")
|
||||
fn("void xcb_charinfo_next(xcb_charinfo_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_charinfo_end(xcb_charinfo_iterator_t)")
|
||||
fn("int xcb_query_font_sizeof(const void *)")
|
||||
fn("xcb_query_font_cookie_t xcb_query_font(xcb_connection_t *, xcb_fontable_t)")
|
||||
fn("xcb_query_font_cookie_t xcb_query_font_unchecked(xcb_connection_t *, xcb_fontable_t)")
|
||||
# ::Iterator::
|
||||
fn("xcb_fontprop_t * xcb_query_font_properties(const xcb_query_font_reply_t *)")
|
||||
fn("int xcb_query_font_properties_length(const xcb_query_font_reply_t *)")
|
||||
fn("xcb_fontprop_iterator_t xcb_query_font_properties_iterator(const xcb_query_font_reply_t *)")
|
||||
|
||||
# ::Iterator::
|
||||
fn("xcb_charinfo_t * xcb_query_font_char_infos(const xcb_query_font_reply_t *)")
|
||||
fn("int xcb_query_font_char_infos_length(const xcb_query_font_reply_t *)")
|
||||
fn("xcb_charinfo_iterator_t xcb_query_font_char_infos_iterator(const xcb_query_font_reply_t *)")
|
||||
|
||||
fn("xcb_query_font_reply_t * xcb_query_font_reply(xcb_connection_t *, xcb_query_font_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_query_text_extents_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_query_text_extents_cookie_t xcb_query_text_extents(xcb_connection_t *, xcb_fontable_t, uint32_t, const xcb_char2b_t *)")
|
||||
fn("xcb_query_text_extents_cookie_t xcb_query_text_extents_unchecked(xcb_connection_t *, xcb_fontable_t, uint32_t, const xcb_char2b_t *)")
|
||||
fn("xcb_query_text_extents_reply_t * xcb_query_text_extents_reply(xcb_connection_t *, xcb_query_text_extents_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_str_sizeof(const void *)")
|
||||
# ::Iterator::
|
||||
fn("char * xcb_str_name(const xcb_str_t *)")
|
||||
fn("int xcb_str_name_length(const xcb_str_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_str_name_end(const xcb_str_t *)")
|
||||
|
||||
fn("void xcb_str_next(xcb_str_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_str_end(xcb_str_iterator_t)")
|
||||
fn("int xcb_list_fonts_sizeof(const void *)")
|
||||
fn("xcb_list_fonts_cookie_t xcb_list_fonts(xcb_connection_t *, uint16_t, uint16_t, const char *)")
|
||||
fn("xcb_list_fonts_cookie_t xcb_list_fonts_unchecked(xcb_connection_t *, uint16_t, uint16_t, const char *)")
|
||||
fn("int xcb_list_fonts_names_length(const xcb_list_fonts_reply_t *)")
|
||||
fn("xcb_str_iterator_t xcb_list_fonts_names_iterator(const xcb_list_fonts_reply_t *)")
|
||||
fn("xcb_list_fonts_reply_t * xcb_list_fonts_reply(xcb_connection_t *, xcb_list_fonts_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_list_fonts_with_info_sizeof(const void *)")
|
||||
fn("xcb_list_fonts_with_info_cookie_t xcb_list_fonts_with_info(xcb_connection_t *, uint16_t, uint16_t, const char *)")
|
||||
fn("xcb_list_fonts_with_info_cookie_t xcb_list_fonts_with_info_unchecked(xcb_connection_t *, uint16_t, uint16_t, const char *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_fontprop_t * xcb_list_fonts_with_info_properties(const xcb_list_fonts_with_info_reply_t *)")
|
||||
fn("int xcb_list_fonts_with_info_properties_length(const xcb_list_fonts_with_info_reply_t *)")
|
||||
fn("xcb_fontprop_iterator_t xcb_list_fonts_with_info_properties_iterator(const xcb_list_fonts_with_info_reply_t *)")
|
||||
|
||||
# ::Iterator::
|
||||
fn("char * xcb_list_fonts_with_info_name(const xcb_list_fonts_with_info_reply_t *)")
|
||||
fn("int xcb_list_fonts_with_info_name_length(const xcb_list_fonts_with_info_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_list_fonts_with_info_name_end(const xcb_list_fonts_with_info_reply_t *)")
|
||||
|
||||
fn("xcb_list_fonts_with_info_reply_t * xcb_list_fonts_with_info_reply(xcb_connection_t *, xcb_list_fonts_with_info_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_set_font_path_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_set_font_path_checked(xcb_connection_t *, uint16_t, const xcb_str_t *)")
|
||||
fn("xcb_void_cookie_t xcb_set_font_path(xcb_connection_t *, uint16_t, const xcb_str_t *)")
|
||||
fn("int xcb_set_font_path_font_length(const xcb_set_font_path_request_t *)")
|
||||
fn("xcb_str_iterator_t xcb_set_font_path_font_iterator(const xcb_set_font_path_request_t *)")
|
||||
fn("int xcb_get_font_path_sizeof(const void *)")
|
||||
fn("xcb_get_font_path_cookie_t xcb_get_font_path(xcb_connection_t *)")
|
||||
fn("xcb_get_font_path_cookie_t xcb_get_font_path_unchecked(xcb_connection_t *)")
|
||||
fn("int xcb_get_font_path_path_length(const xcb_get_font_path_reply_t *)")
|
||||
fn("xcb_str_iterator_t xcb_get_font_path_path_iterator(const xcb_get_font_path_reply_t *)")
|
||||
fn("xcb_get_font_path_reply_t * xcb_get_font_path_reply(xcb_connection_t *, xcb_get_font_path_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_create_pixmap_checked(xcb_connection_t *, uint8_t, xcb_pixmap_t, xcb_drawable_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_create_pixmap(xcb_connection_t *, uint8_t, xcb_pixmap_t, xcb_drawable_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_free_pixmap_checked(xcb_connection_t *, xcb_pixmap_t)")
|
||||
fn("xcb_void_cookie_t xcb_free_pixmap(xcb_connection_t *, xcb_pixmap_t)")
|
||||
fn("int xcb_create_gc_value_list_serialize(void **, uint32_t, const xcb_create_gc_value_list_t *)")
|
||||
fn("int xcb_create_gc_value_list_unpack(const void *, uint32_t, xcb_create_gc_value_list_t *)")
|
||||
fn("int xcb_create_gc_value_list_sizeof(const void *, uint32_t)")
|
||||
fn("int xcb_create_gc_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_create_gc_checked(xcb_connection_t *, xcb_gcontext_t, xcb_drawable_t, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_create_gc(xcb_connection_t *, xcb_gcontext_t, xcb_drawable_t, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_create_gc_aux_checked(xcb_connection_t *, xcb_gcontext_t, xcb_drawable_t, uint32_t, const xcb_create_gc_value_list_t *)")
|
||||
fn("xcb_void_cookie_t xcb_create_gc_aux(xcb_connection_t *, xcb_gcontext_t, xcb_drawable_t, uint32_t, const xcb_create_gc_value_list_t *)")
|
||||
# XXX: Who owns result?
|
||||
fn("void * xcb_create_gc_value_list(const xcb_create_gc_request_t *)")
|
||||
fn("int xcb_change_gc_value_list_serialize(void **, uint32_t, const xcb_change_gc_value_list_t *)")
|
||||
fn("int xcb_change_gc_value_list_unpack(const void *, uint32_t, xcb_change_gc_value_list_t *)")
|
||||
fn("int xcb_change_gc_value_list_sizeof(const void *, uint32_t)")
|
||||
fn("int xcb_change_gc_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_gc_checked(xcb_connection_t *, xcb_gcontext_t, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_gc(xcb_connection_t *, xcb_gcontext_t, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_gc_aux_checked(xcb_connection_t *, xcb_gcontext_t, uint32_t, const xcb_change_gc_value_list_t *)")
|
||||
fn("xcb_void_cookie_t xcb_change_gc_aux(xcb_connection_t *, xcb_gcontext_t, uint32_t, const xcb_change_gc_value_list_t *)")
|
||||
# XXX: Who owns result?
|
||||
fn("void * xcb_change_gc_value_list(const xcb_change_gc_request_t *)")
|
||||
|
||||
fn("xcb_void_cookie_t xcb_copy_gc_checked(xcb_connection_t *, xcb_gcontext_t, xcb_gcontext_t, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_copy_gc(xcb_connection_t *, xcb_gcontext_t, xcb_gcontext_t, uint32_t)")
|
||||
fn("int xcb_set_dashes_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_set_dashes_checked(xcb_connection_t *, xcb_gcontext_t, uint16_t, uint16_t, const uint8_t *)")
|
||||
fn("xcb_void_cookie_t xcb_set_dashes(xcb_connection_t *, xcb_gcontext_t, uint16_t, uint16_t, const uint8_t *)")
|
||||
# ::Iterator::
|
||||
fn("uint8_t * xcb_set_dashes_dashes(const xcb_set_dashes_request_t *)")
|
||||
fn("int xcb_set_dashes_dashes_length(const xcb_set_dashes_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_set_dashes_dashes_end(const xcb_set_dashes_request_t *)")
|
||||
|
||||
fn("int xcb_set_clip_rectangles_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_set_clip_rectangles_checked(xcb_connection_t *, uint8_t, xcb_gcontext_t, int16_t, int16_t, uint32_t, const xcb_rectangle_t *)")
|
||||
fn("xcb_void_cookie_t xcb_set_clip_rectangles(xcb_connection_t *, uint8_t, xcb_gcontext_t, int16_t, int16_t, uint32_t, const xcb_rectangle_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_rectangle_t * xcb_set_clip_rectangles_rectangles(const xcb_set_clip_rectangles_request_t *)")
|
||||
fn("int xcb_set_clip_rectangles_rectangles_length(const xcb_set_clip_rectangles_request_t *)")
|
||||
fn("xcb_rectangle_iterator_t xcb_set_clip_rectangles_rectangles_iterator(const xcb_set_clip_rectangles_request_t *)")
|
||||
|
||||
fn("xcb_void_cookie_t xcb_free_gc_checked(xcb_connection_t *, xcb_gcontext_t)")
|
||||
fn("xcb_void_cookie_t xcb_free_gc(xcb_connection_t *, xcb_gcontext_t)")
|
||||
fn("xcb_void_cookie_t xcb_clear_area_checked(xcb_connection_t *, uint8_t, xcb_window_t, int16_t, int16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_clear_area(xcb_connection_t *, uint8_t, xcb_window_t, int16_t, int16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_copy_area_checked(xcb_connection_t *, xcb_drawable_t, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, int16_t, int16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_copy_area(xcb_connection_t *, xcb_drawable_t, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, int16_t, int16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_copy_plane_checked(xcb_connection_t *, xcb_drawable_t, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, int16_t, int16_t, uint16_t, uint16_t, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_copy_plane(xcb_connection_t *, xcb_drawable_t, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, int16_t, int16_t, uint16_t, uint16_t, uint32_t)")
|
||||
fn("int xcb_poly_point_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_poly_point_checked(xcb_connection_t *, uint8_t, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_point_t *)")
|
||||
fn("xcb_void_cookie_t xcb_poly_point(xcb_connection_t *, uint8_t, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_point_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_point_t * xcb_poly_point_points(const xcb_poly_point_request_t *)")
|
||||
fn("int xcb_poly_point_points_length(const xcb_poly_point_request_t *)")
|
||||
fn("xcb_point_iterator_t xcb_poly_point_points_iterator(const xcb_poly_point_request_t *)")
|
||||
|
||||
fn("int xcb_poly_line_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_poly_line_checked(xcb_connection_t *, uint8_t, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_point_t *)")
|
||||
fn("xcb_void_cookie_t xcb_poly_line(xcb_connection_t *, uint8_t, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_point_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_point_t * xcb_poly_line_points(const xcb_poly_line_request_t *)")
|
||||
fn("int xcb_poly_line_points_length(const xcb_poly_line_request_t *)")
|
||||
fn("xcb_point_iterator_t xcb_poly_line_points_iterator(const xcb_poly_line_request_t *)")
|
||||
|
||||
fn("void xcb_segment_next(xcb_segment_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_segment_end(xcb_segment_iterator_t)")
|
||||
fn("int xcb_poly_segment_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_poly_segment_checked(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_segment_t *)")
|
||||
fn("xcb_void_cookie_t xcb_poly_segment(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_segment_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_segment_t * xcb_poly_segment_segments(const xcb_poly_segment_request_t *)")
|
||||
fn("int xcb_poly_segment_segments_length(const xcb_poly_segment_request_t *)")
|
||||
fn("xcb_segment_iterator_t xcb_poly_segment_segments_iterator(const xcb_poly_segment_request_t *)")
|
||||
|
||||
fn("int xcb_poly_rectangle_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_poly_rectangle_checked(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_rectangle_t *)")
|
||||
fn("xcb_void_cookie_t xcb_poly_rectangle(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_rectangle_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_rectangle_t * xcb_poly_rectangle_rectangles(const xcb_poly_rectangle_request_t *)")
|
||||
fn("int xcb_poly_rectangle_rectangles_length(const xcb_poly_rectangle_request_t *)")
|
||||
fn("xcb_rectangle_iterator_t xcb_poly_rectangle_rectangles_iterator(const xcb_poly_rectangle_request_t *)")
|
||||
|
||||
fn("int xcb_poly_arc_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_poly_arc_checked(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_arc_t *)")
|
||||
fn("xcb_void_cookie_t xcb_poly_arc(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_arc_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_arc_t * xcb_poly_arc_arcs(const xcb_poly_arc_request_t *)")
|
||||
fn("int xcb_poly_arc_arcs_length(const xcb_poly_arc_request_t *)")
|
||||
fn("xcb_arc_iterator_t xcb_poly_arc_arcs_iterator(const xcb_poly_arc_request_t *)")
|
||||
|
||||
fn("int xcb_fill_poly_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_fill_poly_checked(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint8_t, uint8_t, uint32_t, const xcb_point_t *)")
|
||||
fn("xcb_void_cookie_t xcb_fill_poly(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint8_t, uint8_t, uint32_t, const xcb_point_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_point_t * xcb_fill_poly_points(const xcb_fill_poly_request_t *)")
|
||||
fn("int xcb_fill_poly_points_length(const xcb_fill_poly_request_t *)")
|
||||
fn("xcb_point_iterator_t xcb_fill_poly_points_iterator(const xcb_fill_poly_request_t *)")
|
||||
|
||||
fn("int xcb_poly_fill_rectangle_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_poly_fill_rectangle_checked(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_rectangle_t *)")
|
||||
fn("xcb_void_cookie_t xcb_poly_fill_rectangle(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_rectangle_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_rectangle_t * xcb_poly_fill_rectangle_rectangles(const xcb_poly_fill_rectangle_request_t *)")
|
||||
fn("int xcb_poly_fill_rectangle_rectangles_length(const xcb_poly_fill_rectangle_request_t *)")
|
||||
fn("xcb_rectangle_iterator_t xcb_poly_fill_rectangle_rectangles_iterator(const xcb_poly_fill_rectangle_request_t *)")
|
||||
|
||||
fn("int xcb_poly_fill_arc_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_poly_fill_arc_checked(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_arc_t *)")
|
||||
fn("xcb_void_cookie_t xcb_poly_fill_arc(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, uint32_t, const xcb_arc_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_arc_t * xcb_poly_fill_arc_arcs(const xcb_poly_fill_arc_request_t *)")
|
||||
fn("int xcb_poly_fill_arc_arcs_length(const xcb_poly_fill_arc_request_t *)")
|
||||
fn("xcb_arc_iterator_t xcb_poly_fill_arc_arcs_iterator(const xcb_poly_fill_arc_request_t *)")
|
||||
|
||||
fn("int xcb_put_image_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_put_image_checked(xcb_connection_t *, uint8_t, xcb_drawable_t, xcb_gcontext_t, uint16_t, uint16_t, int16_t, int16_t, uint8_t, uint8_t, uint32_t, const uint8_t *)")
|
||||
fn("xcb_void_cookie_t xcb_put_image(xcb_connection_t *, uint8_t, xcb_drawable_t, xcb_gcontext_t, uint16_t, uint16_t, int16_t, int16_t, uint8_t, uint8_t, uint32_t, const uint8_t *)")
|
||||
# ::Iterator::
|
||||
fn("uint8_t * xcb_put_image_data(const xcb_put_image_request_t *)")
|
||||
fn("int xcb_put_image_data_length(const xcb_put_image_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_put_image_data_end(const xcb_put_image_request_t *)")
|
||||
|
||||
fn("int xcb_get_image_sizeof(const void *)")
|
||||
fn("xcb_get_image_cookie_t xcb_get_image(xcb_connection_t *, uint8_t, xcb_drawable_t, int16_t, int16_t, uint16_t, uint16_t, uint32_t)")
|
||||
fn("xcb_get_image_cookie_t xcb_get_image_unchecked(xcb_connection_t *, uint8_t, xcb_drawable_t, int16_t, int16_t, uint16_t, uint16_t, uint32_t)")
|
||||
# ::Iterator::
|
||||
fn("uint8_t * xcb_get_image_data(const xcb_get_image_reply_t *)")
|
||||
fn("int xcb_get_image_data_length(const xcb_get_image_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_get_image_data_end(const xcb_get_image_reply_t *)")
|
||||
|
||||
fn("xcb_get_image_reply_t * xcb_get_image_reply(xcb_connection_t *, xcb_get_image_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_poly_text_8_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_poly_text_8_checked(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, uint32_t, const uint8_t *)")
|
||||
fn("xcb_void_cookie_t xcb_poly_text_8(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, uint32_t, const uint8_t *)")
|
||||
# ::Iterator::
|
||||
fn("uint8_t * xcb_poly_text_8_items(const xcb_poly_text_8_request_t *)")
|
||||
fn("int xcb_poly_text_8_items_length(const xcb_poly_text_8_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_poly_text_8_items_end(const xcb_poly_text_8_request_t *)")
|
||||
|
||||
fn("int xcb_poly_text_16_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_poly_text_16_checked(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, uint32_t, const uint8_t *)")
|
||||
fn("xcb_void_cookie_t xcb_poly_text_16(xcb_connection_t *, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, uint32_t, const uint8_t *)")
|
||||
# ::Iterator::
|
||||
fn("uint8_t * xcb_poly_text_16_items(const xcb_poly_text_16_request_t *)")
|
||||
fn("int xcb_poly_text_16_items_length(const xcb_poly_text_16_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_poly_text_16_items_end(const xcb_poly_text_16_request_t *)")
|
||||
|
||||
fn("int xcb_image_text_8_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_image_text_8_checked(xcb_connection_t *, uint8_t, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, const char *)")
|
||||
fn("xcb_void_cookie_t xcb_image_text_8(xcb_connection_t *, uint8_t, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, const char *)")
|
||||
# ::Iterator::
|
||||
fn("char * xcb_image_text_8_string(const xcb_image_text_8_request_t *)")
|
||||
fn("int xcb_image_text_8_string_length(const xcb_image_text_8_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_image_text_8_string_end(const xcb_image_text_8_request_t *)")
|
||||
|
||||
fn("int xcb_image_text_16_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_image_text_16_checked(xcb_connection_t *, uint8_t, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, const xcb_char2b_t *)")
|
||||
fn("xcb_void_cookie_t xcb_image_text_16(xcb_connection_t *, uint8_t, xcb_drawable_t, xcb_gcontext_t, int16_t, int16_t, const xcb_char2b_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_char2b_t * xcb_image_text_16_string(const xcb_image_text_16_request_t *)")
|
||||
fn("int xcb_image_text_16_string_length(const xcb_image_text_16_request_t *)")
|
||||
fn("xcb_char2b_iterator_t xcb_image_text_16_string_iterator(const xcb_image_text_16_request_t *)")
|
||||
|
||||
fn("xcb_void_cookie_t xcb_create_colormap_checked(xcb_connection_t *, uint8_t, xcb_colormap_t, xcb_window_t, xcb_visualid_t)")
|
||||
fn("xcb_void_cookie_t xcb_create_colormap(xcb_connection_t *, uint8_t, xcb_colormap_t, xcb_window_t, xcb_visualid_t)")
|
||||
fn("xcb_void_cookie_t xcb_free_colormap_checked(xcb_connection_t *, xcb_colormap_t)")
|
||||
fn("xcb_void_cookie_t xcb_free_colormap(xcb_connection_t *, xcb_colormap_t)")
|
||||
fn("xcb_void_cookie_t xcb_copy_colormap_and_free_checked(xcb_connection_t *, xcb_colormap_t, xcb_colormap_t)")
|
||||
fn("xcb_void_cookie_t xcb_copy_colormap_and_free(xcb_connection_t *, xcb_colormap_t, xcb_colormap_t)")
|
||||
fn("xcb_void_cookie_t xcb_install_colormap_checked(xcb_connection_t *, xcb_colormap_t)")
|
||||
fn("xcb_void_cookie_t xcb_install_colormap(xcb_connection_t *, xcb_colormap_t)")
|
||||
fn("xcb_void_cookie_t xcb_uninstall_colormap_checked(xcb_connection_t *, xcb_colormap_t)")
|
||||
fn("xcb_void_cookie_t xcb_uninstall_colormap(xcb_connection_t *, xcb_colormap_t)")
|
||||
fn("int xcb_list_installed_colormaps_sizeof(const void *)")
|
||||
fn("xcb_list_installed_colormaps_cookie_t xcb_list_installed_colormaps(xcb_connection_t *, xcb_window_t)")
|
||||
fn("xcb_list_installed_colormaps_cookie_t xcb_list_installed_colormaps_unchecked(xcb_connection_t *, xcb_window_t)")
|
||||
# ::Iterator::
|
||||
fn("xcb_colormap_t * xcb_list_installed_colormaps_cmaps(const xcb_list_installed_colormaps_reply_t *)")
|
||||
fn("int xcb_list_installed_colormaps_cmaps_length(const xcb_list_installed_colormaps_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_list_installed_colormaps_cmaps_end(const xcb_list_installed_colormaps_reply_t *)")
|
||||
|
||||
fn("xcb_list_installed_colormaps_reply_t * xcb_list_installed_colormaps_reply(xcb_connection_t *, xcb_list_installed_colormaps_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_alloc_color_cookie_t xcb_alloc_color(xcb_connection_t *, xcb_colormap_t, uint16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_alloc_color_cookie_t xcb_alloc_color_unchecked(xcb_connection_t *, xcb_colormap_t, uint16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_alloc_color_reply_t * xcb_alloc_color_reply(xcb_connection_t *, xcb_alloc_color_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_alloc_named_color_sizeof(const void *)")
|
||||
fn("xcb_alloc_named_color_cookie_t xcb_alloc_named_color(xcb_connection_t *, xcb_colormap_t, uint16_t, const char *)")
|
||||
fn("xcb_alloc_named_color_cookie_t xcb_alloc_named_color_unchecked(xcb_connection_t *, xcb_colormap_t, uint16_t, const char *)")
|
||||
fn("xcb_alloc_named_color_reply_t * xcb_alloc_named_color_reply(xcb_connection_t *, xcb_alloc_named_color_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_alloc_color_cells_sizeof(const void *)")
|
||||
fn("xcb_alloc_color_cells_cookie_t xcb_alloc_color_cells(xcb_connection_t *, uint8_t, xcb_colormap_t, uint16_t, uint16_t)")
|
||||
fn("xcb_alloc_color_cells_cookie_t xcb_alloc_color_cells_unchecked(xcb_connection_t *, uint8_t, xcb_colormap_t, uint16_t, uint16_t)")
|
||||
# ::Iterator::
|
||||
fn("uint32_t * xcb_alloc_color_cells_pixels(const xcb_alloc_color_cells_reply_t *)")
|
||||
fn("int xcb_alloc_color_cells_pixels_length(const xcb_alloc_color_cells_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_alloc_color_cells_pixels_end(const xcb_alloc_color_cells_reply_t *)")
|
||||
|
||||
# ::Iterator::
|
||||
fn("uint32_t * xcb_alloc_color_cells_masks(const xcb_alloc_color_cells_reply_t *)")
|
||||
fn("int xcb_alloc_color_cells_masks_length(const xcb_alloc_color_cells_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_alloc_color_cells_masks_end(const xcb_alloc_color_cells_reply_t *)")
|
||||
|
||||
fn("xcb_alloc_color_cells_reply_t * xcb_alloc_color_cells_reply(xcb_connection_t *, xcb_alloc_color_cells_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_alloc_color_planes_sizeof(const void *)")
|
||||
fn("xcb_alloc_color_planes_cookie_t xcb_alloc_color_planes(xcb_connection_t *, uint8_t, xcb_colormap_t, uint16_t, uint16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_alloc_color_planes_cookie_t xcb_alloc_color_planes_unchecked(xcb_connection_t *, uint8_t, xcb_colormap_t, uint16_t, uint16_t, uint16_t, uint16_t)")
|
||||
# ::Iterator::
|
||||
fn("uint32_t * xcb_alloc_color_planes_pixels(const xcb_alloc_color_planes_reply_t *)")
|
||||
fn("int xcb_alloc_color_planes_pixels_length(const xcb_alloc_color_planes_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_alloc_color_planes_pixels_end(const xcb_alloc_color_planes_reply_t *)")
|
||||
|
||||
fn("xcb_alloc_color_planes_reply_t * xcb_alloc_color_planes_reply(xcb_connection_t *, xcb_alloc_color_planes_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_free_colors_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_free_colors_checked(xcb_connection_t *, xcb_colormap_t, uint32_t, uint32_t, const uint32_t *)")
|
||||
fn("xcb_void_cookie_t xcb_free_colors(xcb_connection_t *, xcb_colormap_t, uint32_t, uint32_t, const uint32_t *)")
|
||||
# ::Iterator::
|
||||
fn("uint32_t * xcb_free_colors_pixels(const xcb_free_colors_request_t *)")
|
||||
fn("int xcb_free_colors_pixels_length(const xcb_free_colors_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_free_colors_pixels_end(const xcb_free_colors_request_t *)")
|
||||
|
||||
fn("void xcb_coloritem_next(xcb_coloritem_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_coloritem_end(xcb_coloritem_iterator_t)")
|
||||
fn("int xcb_store_colors_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_store_colors_checked(xcb_connection_t *, xcb_colormap_t, uint32_t, const xcb_coloritem_t *)")
|
||||
fn("xcb_void_cookie_t xcb_store_colors(xcb_connection_t *, xcb_colormap_t, uint32_t, const xcb_coloritem_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_coloritem_t * xcb_store_colors_items(const xcb_store_colors_request_t *)")
|
||||
fn("int xcb_store_colors_items_length(const xcb_store_colors_request_t *)")
|
||||
fn("xcb_coloritem_iterator_t xcb_store_colors_items_iterator(const xcb_store_colors_request_t *)")
|
||||
|
||||
fn("int xcb_store_named_color_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_store_named_color_checked(xcb_connection_t *, uint8_t, xcb_colormap_t, uint32_t, uint16_t, const char *)")
|
||||
fn("xcb_void_cookie_t xcb_store_named_color(xcb_connection_t *, uint8_t, xcb_colormap_t, uint32_t, uint16_t, const char *)")
|
||||
# XXX: Who owns result?
|
||||
fn("char * xcb_store_named_color_name(const xcb_store_named_color_request_t *)")
|
||||
|
||||
fn("int xcb_store_named_color_name_length(const xcb_store_named_color_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_store_named_color_name_end(const xcb_store_named_color_request_t *)")
|
||||
fn("void xcb_rgb_next(xcb_rgb_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_rgb_end(xcb_rgb_iterator_t)")
|
||||
fn("int xcb_query_colors_sizeof(const void *, uint32_t)")
|
||||
fn("xcb_query_colors_cookie_t xcb_query_colors(xcb_connection_t *, xcb_colormap_t, uint32_t, const uint32_t *)")
|
||||
fn("xcb_query_colors_cookie_t xcb_query_colors_unchecked(xcb_connection_t *, xcb_colormap_t, uint32_t, const uint32_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_rgb_t * xcb_query_colors_colors(const xcb_query_colors_reply_t *)")
|
||||
fn("int xcb_query_colors_colors_length(const xcb_query_colors_reply_t *)")
|
||||
fn("xcb_rgb_iterator_t xcb_query_colors_colors_iterator(const xcb_query_colors_reply_t *)")
|
||||
|
||||
fn("xcb_query_colors_reply_t * xcb_query_colors_reply(xcb_connection_t *, xcb_query_colors_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_lookup_color_sizeof(const void *)")
|
||||
fn("xcb_lookup_color_cookie_t xcb_lookup_color(xcb_connection_t *, xcb_colormap_t, uint16_t, const char *)")
|
||||
fn("xcb_lookup_color_cookie_t xcb_lookup_color_unchecked(xcb_connection_t *, xcb_colormap_t, uint16_t, const char *)")
|
||||
fn("xcb_lookup_color_reply_t * xcb_lookup_color_reply(xcb_connection_t *, xcb_lookup_color_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_create_cursor_checked(xcb_connection_t *, xcb_cursor_t, xcb_pixmap_t, xcb_pixmap_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_create_cursor(xcb_connection_t *, xcb_cursor_t, xcb_pixmap_t, xcb_pixmap_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_create_glyph_cursor_checked(xcb_connection_t *, xcb_cursor_t, xcb_font_t, xcb_font_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_create_glyph_cursor(xcb_connection_t *, xcb_cursor_t, xcb_font_t, xcb_font_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_free_cursor_checked(xcb_connection_t *, xcb_cursor_t)")
|
||||
fn("xcb_void_cookie_t xcb_free_cursor(xcb_connection_t *, xcb_cursor_t)")
|
||||
fn("xcb_void_cookie_t xcb_recolor_cursor_checked(xcb_connection_t *, xcb_cursor_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_void_cookie_t xcb_recolor_cursor(xcb_connection_t *, xcb_cursor_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t)")
|
||||
fn("xcb_query_best_size_cookie_t xcb_query_best_size(xcb_connection_t *, uint8_t, xcb_drawable_t, uint16_t, uint16_t)")
|
||||
fn("xcb_query_best_size_cookie_t xcb_query_best_size_unchecked(xcb_connection_t *, uint8_t, xcb_drawable_t, uint16_t, uint16_t)")
|
||||
fn("xcb_query_best_size_reply_t * xcb_query_best_size_reply(xcb_connection_t *, xcb_query_best_size_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_query_extension_sizeof(const void *)")
|
||||
fn("xcb_query_extension_cookie_t xcb_query_extension(xcb_connection_t *, uint16_t, const char *)")
|
||||
fn("xcb_query_extension_cookie_t xcb_query_extension_unchecked(xcb_connection_t *, uint16_t, const char *)")
|
||||
fn("xcb_query_extension_reply_t * xcb_query_extension_reply(xcb_connection_t *, xcb_query_extension_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_list_extensions_sizeof(const void *)")
|
||||
fn("xcb_list_extensions_cookie_t xcb_list_extensions(xcb_connection_t *)")
|
||||
fn("xcb_list_extensions_cookie_t xcb_list_extensions_unchecked(xcb_connection_t *)")
|
||||
fn("int xcb_list_extensions_names_length(const xcb_list_extensions_reply_t *)")
|
||||
fn("xcb_str_iterator_t xcb_list_extensions_names_iterator(const xcb_list_extensions_reply_t *)")
|
||||
fn("xcb_list_extensions_reply_t * xcb_list_extensions_reply(xcb_connection_t *, xcb_list_extensions_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_change_keyboard_mapping_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_keyboard_mapping_checked(xcb_connection_t *, uint8_t, xcb_keycode_t, uint8_t, const xcb_keysym_t *)")
|
||||
fn("xcb_void_cookie_t xcb_change_keyboard_mapping(xcb_connection_t *, uint8_t, xcb_keycode_t, uint8_t, const xcb_keysym_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_keysym_t * xcb_change_keyboard_mapping_keysyms(const xcb_change_keyboard_mapping_request_t *)")
|
||||
fn("int xcb_change_keyboard_mapping_keysyms_length(const xcb_change_keyboard_mapping_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_change_keyboard_mapping_keysyms_end(const xcb_change_keyboard_mapping_request_t *)")
|
||||
|
||||
fn("int xcb_get_keyboard_mapping_sizeof(const void *)")
|
||||
fn("xcb_get_keyboard_mapping_cookie_t xcb_get_keyboard_mapping(xcb_connection_t *, xcb_keycode_t, uint8_t)")
|
||||
fn("xcb_get_keyboard_mapping_cookie_t xcb_get_keyboard_mapping_unchecked(xcb_connection_t *, xcb_keycode_t, uint8_t)")
|
||||
# ::Iterator::
|
||||
fn("xcb_keysym_t * xcb_get_keyboard_mapping_keysyms(const xcb_get_keyboard_mapping_reply_t *)")
|
||||
fn("int xcb_get_keyboard_mapping_keysyms_length(const xcb_get_keyboard_mapping_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_get_keyboard_mapping_keysyms_end(const xcb_get_keyboard_mapping_reply_t *)")
|
||||
|
||||
fn("xcb_get_keyboard_mapping_reply_t * xcb_get_keyboard_mapping_reply(xcb_connection_t *, xcb_get_keyboard_mapping_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_change_keyboard_control_value_list_serialize(void **, uint32_t, const xcb_change_keyboard_control_value_list_t *)")
|
||||
fn("int xcb_change_keyboard_control_value_list_unpack(const void *, uint32_t, xcb_change_keyboard_control_value_list_t *)")
|
||||
fn("int xcb_change_keyboard_control_value_list_sizeof(const void *, uint32_t)")
|
||||
fn("int xcb_change_keyboard_control_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_keyboard_control_checked(xcb_connection_t *, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_keyboard_control(xcb_connection_t *, uint32_t, const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_keyboard_control_aux_checked(xcb_connection_t *, uint32_t, const xcb_change_keyboard_control_value_list_t *)")
|
||||
fn("xcb_void_cookie_t xcb_change_keyboard_control_aux(xcb_connection_t *, uint32_t, const xcb_change_keyboard_control_value_list_t *)")
|
||||
# XXX: Who owns result?
|
||||
fn("void * xcb_change_keyboard_control_value_list(const xcb_change_keyboard_control_request_t *)")
|
||||
|
||||
fn("xcb_get_keyboard_control_cookie_t xcb_get_keyboard_control(xcb_connection_t *)")
|
||||
fn("xcb_get_keyboard_control_cookie_t xcb_get_keyboard_control_unchecked(xcb_connection_t *)")
|
||||
fn("xcb_get_keyboard_control_reply_t * xcb_get_keyboard_control_reply(xcb_connection_t *, xcb_get_keyboard_control_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_bell_checked(xcb_connection_t *, int8_t)")
|
||||
fn("xcb_void_cookie_t xcb_bell(xcb_connection_t *, int8_t)")
|
||||
fn("xcb_void_cookie_t xcb_change_pointer_control_checked(xcb_connection_t *, int16_t, int16_t, int16_t, uint8_t, uint8_t)")
|
||||
fn("xcb_void_cookie_t xcb_change_pointer_control(xcb_connection_t *, int16_t, int16_t, int16_t, uint8_t, uint8_t)")
|
||||
fn("xcb_get_pointer_control_cookie_t xcb_get_pointer_control(xcb_connection_t *)")
|
||||
fn("xcb_get_pointer_control_cookie_t xcb_get_pointer_control_unchecked(xcb_connection_t *)")
|
||||
fn("xcb_get_pointer_control_reply_t * xcb_get_pointer_control_reply(xcb_connection_t *, xcb_get_pointer_control_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_set_screen_saver_checked(xcb_connection_t *, int16_t, int16_t, uint8_t, uint8_t)")
|
||||
fn("xcb_void_cookie_t xcb_set_screen_saver(xcb_connection_t *, int16_t, int16_t, uint8_t, uint8_t)")
|
||||
fn("xcb_get_screen_saver_cookie_t xcb_get_screen_saver(xcb_connection_t *)")
|
||||
fn("xcb_get_screen_saver_cookie_t xcb_get_screen_saver_unchecked(xcb_connection_t *)")
|
||||
fn("xcb_get_screen_saver_reply_t * xcb_get_screen_saver_reply(xcb_connection_t *, xcb_get_screen_saver_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_change_hosts_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_change_hosts_checked(xcb_connection_t *, uint8_t, uint8_t, uint16_t, const uint8_t *)")
|
||||
fn("xcb_void_cookie_t xcb_change_hosts(xcb_connection_t *, uint8_t, uint8_t, uint16_t, const uint8_t *)")
|
||||
# ::Iterator::
|
||||
fn("uint8_t * xcb_change_hosts_address(const xcb_change_hosts_request_t *)")
|
||||
fn("int xcb_change_hosts_address_length(const xcb_change_hosts_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_change_hosts_address_end(const xcb_change_hosts_request_t *)")
|
||||
|
||||
fn("int xcb_host_sizeof(const void *)")
|
||||
# ::Iterator::
|
||||
fn("uint8_t * xcb_host_address(const xcb_host_t *)")
|
||||
fn("int xcb_host_address_length(const xcb_host_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_host_address_end(const xcb_host_t *)")
|
||||
|
||||
fn("void xcb_host_next(xcb_host_iterator_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_host_end(xcb_host_iterator_t)")
|
||||
fn("int xcb_list_hosts_sizeof(const void *)")
|
||||
fn("xcb_list_hosts_cookie_t xcb_list_hosts(xcb_connection_t *)")
|
||||
fn("xcb_list_hosts_cookie_t xcb_list_hosts_unchecked(xcb_connection_t *)")
|
||||
fn("int xcb_list_hosts_hosts_length(const xcb_list_hosts_reply_t *)")
|
||||
fn("xcb_host_iterator_t xcb_list_hosts_hosts_iterator(const xcb_list_hosts_reply_t *)")
|
||||
fn("xcb_list_hosts_reply_t * xcb_list_hosts_reply(xcb_connection_t *, xcb_list_hosts_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_set_access_control_checked(xcb_connection_t *, uint8_t)")
|
||||
fn("xcb_void_cookie_t xcb_set_access_control(xcb_connection_t *, uint8_t)")
|
||||
fn("xcb_void_cookie_t xcb_set_close_down_mode_checked(xcb_connection_t *, uint8_t)")
|
||||
fn("xcb_void_cookie_t xcb_set_close_down_mode(xcb_connection_t *, uint8_t)")
|
||||
fn("xcb_void_cookie_t xcb_kill_client_checked(xcb_connection_t *, uint32_t)")
|
||||
fn("xcb_void_cookie_t xcb_kill_client(xcb_connection_t *, uint32_t)")
|
||||
fn("int xcb_rotate_properties_sizeof(const void *)")
|
||||
fn("xcb_void_cookie_t xcb_rotate_properties_checked(xcb_connection_t *, xcb_window_t, uint16_t, int16_t, const xcb_atom_t *)")
|
||||
fn("xcb_void_cookie_t xcb_rotate_properties(xcb_connection_t *, xcb_window_t, uint16_t, int16_t, const xcb_atom_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_atom_t * xcb_rotate_properties_atoms(const xcb_rotate_properties_request_t *)")
|
||||
fn("int xcb_rotate_properties_atoms_length(const xcb_rotate_properties_request_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_rotate_properties_atoms_end(const xcb_rotate_properties_request_t *)")
|
||||
|
||||
fn("xcb_void_cookie_t xcb_force_screen_saver_checked(xcb_connection_t *, uint8_t)")
|
||||
fn("xcb_void_cookie_t xcb_force_screen_saver(xcb_connection_t *, uint8_t)")
|
||||
fn("int xcb_set_pointer_mapping_sizeof(const void *)")
|
||||
fn("xcb_set_pointer_mapping_cookie_t xcb_set_pointer_mapping(xcb_connection_t *, uint8_t, const uint8_t *)")
|
||||
fn("xcb_set_pointer_mapping_cookie_t xcb_set_pointer_mapping_unchecked(xcb_connection_t *, uint8_t, const uint8_t *)")
|
||||
fn("xcb_set_pointer_mapping_reply_t * xcb_set_pointer_mapping_reply(xcb_connection_t *, xcb_set_pointer_mapping_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_get_pointer_mapping_sizeof(const void *)")
|
||||
fn("xcb_get_pointer_mapping_cookie_t xcb_get_pointer_mapping(xcb_connection_t *)")
|
||||
fn("xcb_get_pointer_mapping_cookie_t xcb_get_pointer_mapping_unchecked(xcb_connection_t *)")
|
||||
# ::Iterator::
|
||||
fn("uint8_t * xcb_get_pointer_mapping_map(const xcb_get_pointer_mapping_reply_t *)")
|
||||
fn("int xcb_get_pointer_mapping_map_length(const xcb_get_pointer_mapping_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_get_pointer_mapping_map_end(const xcb_get_pointer_mapping_reply_t *)")
|
||||
|
||||
fn("xcb_get_pointer_mapping_reply_t * xcb_get_pointer_mapping_reply(xcb_connection_t *, xcb_get_pointer_mapping_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_set_modifier_mapping_sizeof(const void *)")
|
||||
fn("xcb_set_modifier_mapping_cookie_t xcb_set_modifier_mapping(xcb_connection_t *, uint8_t, const xcb_keycode_t *)")
|
||||
fn("xcb_set_modifier_mapping_cookie_t xcb_set_modifier_mapping_unchecked(xcb_connection_t *, uint8_t, const xcb_keycode_t *)")
|
||||
fn("xcb_set_modifier_mapping_reply_t * xcb_set_modifier_mapping_reply(xcb_connection_t *, xcb_set_modifier_mapping_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("int xcb_get_modifier_mapping_sizeof(const void *)")
|
||||
fn("xcb_get_modifier_mapping_cookie_t xcb_get_modifier_mapping(xcb_connection_t *)")
|
||||
fn("xcb_get_modifier_mapping_cookie_t xcb_get_modifier_mapping_unchecked(xcb_connection_t *)")
|
||||
# ::Iterator::
|
||||
fn("xcb_keycode_t * xcb_get_modifier_mapping_keycodes(const xcb_get_modifier_mapping_reply_t *)")
|
||||
fn("int xcb_get_modifier_mapping_keycodes_length(const xcb_get_modifier_mapping_reply_t *)")
|
||||
fn("xcb_generic_iterator_t xcb_get_modifier_mapping_keycodes_end(const xcb_get_modifier_mapping_reply_t *)")
|
||||
|
||||
fn("xcb_get_modifier_mapping_reply_t * xcb_get_modifier_mapping_reply(xcb_connection_t *, xcb_get_modifier_mapping_cookie_t, xcb_generic_error_t **)"); no_pack()
|
||||
fn("xcb_void_cookie_t xcb_no_operation_checked(xcb_connection_t *)")
|
||||
fn("xcb_void_cookie_t xcb_no_operation(xcb_connection_t *)")
|
||||
Generate()
|
||||
@@ -0,0 +1,117 @@
|
||||
#pragma once
|
||||
|
||||
#include <linux/futex.h>
|
||||
#include <atomic>
|
||||
#include <condition_variable>
|
||||
#include <mutex>
|
||||
|
||||
struct CrossArchEvent final {
|
||||
std::atomic<uint32_t> Futex;
|
||||
};
|
||||
|
||||
static void WaitForWorkFunc(CrossArchEvent *Event) {
|
||||
|
||||
// Wait for Futex value to become 1
|
||||
while (true) {
|
||||
|
||||
// First step compare it with 1 already and see if we can early out
|
||||
uint32_t One = 1;
|
||||
if (Event->Futex.compare_exchange_strong(One, 0)) {
|
||||
return;
|
||||
}
|
||||
|
||||
int Op = FUTEX_WAIT | FUTEX_PRIVATE_FLAG;
|
||||
int Res = syscall(SYS_futex,
|
||||
&Event->Futex,
|
||||
Op,
|
||||
nullptr, // Timeout
|
||||
nullptr, // Addr
|
||||
0);
|
||||
}
|
||||
}
|
||||
|
||||
static void NotifyWorkFunc(CrossArchEvent *Event) {
|
||||
uint32_t Zero = 0;
|
||||
if (Event->Futex.compare_exchange_strong(Zero, 1)) {
|
||||
int Op = FUTEX_WAKE | FUTEX_PRIVATE_FLAG;
|
||||
syscall(SYS_futex,
|
||||
&Event->Futex,
|
||||
Op,
|
||||
nullptr, // Timeout
|
||||
nullptr, // Addr
|
||||
0);
|
||||
}
|
||||
}
|
||||
|
||||
//class CrossArchEvent final {
|
||||
// private:
|
||||
// /**
|
||||
// * @brief Literally just an atomic bool that we are using for this class
|
||||
// */
|
||||
// class Flag final {
|
||||
// public:
|
||||
// bool TestAndSet(bool SetValue = true) {
|
||||
// bool Expected = !SetValue;
|
||||
// return Value.compare_exchange_strong(Expected, SetValue);
|
||||
// }
|
||||
//
|
||||
// bool TestAndClear() {
|
||||
// return TestAndSet(false);
|
||||
// }
|
||||
//
|
||||
// bool Get() {
|
||||
// return Value.load();
|
||||
// }
|
||||
//
|
||||
// private:
|
||||
// std::atomic_bool Value {false};
|
||||
// };
|
||||
//
|
||||
// public:
|
||||
// ~CrossArchEvent() {
|
||||
// NotifyAll();
|
||||
// }
|
||||
// void NotifyOne() {
|
||||
// if (FlagObject.TestAndSet()) {
|
||||
// std::lock_guard<std::mutex> lk(MutexObject);
|
||||
// CondObject.notify_one();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// void NotifyAll() {
|
||||
// if (FlagObject.TestAndSet()) {
|
||||
// std::lock_guard<std::mutex> lk(MutexObject);
|
||||
// CondObject.notify_all();
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// void Wait() {
|
||||
// // Have we signaled before we started waiting?
|
||||
// if (FlagObject.TestAndClear())
|
||||
// return;
|
||||
//
|
||||
// std::unique_lock<std::mutex> lk(MutexObject);
|
||||
// CondObject.wait(lk, [this]{ return FlagObject.TestAndClear(); });
|
||||
// }
|
||||
//
|
||||
// template<class Rep, class Period>
|
||||
// bool WaitFor(std::chrono::duration<Rep, Period> const& time) {
|
||||
// // Have we signaled before we started waiting?
|
||||
// if (FlagObject.TestAndClear())
|
||||
// return true;
|
||||
//
|
||||
// std::unique_lock<std::mutex> lk(MutexObject);
|
||||
// bool DidSignal = CondObject.wait_for(lk, time, [this]{ return FlagObject.TestAndClear(); });
|
||||
// return DidSignal;
|
||||
// }
|
||||
// void BusyWaitForWork() {
|
||||
// while (!FlagObject.Get());
|
||||
// }
|
||||
//
|
||||
// private:
|
||||
// std::mutex MutexObject;
|
||||
// std::condition_variable CondObject;
|
||||
// Flag FlagObject;
|
||||
//};
|
||||
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,139 @@
|
||||
/*
|
||||
$info$
|
||||
tags: thunklibs|xcb
|
||||
$end_info$
|
||||
*/
|
||||
|
||||
#include <chrono>
|
||||
#include <cstring>
|
||||
#include <malloc.h>
|
||||
#include <thread>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <syscall.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#include <xcb/xcb.h>
|
||||
#include <xcb/xcbext.h>
|
||||
|
||||
#include "common/CrossArchEvent.h"
|
||||
#include "common/Host.h"
|
||||
#include <dlfcn.h>
|
||||
#include <unordered_map>
|
||||
|
||||
using CBType = void (*)(void *closure);
|
||||
|
||||
#include "callback_structs.inl"
|
||||
#include "WorkEventData.h"
|
||||
#include "callback_typedefs.inl"
|
||||
|
||||
struct {
|
||||
#include "callback_unpacks_header.inl"
|
||||
} *callback_unpacks;
|
||||
|
||||
#include "ldr_ptrs.inl"
|
||||
#include "function_unpacks.inl"
|
||||
|
||||
struct xcb_take_socket_CB_args {
|
||||
xcb_connection_t * conn;
|
||||
CBType CBFunction;
|
||||
void *closure;
|
||||
};
|
||||
|
||||
CrossArchEvent *WaitForWork{};
|
||||
CrossArchEvent *WorkDone{};
|
||||
CBWork *Work{};
|
||||
|
||||
void fexfn_unpack_libxcb_FEX_xcb_init_extension(void *argsv);
|
||||
static std::unordered_map<xcb_connection_t*, xcb_take_socket_CB_args> CBArgs{};
|
||||
|
||||
void fexfn_unpack_libxcb_FEX_usable_size(void *argsv){
|
||||
struct arg_t {void* a_0;size_t rv;};
|
||||
auto args = (arg_t*)argsv;
|
||||
args->rv = malloc_usable_size(args->a_0);
|
||||
}
|
||||
|
||||
void fexfn_unpack_libxcb_FEX_free_on_host(void *argsv){
|
||||
struct arg_t {void* a_0;};
|
||||
auto args = (arg_t*)argsv;
|
||||
free(args->a_0);
|
||||
}
|
||||
|
||||
void fexfn_unpack_libxcb_FEX_GiveEvents(void *argsv){
|
||||
struct arg_t {
|
||||
CrossArchEvent *WaitForWork;
|
||||
CrossArchEvent *WorkDone;
|
||||
CBWork* Work;
|
||||
};
|
||||
|
||||
auto args = (arg_t*)argsv;
|
||||
WaitForWork = args->WaitForWork;
|
||||
WorkDone = args->WorkDone;
|
||||
Work = args->Work;
|
||||
}
|
||||
|
||||
static void xcb_take_socket_cb(void *closure) {
|
||||
xcb_take_socket_CB_args *Args = (xcb_take_socket_CB_args *)closure;
|
||||
|
||||
// Signalling to the guest thread like this allows us to call the callback function from any thread without
|
||||
// creating spurious thread objects inside of FEX
|
||||
Work->cb = (uintptr_t)Args->CBFunction;
|
||||
Work->argsv = Args->closure;
|
||||
// Tell the thread it has work
|
||||
NotifyWorkFunc(WaitForWork);
|
||||
// Wait for the work to be done
|
||||
WaitForWorkFunc(WorkDone);
|
||||
}
|
||||
|
||||
int fexfn_impl_libxcb_xcb_take_socket_internal(xcb_connection_t * a_0, CBType a_1, void * a_2, int a_3, uint64_t * a_4){
|
||||
xcb_take_socket_CB_args Args{};
|
||||
Args.conn = a_0;
|
||||
Args.CBFunction = a_1;
|
||||
Args.closure = a_2;
|
||||
|
||||
auto Res = CBArgs.insert_or_assign(a_0, Args);
|
||||
|
||||
return fexldr_ptr_libxcb_xcb_take_socket
|
||||
(a_0,
|
||||
xcb_take_socket_cb,
|
||||
&Res.first->second,
|
||||
a_3,
|
||||
a_4);
|
||||
}
|
||||
|
||||
static ExportEntry exports[] = {
|
||||
#include "tab_function_unpacks.inl"
|
||||
{ nullptr, nullptr }
|
||||
};
|
||||
|
||||
#include "ldr.inl"
|
||||
|
||||
void fexfn_unpack_libxcb_FEX_xcb_init_extension(void *argsv){
|
||||
struct arg_t {xcb_connection_t * a_0;xcb_extension_t * a_1;};
|
||||
auto args = (arg_t*)argsv;
|
||||
xcb_extension_t *ext{};
|
||||
|
||||
if (strcmp(args->a_1->name, "BIG-REQUESTS") == 0) {
|
||||
ext = (xcb_extension_t *)dlsym(fexldr_ptr_libxcb_so, "xcb_big_requests_id");
|
||||
}
|
||||
else if (strcmp(args->a_1->name, "XC-MISC") == 0) {
|
||||
ext = (xcb_extension_t *)dlsym(fexldr_ptr_libxcb_so, "xcb_xc_misc_id");
|
||||
}
|
||||
else {
|
||||
fprintf(stderr, "Unknown xcb extension '%s'\n", args->a_1->name);
|
||||
__builtin_trap();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ext) {
|
||||
fprintf(stderr, "Couldn't find extension symbol: '%s'\n", args->a_1->name);
|
||||
__builtin_trap();
|
||||
return;
|
||||
}
|
||||
auto res = fexldr_ptr_libxcb_xcb_get_extension_data(args->a_0, ext);
|
||||
|
||||
// Copy over the global id
|
||||
args->a_1->global_id = ext->global_id;
|
||||
}
|
||||
|
||||
EXPORTS_WITH_CALLBACKS(libxcb)
|
||||
Reference in new issue
Block a user