[Xcb] [PATCH] proto: experimental Xi and SELinux extensions

Eamon Walsh ewalsh at tycho.nsa.gov
Thu Dec 13 15:50:42 PST 2007


Barton C Massey wrote:
> In message <4759BE79.3050709 at tycho.nsa.gov> you wrote:
>   
>> I pushed the autotools patch.  I would like to push XInput and SELinux 
>> extensions upstream, disabled by default.  I am still testing XInput so 
>> I have marked it experimental in the configure option and pc.in file.  
>> Please consider for upstream, this is an important piece of the puzzle 
>> for people experimenting with SELinux support for X.
>>     
>
> We're excited to have them---thanks much!  I suspect Jamey
> or someone will want to review them carefully, but I don't
> see any reason why they shouldn't be in mainline soon.
>   

First round of testing xcb-xinput is done.  Found and fixed some bugs, 
please disregard the previous XInput xml patch.  All the structure 
sizes, structure field offsets and field sizes match with the X11 
inputproto (test output below).  Still need to verify the 
variable-length requests and replies, after which I will post another 
version of the patch.

Comparing 'xGetExtensionVersionReq' to 'xcb_input_get_extension_version_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	nbytes -> name_len
pass
Comparing 'xGetExtensionVersionReply' to 'xcb_input_get_extension_version_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	major_version -> server_major
	minor_version -> server_minor
	present -> present
pass
Comparing 'xListInputDevicesReq' to 'xcb_input_list_input_devices_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
pass
Comparing 'xListInputDevicesReply' to 'xcb_input_list_input_devices_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	ndevices -> devices_len
pass
Comparing 'xAnyClassInfo' to 'xcb_input_input_info_t':
	class -> class_id
	length -> len
pass
Comparing 'xDeviceInfo' to 'xcb_input_device_info_t':
	type -> device_type
	id -> device_id
	num_classes -> num_class_info
	use -> device_use
pass
Comparing 'xKeyInfo' to 'xcb_input_key_info_t':
	class -> class_id
	length -> len
	min_keycode -> min_keycode
	max_keycode -> max_keycode
	num_keys -> num_keys
pass
Comparing 'xButtonInfo' to 'xcb_input_button_info_t':
	class -> class_id
	length -> len
	num_buttons -> num_buttons
pass
Comparing 'xValuatorInfo' to 'xcb_input_valuator_info_t':
	class -> class_id
	length -> len
	num_axes -> axes_len
	mode -> mode
	motion_buffer_size -> motion_size
pass
Comparing 'xAxisInfo' to 'xcb_input_axis_info_t':
	resolution -> resolution
	min_value -> minimum
	max_value -> maximum
pass
Comparing 'xOpenDeviceReq' to 'xcb_input_open_device_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
pass
Comparing 'xOpenDeviceReply' to 'xcb_input_open_device_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	num_classes -> num_classes
pass
Comparing 'xInputClassInfo' to 'xcb_input_input_class_info_t':
	class -> _class
	event_type_base -> event_type_base
pass
Comparing 'xCloseDeviceReq' to 'xcb_input_close_device_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
pass
Comparing 'xSetDeviceModeReq' to 'xcb_input_set_device_mode_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
	mode -> mode
pass
Comparing 'xSetDeviceModeReply' to 'xcb_input_set_device_mode_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	status -> status
pass
Comparing 'xSelectExtensionEventReq' to 'xcb_input_select_extension_event_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	window -> window
	count -> num_classes
pass
Comparing 'xGetSelectedExtensionEventsReq' to 'xcb_input_get_selected_extension_events_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	window -> window
pass
Comparing 'xGetSelectedExtensionEventsReply' to 'xcb_input_get_selected_extension_events_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	this_client_count -> num_this_classes
	all_clients_count -> num_all_classes
pass
Comparing 'xChangeDeviceDontPropagateListReq' to 'xcb_input_change_device_dont_propagate_list_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	window -> window
	count -> num_classes
	mode -> mode
