1
0
Fork 0
forked from wry/wry

autocommit 2022-03-22 23:24:17 CET

This commit is contained in:
Julian Orth 2022-03-22 23:24:17 +01:00
parent 18806a38fb
commit 2ff60ff817
36 changed files with 4934 additions and 237 deletions

31
wire-xcon/dri3.txt Normal file
View file

@ -0,0 +1,31 @@
ext "DRI3"
request Dri3QueryVersion = 0 (
major_version: u32,
minor_version: u32,
) {
@pad 1,
major_version: u32,
minor_version: u32,
}
request Dri3Open = 1 (
drawable: u32,
provider: u32,
) {
@pad 1,
device_fd: fd,
@pad 24,
}
request Dri3PixmapFromBuffer = 2 (
pixmap: u32,
drawable: u32,
size: u32,
width: u16,
height: u16,
stride: u16,
depth: u8,
bpp: u8,
pixmap_fd: fd,
);

59
wire-xcon/present.txt Normal file
View file

@ -0,0 +1,59 @@
ext "Present"
xge PresentCompleteNotify = 1 {
kind: u8,
mode: u8,
event: u32,
window: u32,
serial: u32,
ust: u64,
msc: u64,
}
struct PresentNotify {
window: u32,
serial: u32,
}
xge PresentIdleNotify = 2 {
@pad 2,
event: u32,
window: u32,
serial: u32,
pixmap: u32,
idle_fence: u32,
}
request PresentQueryVersion = 0 (
major_version: u32,
minor_version: u32,
) {
@pad 1,
major_version: u32,
minor_version: u32,
}
request PresentPixmap = 1 (
window: u32,
pixmap: u32,
serial: u32,
valid: u32,
update: u32,
x_off: i16,
y_off: i16,
target_crtc: u32,
wait_fence: u32,
idle_fence: u32,
options: u32,
@pad 4,
target_msc: u64,
divisor: u64,
remainder: u64,
notifies: list(PresentNotify),
);
request PresentSelectInput = 3 (
eid: u32,
window: u32,
event_mask: u32,
);

214
wire-xcon/xinput.txt Normal file
View file

