[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