pass
Comparing 'xGetDeviceDontPropagateListReq' to 'xcb_input_get_device_dont_propagate_list_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	window -> window
pass
Comparing 'xGetDeviceDontPropagateListReply' to 'xcb_input_get_device_dont_propagate_list_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	count -> num_classes
pass
Comparing 'xGetDeviceMotionEventsReq' to 'xcb_input_get_device_motion_events_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	start -> start
	stop -> stop
	deviceid -> device_id
pass
Comparing 'xGetDeviceMotionEventsReply' to 'xcb_input_get_device_motion_events_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	nEvents -> num_coords
	axes -> num_axes
	mode -> device_mode
pass
Comparing 'xChangeKeyboardDeviceReq' to 'xcb_input_change_keyboard_device_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
pass
Comparing 'xChangeKeyboardDeviceReply' to 'xcb_input_change_keyboard_device_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	status -> status
pass
Comparing 'xChangePointerDeviceReq' to 'xcb_input_change_pointer_device_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	xaxis -> x_axis
	yaxis -> y_axis
	deviceid -> device_id
pass
Comparing 'xChangePointerDeviceReply' to 'xcb_input_change_pointer_device_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	status -> status
pass
Comparing 'xGrabDeviceReq' to 'xcb_input_grab_device_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	grabWindow -> grab_window
	time -> time
	event_count -> num_classes
	this_device_mode -> this_device_mode
	other_devices_mode -> other_device_mode
	ownerEvents -> owner_events
	deviceid -> device_id
pass
Comparing 'xGrabDeviceReply' to 'xcb_input_grab_device_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	status -> status
pass
Comparing 'xUngrabDeviceReq' to 'xcb_input_ungrab_device_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	time -> time
	deviceid -> device_id
pass
Comparing 'xGrabDeviceKeyReq' to 'xcb_input_grab_device_key_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	grabWindow -> grab_window
	event_count -> num_classes
	modifiers -> modifiers
	modifier_device -> modifier_device
	grabbed_device -> grabbed_device
	key -> key
	this_device_mode -> this_device_mode
	other_devices_mode -> other_device_mode
	ownerEvents -> owner_events
pass
Comparing 'xUngrabDeviceKeyReq' to 'xcb_input_ungrab_device_key_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	grabWindow -> grabWindow
	modifiers -> modifiers
	modifier_device -> modifier_device
	key -> key
	grabbed_device -> grabbed_device
pass
Comparing 'xGrabDeviceButtonReq' to 'xcb_input_grab_device_button_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	grabWindow -> grab_window
	grabbed_device -> grabbed_device
	modifier_device -> modifier_device
	event_count -> num_classes
	modifiers -> modifiers
	this_device_mode -> this_device_mode
	other_devices_mode -> other_device_mode
	button -> button
	ownerEvents -> owner_events
pass
Comparing 'xUngrabDeviceButtonReq' to 'xcb_input_ungrab_device_button_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	grabWindow -> grab_window
	modifiers -> modifiers
	modifier_device -> modifier_device
	button -> button
	grabbed_device -> grabbed_device
pass
Comparing 'xAllowDeviceEventsReq' to 'xcb_input_allow_device_events_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	time -> time
	mode -> mode
	deviceid -> device_id
pass
Comparing 'xGetDeviceFocusReq' to 'xcb_input_get_device_focus_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
pass
Comparing 'xGetDeviceFocusReply' to 'xcb_input_get_device_focus_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	focus -> focus
	time -> time
	revertTo -> revert_to
pass
Comparing 'xSetDeviceFocusReq' to 'xcb_input_set_device_focus_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	focus -> focus
	time -> time
	revertTo -> revert_to
	device -> device_id
pass
Comparing 'xGetFeedbackControlReq' to 'xcb_input_get_feedback_control_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
pass
Comparing 'xGetFeedbackControlReply' to 'xcb_input_get_feedback_control_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	num_feedbacks -> num_feedback
pass
Comparing 'xFeedbackState' to 'xcb_input_feedback_state_t':
	class -> class_id
	id -> id
	length -> len
