Commit Graph

993 Commits

Author SHA1 Message Date
Enrico Weigelt, metux IT consult 019b229dc4 (!1799) xkb: move XkbSLI_IsDefault() and XkbSLI_HasOwnState() into private header
These macros aren't used by any drivers, so no need to keep them exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:35:03 +02:00
Enrico Weigelt, metux IT consult 9f09030b77 (1613) Xi: use static reply struct init on declaration
Make the code a bit easier to read by using initialization of the reply
structs, at the point of declaration. Most of them aren't written to later,
just passed into WriteReplyToClient(). Also dropping some useless zero
assignments (struct initializers automatically zero-out unmentioned fields).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:35:01 +02:00
Enrico Weigelt, metux IT consult c13fca95ad (1613) Xi: simplify dispatcher
The dispatcher functions are much more complex than they're usually are
(just switch/case statement). Bring them in line with the standard scheme
used in the Xserver, so further steps become easier.

It's also much cleaner to use the defines from proto headers instead of
raw numbers.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:35:01 +02:00
Enrico Weigelt, metux IT consult d33ad18b3a (1823) xi: protect from allocation failure
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:59 +02:00
Enrico Weigelt, metux IT consult caf78ba798 (1823) xi: replace xallocarray() by calloc()
Only key difference that calloc(), in contrast to rellocarray(),
is zero-initializing. The overhead is hard to measure on today's
machines, and it's safer programming practise to always allocate
zero-initialized, so one can't forget to do it explicitly.

Cocci rule:

    @@
    expression COUNT;
    expression LEN;
    @@
    - xallocarray(COUNT,LEN)
    + calloc(COUNT,LEN)

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:59 +02:00
Enrico Weigelt, metux IT consult 669b0a2303 (1829) Xi: clean up including panoramix headers
* use their actual path instead of relying this to be in compiler's
  include path list.
* no need to do it only conditionally, no #ifdef needed

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:58 +02:00
Enrico Weigelt, metux IT consult 4100f0f6d4 (1880) Xi: use fixed define for extenion base opcode
Several places outside Xi (eg. dix, security hooks, ...) need to know the
actual XI base opcode. This formerly had been done by a global variable,
which is filled on XI init. This has some drawbacks, eg. requires that
XI really is initialized before anybody else attempting to access this
variable - changes in extension init order could be dangerous.