@ -0,0 +1,214 @@
ext "XInputExtension"
struct XiModifierInfo {
base: u32,
latched: u32,
locked: u32,
effective: u32,
}
struct XiGroupInfo {
base: u8,
latched: u8,
locked: u8,
effective: u8,
}
xge XiKeyPress = 2 {
deviceid: u16,
time: u32,
detail: u32,
root: u32,
event: u32,
child: u32,
root_x: i32,
root_y: i32,
event_x: i32,
event_y: i32,
buttons_len: u16 = len(button_mask),
valuators_len: u16 = len(valuator_mask),
sourceid: u16,
@pad 2,
flags: u32,
mods: XiModifierInfo,
groups: XiGroupInfo,
button_mask: list(u32, field(buttons_len)),
valuator_mask: list(u32, field(valuators_len)),
axisvalues: list(u32, mul(sum(map(iter(field(valuator_mask)), popcount(it))), literal(2))),
}
eventcopy XiKeyRelease = 3 = XiKeyPress;
eventcopy XiButtonPress = 4 = XiKeyPress;
eventcopy XiButtonRelease = 5 = XiKeyPress;
eventcopy XiMotion = 6 = XiKeyPress;
xge XiEnter = 7 {
deviceid: u16,
time: u32,
sourceid: u16,
mode: u8,
detail: u8,
root: u32,
event: u32,
child: u32,
root_x: i32,
root_y: i32,
event_x: i32,
event_y: i32,
same_screen: u8,
focus: u8,
buttons_len: u16 = len(buttons),
buttons: list(u32, field(buttons_len)),
}
struct XiHierarchyInfo {
deviceid: u16,
attachment: u16,
ty: u8,
enabled: u8,
@pad 2,
flags: u32,
}
xge XiHierarchy = 11 {
deviceid: u16,
time: u32,
flags: u32,
num_infos: u16 = len(infos),
@pad 10,
infos: list(XiHierarchyInfo, field(num_infos)),
}
request XiQueryVersion = 47 (
major_version: u16,
minor_version: u16,
) {
@pad 1,
major_version: u16,
minor_version: u16,
@pad 20,
}
struct XiEventMask {
deviceid: u16,
mask_len: u16 = len(mask),
mask: list(u32, field(mask_len)),
}
request XiSelectEvents = 46 (
window: u32,
num_mask: u16 = len(masks),
@pad 2,
masks: list(XiEventMask, field(num_mask)),
);
struct XiDeviceClassKey {
num_keys: u16 = len(keys),
keys: list(u32, field(num_keys)),
}
struct XiDeviceClassButton {
num_buttons: u16 = len(labels),
state: list(u32, div(plus(field(num_buttons), literal(31)), literal(32))),
labels: list(u32, field(num_buttons)),
}
struct XiDeviceClassValuator {
number: u16,
label: u32,
min_int: i32,
min_frac: u32,
max_int: i32,
max_frac: u32,
value_int: i32,
value_frac: u32,
resolution: u32,
mode: u8,
@pad 3,
}
struct XiDeviceClassScroll {
number: u16,
scroll_type: u16,
@pad 2,
flags: u32,
increment_int: i32,
increment_frac: u32,
}
struct XiDeviceClassTouch {
mode: u8,
num_touches: u8,
}
enum XiDeviceClassType {
Key: XiDeviceClassKey = 0,
Button: XiDeviceClassButton = 1,
Valuator: XiDeviceClassValuator = 2,
Scroll: XiDeviceClassScroll = 3,
Touch: XiDeviceClassTouch = 8,
}
struct XiDeviceClass {
ty: u16 = variant(data),
len: u16,
sourceid: u16,
data: enum(XiDeviceClassType, field(ty)),
}
struct XiDeviceInfo {
deviceid: u16,
ty: u16,
attachment: u16,
num_classes: u16 = len(classes),
name_len: u16 = len(name),
enabled: u8,
@pad 1,
name: str(field(name_len)),
@align 4,
classes: list(XiDeviceClass, field(num_classes)),
}
request XiQueryDevice = 48 (
deviceid: u16,
@pad 2,
) {
@pad 1,
num_infos: u16 = len(infos),
@pad 22,
infos: list(XiDeviceInfo, field(num_infos)),
}
request XiGetDeviceButtonMapping = 28 (
device_id: u8,
@pad 3,
) {
xi_reply_type: u8,
map_size: u8 = len(map),
@pad 23,
map: list(u8, field(map_size)),
@align 4,
}
request XiGrabDevice = 51 (
window: u32,
time: u32,
cursor: u32,
deviceid: u16,
mode: u8,
paired_device_mode: u8,
owner_events: u8,
@pad 1,
mask_len: u16 = len(mask),
mask: list(u32, field(mask_len)),
) {
@pad 1,
status: u8,
@pad 23,
}
request XiUngrabDevice = 52 (
time: u32,
deviceid: u16,
@pad 2,
);

28
wire-xcon/xkb.txt Normal file
View file

@ -0,0 +1,28 @@
ext "XKEYBOARD"
request XkbUseExtension = 0 (
wanted_major: u16,
wanted_minor: u16,
) {
supported: u8,
server_major: u16,
server_minor: u16,
@pad 20,
}
request XkbPerClientFlags = 21 (
device_spec: u16,
@pad 2,
change: u32,
value: u32,
ctrls_to_change: u32,
auto_ctrls: u32,
auto_ctrls_values: u32,
) {
device_id: u8,
supported: u32,
value: u32,
auto_ctrls: u32,
auto_ctrls_values: u32,
@pad 8,
}

264
wire-xcon/xproto.txt Normal file
View file