pass
Comparing 'xKbdFeedbackState' to 'xcb_input_kbd_feedback_state_t':
	class -> class_id
	id -> id
	length -> len
	pitch -> pitch
	duration -> duration
	led_mask -> led_mask
	led_values -> led_values
	global_auto_repeat -> global_auto_repeat
	click -> click
	percent -> percent
	auto_repeats -> auto_repeats
pass
Comparing 'xPtrFeedbackState' to 'xcb_input_ptr_feedback_state_t':
	class -> class_id
	id -> id
	length -> len
	accelNum -> accel_num
	accelDenom -> accel_denom
	threshold -> threshold
pass
Comparing 'xIntegerFeedbackState' to 'xcb_input_integer_feedback_state_t':
	class -> class_id
	id -> id
	length -> len
	resolution -> resolution
	min_value -> min_value
	max_value -> max_value
pass
Comparing 'xStringFeedbackState' to 'xcb_input_string_feedback_state_t':
	class -> class_id
	id -> id
	length -> len
	max_symbols -> max_symbols
	num_syms_supported -> num_keysyms
pass
Comparing 'xBellFeedbackState' to 'xcb_input_bell_feedback_state_t':
	class -> class_id
	id -> id
	length -> len
	percent -> percent
	pitch -> pitch
	duration -> duration
pass
Comparing 'xLedFeedbackState' to 'xcb_input_led_feedback_state_t':
	class -> class_id
	id -> id
	length -> len
	led_mask -> led_mask
	led_values -> led_values
pass
Comparing 'xChangeFeedbackControlReq' to 'xcb_input_change_feedback_control_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	mask -> mask
	deviceid -> device_id
	feedbackid -> feedback_id
pass
Comparing 'xFeedbackCtl' to 'xcb_input_feedback_ctl_t':
	class -> class_id
	id -> id
	length -> len
pass
Comparing 'xKbdFeedbackCtl' to 'xcb_input_kbd_feedback_ctl_t':
	class -> class_id
	id -> id
	length -> len
	key -> key
	auto_repeat_mode -> auto_repeat_mode
	click -> key_click_percent
	percent -> bell_percent
	pitch -> bell_pitch
	duration -> bell_duration
	led_mask -> led_mask
	led_values -> led_values
pass
Comparing 'xPtrFeedbackCtl' to 'xcb_input_ptr_feedback_ctl_t':
	class -> class_id
	id -> id
	length -> len
	num -> num
	denom -> denom
	thresh -> threshold
pass
Comparing 'xIntegerFeedbackCtl' to 'xcb_input_integer_feedback_ctl_t':
	class -> class_id
	id -> id
	length -> len
	int_to_display -> int_to_display
pass
Comparing 'xStringFeedbackCtl' to 'xcb_input_string_feedback_ctl_t':
	class -> class_id
	id -> id
	length -> len
	num_keysyms -> num_keysyms
pass
Comparing 'xBellFeedbackCtl' to 'xcb_input_bell_feedback_ctl_t':
	class -> class_id
	id -> id
	length -> len
	percent -> percent
	pitch -> pitch
	duration -> duration
pass
Comparing 'xLedFeedbackCtl' to 'xcb_input_led_feedback_ctl_t':
	class -> class_id
	id -> id
	length -> len
	led_mask -> led_mask
	led_values -> led_values
pass
Comparing 'xGetDeviceKeyMappingReq' to 'xcb_input_get_device_key_mapping_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
	firstKeyCode -> first_keycode
	count -> count
pass
Comparing 'xGetDeviceKeyMappingReply' to 'xcb_input_get_device_key_mapping_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	keySymsPerKeyCode -> keysyms_per_keycode
pass
Comparing 'xChangeDeviceKeyMappingReq' to 'xcb_input_change_device_key_mapping_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
	firstKeyCode -> first_keycode
	keySymsPerKeyCode -> keysyms_per_keycode
	keyCodes -> keycode_count
pass
Comparing 'xGetDeviceModifierMappingReq' to 'xcb_input_get_device_modifier_mapping_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
pass
Comparing 'xGetDeviceModifierMappingReply' to 'xcb_input_get_device_modifier_mapping_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	numKeyPerModifier -> keycodes_per_modifier
pass
Comparing 'xSetDeviceModifierMappingReq' to 'xcb_input_set_device_modifier_mapping_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
	numKeyPerModifier -> keycodes_per_modifier