Since extension opcodes are now (compile-time) fixed for all known
extensions (including XI), this isn't needed anymore. We can really
rely on the XI extension always having the same opcode base. So we
can drop that variable entirely and use the corresponding define instead.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:57 +02:00
Enrico Weigelt, metux IT consult 9e0f147503 (1886) XI: drop now obsolete SReplyIDispatch()
nothing else to do for it anymore, since all previous callers now have been
migrated to do the byte-swapping directly, so it can be dropped entirely.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult d9540820cc (1886) XI: directly write out X_XIGetFocus reply
Write out the X_XIGetFocus reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 5ffb9fee64 (1886) XI: directly write out X_XIGetSelectedEvents reply
Write out the X_XIGetSelectedEvents reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult d2b0f4a564 (1886) XI: directly write out X_XIGetProperty reply
Write out the X_XIGetProperty reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 621eaf912f (1886) XI: directly write out X_XIListProperties reply
Write out the X_XIListProperties reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 0dd03a9ac9 (1886) XI: directly write out X_XIPassiveGrabDevice reply
Write out the X_XIPassiveGrabDevice reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 65f441a86b (1886) XI: directly write out X_XIGrabDevice reply
Write out the X_XIGrabDevice reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult fb54768894 (1886) XI: directly write out X_XIQueryDevice reply
Write out the X_XIQueryDevice  reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult cfb90b260c (1886) XI: directly write out X_XIQueryVersion reply
Write out the X_XIQueryVersion reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 95a990b51a (1886) XI: directly write out X_XIGetClientPointer reply
Write out the X_XIGetClientPointer reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult c9ed772f92 (1886) XI: directly write out X_XIQueryPointer reply
Write out the X_XIQueryPointer reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 057d153ac5 (1886) XI: directly write out X_GetDeviceProperty reply
Write out the X_GetDeviceProperty reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 8b0c28d8c3 (1886) XI: directly write out X_ListDeviceProperties reply
Write out the X_ListDeviceProperties reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 5581b5c8a4 (1886) XI: directly write out X_ChangeDeviceControl reply
Write out the X_ChangeDeviceControl reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 5772b76820 (1886) XI: directly write out X_GetDeviceControl reply
Write out the X_GetDeviceControl reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 24c24a480c (1886) XI: directly write out X_SetDeviceValuators reply
Write out the X_SetDeviceValuators reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult bfd41c4495 (1886) XI: directly write out X_QueryDeviceState reply
Write out the X_QueryDeviceState reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult f7550d40ae (1886) XI: directly write out X_SetDeviceButtonMapping reply
Write out the X_SetDeviceButtonMapping reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult aa198e68bd (1886) XI: directly write out X_GetDeviceButtonMapping reply
Write out the X_GetDeviceButtonMapping reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 83d249cafc (1886) XI: directly write out X_SetDeviceModifierMapping reply
Write out X_SetDeviceModifierMapping the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 2d53802a27 (1886) XI: directly write out X_GetDeviceModifierMapping reply
Write out X_GetDeviceModifierMapping the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult a3a1a5fe16 (1886) XI: directly write out X_GetDeviceKeyMapping reply
Write out X_GetDeviceKeyMapping the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 135ae40dcd (1886) XI: directly write out X_GetFeedbackControl reply
Write out X_GetFeedbackControl the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 0b311fc264 (1886) XI: directly write out X_GetDeviceFocus reply
Write out X_GetDeviceFocus the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 883a5c2305 (1886) XI: directly write out X_GrabDevice reply
Write out X_GrabDevice the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 9accc18722 (1886) XI: directly write out X_GetDeviceMotionEvents reply
Write out X_GetDeviceMotionEvents the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult db6fda1537 (1886) Xi: declare variables where needed in ProcXGetDeviceMotionEvents()
Improve code readability by moving variable declarations to where
they're actually needed.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult 417b860a34 (1886) XI: drop extra temp variable in ProcXGetDeviceMotionEvents()
The value is only checked once, so no need to copy it to a temporary
variable first.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult cb8df6ac88 (1886) XI: use SwapLongs() in ProcXGetDeviceMotionEvents()
We already have a standard function for swapping 32 bit ints,
so let's use this one instead of rolling our own loop.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult f2c57ea738 (1886) XI: directly write out X_GetDeviceDontPropagateList reply
Write out X_GetDeviceDontPropagateList the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult ae03ac3f75 (1886) XI: directly write out X_GetSelectedExtensionEvents reply
Write out X_GetSelectedExtensionEvents the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:56 +02:00
Enrico Weigelt, metux IT consult ca39ec8173 (1886) XI: directly write out X_SetDeviceMode reply
Write out X_SetDeviceMode the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:55 +02:00
Enrico Weigelt, metux IT consult e7f3a81d45 (1886) XI: directly write out X_OpenDevice reply
Write out X_OpenDevice the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:55 +02:00
Enrico Weigelt, metux IT consult f883454de3 (1886) XI: directly write out X_ListInputDevices reply
Write out X_ListInputDevices the reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:55 +02:00
Enrico Weigelt, metux IT consult 34861e1053 (1886) XI: directly write out X_GetExtensionVersion reply
Write out the X_GetExtensionVersion reply directly (and do the swapping
within the request handler) instead of going through separate callback
that's having demux the replies again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:55 +02:00
Enrico Weigelt, metux IT consult d29d9358de (1886) XI: canonicalize reply struct declarations and naming
* name all of them "rep", as throughout most of the Xserver codebase
* always declare them where initialized

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:55 +02:00
Enrico Weigelt, metux IT consult 037c5a5e36 (1886) dix: let change_modmap() return BadValue instead of -1
The function returns X result codes, but -1 isn't a valid value here.
Therefore all callers explicitly translate -1 to BadValue, so we can return
that directly instead of -1.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:55 +02:00
Enrico Weigelt, metux IT consult 5d143cf0d5 (!1899) dix: make SameClient() macro private
Not used in any external modules, so need to keep it public.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:53 +02:00
Enrico Weigelt, metux IT consult 39a1274411 (!1899) dix: let CreateGrab operate on ClientPtr instead of array index
Almost all callers have ClientPtr anyways, so we're just doing duplicate
array lookups. Just using ClientPtr directly is easier anyways.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:53 +02:00
Enrico Weigelt, metux IT consult e20bf7d26a (!1899) dix: replace CLIENT_ID() macro by dixClientIdForXID() inline function
Make it type-safe and a bit more obvious what it really does,
also adding some inline documentation. Since it's just some
bit shifting magic, it's qualified for inlining.

The CLIENT_ID() macro isn't used by any external modules, so the
new function doesn't need to be in a public header.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:53 +02:00
Enrico Weigelt, metux IT consult cd454c6b2d (!1899) dix: add dixClientForOtherClients()
Helper function for retrieving the owning client of an OtherClients.

It's an actual function, so callers don't need access to internal
knowledge (definition of struct _OtherClients, clients[] array, ...)

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:53 +02:00
Enrico Weigelt, metux IT consult 3c0482df81 (!1899) dix: add dixClientForInputClients()
Helper function for retrieving the owning client of an InputClients.

It's an actual function, so callers don't need access to internal
knowledge (definition of struct _InputClients, clients[] array, ...)

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:53 +02:00
Enrico Weigelt, metux IT consult c6a21803f6 (!1899) dix: add dixClientForGrab()
Helper function for retrieving the owning client of a grab.

It's an actual function, so callers don't need access to internal
knowledge (definition of GrabRec, clients[] array, ...)

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-05-22 17:34:52 +02:00