@ -0,0 +1,264 @@
struct Format {
depth: u8,
bits_per_pixel: u8,
scanline_pad: u8,
@pad 5,
}
struct Visualtype {
visual_id: u32,
class: u8,
bits_per_rgb_value: u8,
colormap_entries: u16,
red_mask: u32,
green_mask: u32,
blue_mask: u32,
@pad 4,
}
struct Depth {
depth: u8,
@pad 1,
num_visualtypes: u16 = len(visuals),
@pad 4,
visuals: list(Visualtype, field(num_visualtypes)),
}
struct Screen {
root: u32,
default_colormap: u32,
white_pixel: u32,
black_pixel: u32,
input_mask: u32,
width: u16,
height: u16,
width_mm: u16,
height_mm: u16,
min_maps: u16,
max_maps: u16,
root_visual: u32,
backing_stores: u8,
save_unders: u8,
root_depth: u8,
number_of_depths: u8 = len(allowed_depths),
allowed_depths: list(Depth, field(number_of_depths)),
}
struct Setup {
success: u8 = literal(1),
@pad 1,
protocol_major: u16,
protocol_minor: u16,
additional_data: u16,
release_number: u32,
resource_id_base: u32,
resource_id_mask: u32,
motion_buffer_size: u32,
vendor_len: u16 = len(vendor),
max_request_length: u16,
number_of_screens: u8 = len(screens),
number_of_formats: u8 = len(formats),
image_byte_order: u8,
bitmap_format_bit_order: u8,
bitmap_format_scanline_unit: u8,
bitmap_format_scanline_pad: u8,
min_keycode: u8,
max_keycode: u8,
@pad 4,
vendor: str(field(vendor_len)),
@align 4,
formats: list(Format, field(number_of_formats)),
screens: list(Screen, field(number_of_screens)),
}
struct Str {
len: u8 = len(val),
val: str(field(len)),
}
request ListExtensions = 99 () {
names_len: u8 = len(names),
@pad 24,
names: list(Str, field(names_len)),
}
request GetInputFocus = 43 () {
revert_to: u8,
focus: u32,
}
request QueryExtension = 98 (
@pad 1,
name_len: u16 = len(name),
@pad 2,
name: str(field(name_len)),
@align 4,
) {
@pad 1,
present: u8,
major_opcode: u8,
first_event: u8,
first_error: u8,
}
bitmask CreateWindowValues {
background_pixmap: u32 = 0,
background_pixel: u32 = 1,
border_pixmap: u32 = 2,
border_pixel: u32 = 3,
bit_gravity: u32 = 4,
win_gravity: u32 = 5,
backing_store: u32 = 6,
backing_planes: u32 = 7,
backing_pixel: u32 = 8,
override_redirect: u32 = 9,
save_under: u32 = 10,
event_mask: u32 = 11,
do_not_propagate_mask: u32 = 12,
colormap: u32 = 13,
cursor: u32 = 14,
}
request CreateWindow = 1 (
depth: u8,
wid: u32,
parent: u32,
x: i16,
y: i16,
width: u16,
height: u16,
border_width: u16,
class: u16,
visual: u32,
value_mask: u32 = bitmask(values),
values: bitmask(CreateWindowValues, field(value_mask)),
);
request ChangeWindowAttributes = 2 (
@pad 1,
window: u32,
value_mask: u32 = bitmask(values),
values: bitmask(CreateWindowValues, field(value_mask)),
);
request DestroyWindow = 4 (
@pad 1,
window: u32,
);
request MapWindow = 8 (
@pad 1,
window: u32,
);
event DestroyNotify = 17 {
@pad 1,
event: u32,
window: u32,
}
event ConfigureNotify = 22 {
@pad 1,
event: u32,
window: u32,
above_sibling: u32,
x: i16,
y: i16,
width: u16,
height: u16,
border_width: u16,
override_redirect: u8,
@pad 1,
}
request CreatePixmap = 53 (
depth: u8,
pid: u32,
drawable: u32,
width: u16,
height: u16,
);
request FreePixmap = 54 (
@pad 1,
pixmap: u32,
);
bitmask GC {
function: u32 = 0,
plane_mask: u32 = 1,
foreground: u32 = 2,
background: u32 = 3,
line_width: u32 = 4,
line_style: u32 = 5,
cap_style: u32 = 6,
join_style: u32 = 7,
fill_style: u32 = 8,
fill_rule: u32 = 9,
tile: u32 = 10,
stipple: u32 = 11,
tile_stipple_x_origin: u32 = 12,
tile_stipple_y_origin: u32 = 13,
font: u32 = 14,
subwindow_mode: u32 = 15,
graphics_exposures: u32 = 16,
clip_x_origin: u32 = 17,
clip_y_origin: u32 = 18,
clip_mask: u32 = 19,
dash_offset: u32 = 20,
dashes: u32 = 21,
arc_mode: u32 = 22,
}
request CreateGC = 55 (
@pad 1,
cid: u32,
drawable: u32,
value_mask: u32 = bitmask(values),
values: bitmask(GC, field(value_mask)),
);
request FreeGC = 60 (
@pad 1,
gc: u32,
);
request PutImage = 72 (
format: u8,
drawable: u32,
gc: u32,
width: u16,
height: u16,
dst_x: i16,
dst_y: i16,
left_pad: u8,
depth: u8,
@pad 2,
data: list(u8),
);
request CreateCursor = 93 (
@pad 1,
cid: u32,
source: u32,
mask: u32,
fore_red: u16,
fore_green: u16,
fore_blue: u16,
back_red: u16,
back_green: u16,
back_blue: u16,
x: u16,
y: u16,
);
request ChangeProperty = 18 (
mode: u8,
window: u32,
property: u32,
ty: u32,
format: u8,
@pad 3,
data_len: u32 = div(mul(len(data), literal(8)), field(format)),
data: list(u8, mul(field(data_len), div(field(format), literal(8)))),
);