pass
Comparing 'xSetDeviceModifierMappingReply' to 'xcb_input_set_device_modifier_mapping_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	success -> status
pass
Comparing 'xGetDeviceButtonMappingReq' to 'xcb_input_get_device_button_mapping_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
pass
Comparing 'xGetDeviceButtonMappingReply' to 'xcb_input_get_device_button_mapping_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	nElts -> map_size
pass
Comparing 'xSetDeviceButtonMappingReq' to 'xcb_input_set_device_button_mapping_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
	map_length -> map_size
pass
Comparing 'xSetDeviceButtonMappingReply' to 'xcb_input_set_device_button_mapping_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	status -> status
pass
Comparing 'xQueryDeviceStateReq' to 'xcb_input_query_device_state_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
pass
Comparing 'xQueryDeviceStateReply' to 'xcb_input_query_device_state_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	num_classes -> num_classes
pass
Comparing 'xKeyState' to 'xcb_input_key_state_t':
	class -> class_id
	length -> len
	num_keys -> num_keys
	keys -> keys
pass
Comparing 'xButtonState' to 'xcb_input_button_state_t':
	class -> class_id
	length -> len
	num_buttons -> num_buttons
	buttons -> buttons
pass
Comparing 'xValuatorState' to 'xcb_input_valuator_state_t':
	class -> class_id
	length -> len
	num_valuators -> num_valuators
	mode -> mode
pass
Comparing 'xSendExtensionEventReq' to 'xcb_input_send_extension_event_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	destination -> destination
	deviceid -> device_id
	propagate -> propagate
	count -> num_classes
	num_events -> num_events
pass
Comparing 'xDeviceBellReq' to 'xcb_input_device_bell_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
	feedbackid -> feedback_id
	feedbackclass -> feedback_class
	percent -> percent
pass
Comparing 'xSetDeviceValuatorsReq' to 'xcb_input_set_device_valuators_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	deviceid -> device_id
	first_valuator -> first_valuator
	num_valuators -> num_valuators
pass
Comparing 'xSetDeviceValuatorsReply' to 'xcb_input_set_device_valuators_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	status -> status
pass
Comparing 'xGetDeviceControlReq' to 'xcb_input_get_device_control_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	control -> control_id
	deviceid -> device_id
pass
Comparing 'xGetDeviceControlReply' to 'xcb_input_get_device_control_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	status -> status
pass
Comparing 'xDeviceState' to 'xcb_input_device_state_t':
	control -> control_id
	length -> len
pass
Comparing 'xDeviceResolutionState' to 'xcb_input_device_resolution_state_t':
	control -> control_id
	length -> len
	num_valuators -> num_valuators
pass
Comparing 'xDeviceAbsCalibState' to 'xcb_input_device_abs_calib_state_t':
	control -> control_id
	length -> len
	min_x -> min_x
	max_x -> max_x
	min_y -> min_y
	max_y -> max_y
	flip_x -> flip_x
	flip_y -> flip_y
	rotation -> rotation
	button_threshold -> button_threshold
pass
Comparing 'xDeviceAbsAreaState' to 'xcb_input_device_abs_area_state_t':
	control -> control_id
	length -> len
	offset_x -> offset_x
	offset_y -> offset_y
	width -> width
	height -> height
	screen -> screen
	following -> following
pass
Comparing 'xDeviceCoreState' to 'xcb_input_device_core_state_t':
	control -> control_id
	length -> len
	status -> status
	iscore -> iscore
pass
Comparing 'xDeviceEnableState' to 'xcb_input_device_enable_state_t':
	control -> control_id
	length -> len
	enable -> enable
pass
Comparing 'xChangeDeviceControlReq' to 'xcb_input_change_device_control_request_t':
	reqType -> major_opcode
	ReqType -> minor_opcode
	length -> length
	control -> control_id
	deviceid -> device_id
pass
Comparing 'xChangeDeviceControlReply' to 'xcb_input_change_device_control_reply_t':
	repType -> response_type
	sequenceNumber -> sequence
	length -> length
	status -> status
pass
Comparing 'xDeviceCtl' to 'xcb_input_device_ctl_t':
	control -> control_id
	length -> len
pass
Comparing 'xDeviceResolutionCtl' to 'xcb_input_device_resolution_ctl_t':
	control -> control_id
	length -> len
	first_valuator -> first_valuator
	num_valuators -> num_valuators
pass
Comparing 'xDeviceAbsCalibCtl' to 'xcb_input_device_abs_calib_ctl_t':
	control -> control_id
	length -> len
	min_x -> min_x
	max_x -> max_x
	min_y -> min_y
	max_y -> max_y
	flip_x -> flip_x
	flip_y -> flip_y
	rotation -> rotation
	button_threshold -> button_threshold
pass
Comparing 'xDeviceAbsAreaCtl' to 'xcb_input_device_abs_area_ctrl_t':
	control -> control_id
	length -> len
	offset_x -> offset_x
	offset_y -> offset_y
	width -> width
	height -> height
	screen -> screen
	following -> following
pass
Comparing 'xDeviceCoreCtl' to 'xcb_input_device_core_ctrl_t':
	control -> control_id
	length -> len
	status -> status
pass
Comparing 'xDeviceEnableCtl' to 'xcb_input_device_enable_ctrl_t':
	control -> control_id
	length -> len
	enable -> enable
pass
Comparing 'deviceValuator' to 'xcb_input_device_valuator_event_t':
	type -> response_type
	deviceid -> device_id
	sequenceNumber -> sequence
	device_state -> device_state
	num_valuators -> num_valuators
	first_valuator -> first_valuator
	valuators -> valuators
pass
Comparing 'deviceKeyButtonPointer' to 'xcb_input_device_key_press_event_t':
	type -> response_type
	detail -> detail
	sequenceNumber -> sequence
	time -> time
	root -> root
	event -> event
	child -> child
	root_x -> root_x
	root_y -> root_y
	event_x -> event_x
	event_y -> event_y
	state -> state
	same_screen -> same_screen
	deviceid -> device_id
pass
Comparing 'deviceFocus' to 'xcb_input_focus_in_event_t':
	type -> response_type
	detail -> detail
	sequenceNumber -> sequence
	time -> time
	window -> window
	mode -> mode
	deviceid -> device_id
pass
Comparing 'deviceStateNotify' to 'xcb_input_device_state_notify_event_t':
	type -> response_type
	deviceid -> device_id
	sequenceNumber -> sequence
	time -> time
	num_keys -> num_keys
	num_buttons -> num_buttons
	num_valuators -> num_valuators
	classes_reported -> classes_reported
	buttons -> buttons
	keys -> keys
	valuators -> valuators
pass
Comparing 'deviceKeyStateNotify' to 'xcb_input_device_key_state_notify_event_t':
	type -> response_type
	deviceid -> device_id
	sequenceNumber -> sequence
	keys -> keys
pass
Comparing 'deviceButtonStateNotify' to 'xcb_input_device_button_state_notify_event_t':
	type -> response_type
	deviceid -> device_id
	sequenceNumber -> sequence
	buttons -> buttons
pass
Comparing 'deviceMappingNotify' to 'xcb_input_device_mapping_notify_event_t':
	type -> response_type
	deviceid -> device_id
	sequenceNumber -> sequence
	request -> request
	firstKeyCode -> first_keycode
	count -> count
	time -> time
pass
Comparing 'changeDeviceNotify' to 'xcb_input_change_device_notify_event_t':
	type -> response_type
	deviceid -> device_id
	sequenceNumber -> sequence
	time -> time
	request -> request
pass
Comparing 'devicePresenceNotify' to 'xcb_input_device_presence_notify_event_t':
	type -> response_type
	sequenceNumber -> sequence
	time -> time
	devchange -> devchange
	deviceid -> device_id
	control -> control
pass




-- 
Eamon Walsh <ewalsh at tycho.nsa.gov>
National Security Agency



More information about the Xcb mailing list