Commit graph xserver/dix/dispatch.c
Author SHA1 Message Date
Enrico Weigelt, metux IT consult
39c46dc064 Xext: panoramix: add PanoramiXIsMasterScreen() / PanoramiXIsSlaveScreen()
Adding inline helper functions for detection of whether a given Screen
is a master or slave screen.

With PanoramiX enabled, the first one (->myNum == 0) is considered the
master, while the others are slaves. When disabled, all screens are
considered master.

That's allowing us to move some more implementation detail logic out of
DDX/DIX into the extension code and get rid of some ifdef's.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-10-19 13:05:48 +02:00
Mason Green
a3510aa9c0 dix: dispatch: return DestroySubwindows() errors from ProcDestroySubwindows
ProcDestroySubwindows() ignored the result of DestroySubwindows() and
always replied Success. When an XACE hook denies destroying a child,
DestroySubwindows() stops there and returns the error, but the client
was told the request succeeded while some children were left in place.

Return the result instead. This also lets PanoramiXDestroySubwindows()
stop at the first failing screen, which it already checks for.

Signed-off-by: Mason Green <mason@greenm01.net>
2026-10-13 10:39:14 +02:00
Mason Green
75f6bb8673 dix: dispatch: clear the client slot when NextAvailableClient() fails
NextAvailableClient() stores the new client in clients[i] before
InitClientResources() and InsertFakeRequest(). If either fails, the
client is freed but clients[i] still points at it.

When i is a free slot below currentMaxClients, the next incoming
connection reaches EstablishNewConnections(), which walks
clients[1..currentMaxClients) and dereferences the freed client.

Clear clients[i] on both failure paths before freeing.

Signed-off-by: Mason Green <mason@greenm01.net>
2026-10-12 19:37:41 +02:00
Enrico Weigelt, metux IT consult
0003a7180c xfixes: implement 6.1: forced server shutdown on client disconnect
XFixes 6.1 adds a new feature where individual client can demand immediate
server shutdown when it disconnects: the client can set a special flag via
X_XFixesGetClientDisconnectMode request - when it's set and that client
terminates, the server stops event delivery and shuts down immediately.

It's is mainly a security feature for screen lockers: without it, crashing
screen locker leading to the whole session becoming unlocked. This is now
prevented by immediately killing the xserver, so no unauthorized access
to the session is possible anymore.

Another practical use case is when some critical applications must be present
(eg. in certain control centers), and a crash of those should trigger to
immediate fault state or session restart.

For now, the feature can only be enabled explicitly in the xfree86 DDX,
via the AllowForceTerminate boolean config file option. Not enabled at all
on other DDX'es yet.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-29 12:23:40 +02:00
Enrico Weigelt, metux IT consult
322305bfe6 Xext: panoramix: inline CreateConnectionBlock()
inline CreateConnectionBlock() into PanoramiXCreateConnectionBlock(),
in order to make future refactoring a bit easier. Further steps will
refactor the function to just return the buffer instead of setting
global variables.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-25 22:42:03 +02:00
Enrico Weigelt, metux IT consult
0992676c3e dix: dispatch: make temporary copy of connection info block
We have to patch up the connection info block with per-client specific
data. Instead of patching up a global buffer, do this in a safe copy.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-25 20:27:43 +02:00
Enrico Weigelt, metux IT consult
c7e58d2f85 dix: move over CreateConnectionBlock() to connsetup.c
Consolidating connection block handling in that source file.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-25 18:42:41 +02:00
Enrico Weigelt, metux IT consult
acaf7612f9 dix: dispatch: drop ancient unused MATCH_CLIENT_ENDIAN code path
These haven't been active for decades now, so no need to keep them.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-25 18:41:54 +02:00
Enrico Weigelt, metux IT consult
97b75e833b dix: factor out building connection info block
Factor out the actual rendering to a separate function, which now just
returns x_rpcbuf_t, not directly updating global ConnectionInfo field
(that's left to the caller).

In later iterations, we then could easily generate a new connection info
block per client, eg. masking the available screens based on separate
policies (NEXUS screen remapping, Xnamespace permissions, etc).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-25 17:11:27 +02:00
Enrico Weigelt, metux IT consult
fe263d966c dix: use x_rpcbuf_t for rendering the connection info block
Simplify the code by using x_rpcbuf_t, so we don't need prio block size
calculation and care for allocation / reallocation. rpcbuf is don't it
all for us and giving us the final block size.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-25 15:48:17 +02:00
Enrico Weigelt, metux IT consult
74a5b770e8 dix: CreateConnectionBlock() scope variables and simplify struct init
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-25 14:28:41 +02:00
Enrico Weigelt, metux IT consult
eb4a798af3 dix: refactor sending out the connection setup prefix
Drop the global connSetupPrefix variable and instead create that
tiny struct on the fly (we need to copy it for byteswapping anyways)

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-24 19:59:25 +02:00
Enrico Weigelt, metux IT consult
c0255c5967 dix: store the ConnectionInfo block size in separate variable
Store it it's own variable as authorative source, so we don't
need to keep it in connSetupPrefix anymore - and get rid of that
in future steps.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-24 16:54:32 +02:00
Enrico Weigelt, metux IT consult
26b2572a45 dix: factor out sending connection abort to own function
Make the code path a bit cleaner and tightly more efficient
(by doing the byteswap directly)

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-24 15:19:10 +02:00
Enrico Weigelt, metux IT consult
07388b95da dix: dispatch: use literal initializer for NewClientInfoRec
make it shorter and easier to the compiler to optimize.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-24 13:36:14 +02:00
Enrico Weigelt, metux IT consult
f194ccd8c1 dix: pass number of screens to CreateConnectionBlock
Panoramix needs a special handling so that we're only sending one
screen (and numRoots becomes = 1). Instead of tweaking global
variables back and forth, just pass in the desired value.

When 0 is passed, using screenInfo.numScreens instead.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-24 12:49:05 +02:00
Enrico Weigelt, metux IT consult
7fb91cf8c0 dix: SendConnSetup: clean up numscreens handling
Usually, we would use screenInfo.numScreens, but Xinerama has a special
handling that's taking the number from the already compiled ConnectionInfo's
numRoots field.

Actually, we don't need any special handling here, just take the numroots
field, because in non-xinerama case, it's equal to screenInfo.numScreens.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-24 10:28:02 +02:00
Enrico Weigelt, metux IT consult
7c7e92be47 dix: add closure parameter to Add(GPU)Screen and ScreenInitProcPtr
AddScreen() allocates a new ScreenRec structure, adds it to the global screen
list and then calls the passed ScreenInitProcPtr function for the DDX init.

Right now, this machinery has no way for passing DDX private data into DDX
init, so all DDX'es have to do ugly tricks (eg. using the latest screen number
and global) to access it's private data. That tends to imply various assumptions,
eg. DDX knowing exactly which screen numbers going to be allocated for the yet
to be created screens. It's managable as long as screens are static and DDX is
the only one reserving screen slots, but totally falling once screens get added
or removed at runtime or something something like NEXUS comes around, creating
virtual before the DDX screens.

Therefore, allow DDX passing private data to it's own init functions through
the AddScreen machinery. Upcoming steps will updating the individual DDX'es
to actually use that data, instead of going through global arrays, and also
assigning devPrivate's to their screens, so global table looksups via screen
aren't necessary at all anymore.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-09-21 16:53:09 +02:00
Enrico Weigelt, metux IT consult
ffa7cf7b43 dix: use stdbool's 'bool' instead of 'Bool' for local variables
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-27 10:28:52 +02:00
Enrico Weigelt, metux IT consult
dd2ad2cd93 xext: panoramiX: helpers for checking wether it's enabled/disabled
Some checks failed
Build X servers / drivers-build-ubuntu (video-siliconmotion:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sis:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sisusb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg14:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg3:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-solaris (push) Has been cancelled
Build X servers / xserver-build-openbsd (push) Has been cancelled
Build X servers / xserver-build-hurd (push) Has been cancelled
Build X servers / xserver-build-alpine (push) Has been cancelled
Build X servers / gentoo-deps-image (push) Has been cancelled
Build X servers / xserver-build-gentoo (push) Has been cancelled
Build X servers / xserver-build-rhel (10) (push) Has been cancelled
Build X servers / xserver-build-rhel (9) (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
These helpers are always defined, even when compiling w/o PanoramiX
at all (symbol XINERAMA not defined), so we need fewer ifdef's.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-07-24 17:27:51 +02:00
Enrico Weigelt, metux IT consult
8031c2f45a treewide: fix result type of BitmapBytePad() to size_t
sizes can't have negative numbers, so use the size_t here.
Also having to fix up lots of callers.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-29 15:44:48 +02:00
Enrico Weigelt, metux IT consult
cc7e322cf6 [PR #3162] dix: use internal dixWriteToClient() instead of exported WriteToClient()
Switch all in-tree DIX callers (the modern X_SEND_REPLY_* reply helpers
in request_priv.h, xmitClientEvent() in dix_priv.h, and the direct
callers in dispatch.c, events.c, swaprep.c, dixfonts.c) over to the
internal dixWriteToClient() worker. The exported WriteToClient() stays
as the legacy frontend for out-of-tree modules only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PR: https://github.com/X11Libre/xserver/pull/3162
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-26 23:17:09 +02:00
Enrico Weigelt, metux IT consult
ebbbb0236d dix: use xorg_list saveSet list
Simplify saveSet handling by just using trivial `struct xorg_list` instead
of complicated dynamically resized array. Common operations like insert or
remove are much simpler using lists instead of arrays.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-25 15:37:02 +02:00
Enrico Weigelt, metux IT consult
4e2bcc9985 dix: add dixAnyOtherGrabbed() and unexport GrabInProgress
* the `GrabInProgress` field isn't used by any known drivers, thus
  no need to export it
* the only in-tree consumer outside of it's source file is Xext/saver.c,
  which actually just wants to know whether any *other* client already
  grabbed the server - asking the OS layer isn't the right source
  (should ask dix/dispatch.c instead)

Therefore adding a simple function for that check into dispatch.c (where
grab/ungrab is actually controlled), so we can easily make this internal
field static again.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-25 15:31:46 +02:00
Enrico Weigelt, metux IT consult
639da9e136 treewide: replace min/max macros by non-exported MIN/MAX and deprecate them
Replace public min/max macros by private MIN/MAX and deprecate them.
The few drivers still using them can trivially define them on their own.
Adding a new private header for all kind of math-ish definitions - future
commits will move more stuff there.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-25 14:06:17 +02:00
Enrico Weigelt, metux IT consult
37a5dd29bd dix: parentheses around macro argument symbols
For safety, add extra parantheses on each used macro argument.
In most cases not strictly necessary, but better have some strict
and automatically enforcable policy here than wasting time on
judging individual cases.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-25 06:54:55 +02:00
Enrico Weigelt, metux IT consult
e23b0dc5c1 dix: dispatch: CreateConnectionBlock() drop extra memcpy()
Let's directly write into the target buffer, instead of first writing
to temporary struct and then memcpy() it into the target buffer.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-24 19:09:09 +02:00
Enrico Weigelt, metux IT consult
1d6a4711bf dix: fix missing includes of <assert.h>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-18 17:36:59 +02:00
Enrico Weigelt, metux IT consult
b64e58ff07 xfixes: move it under the Xext/ directory
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-17 15:33:32 +02:00
Enrico Weigelt, metux IT consult
d81babc1fa dix: zero padding in ProcQueryColors reply
Some checks failed
Build X servers / drivers-build-ubuntu (video-nouveau:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-nv:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-omap:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-qxl:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-r128:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-rendition:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-s3virge:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-savage:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-siliconmotion:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sis:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sisusb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg14:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg3:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suncg6:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunffb:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-sunleo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-suntcx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-tdfx:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-trident:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-v4l:25.0.1) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vbox:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vesa:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-vmware:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-voodoo:25.0.0) (push) Has been cancelled
Build X servers / drivers-build-ubuntu (video-xgi:25.0.0) (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
QueryColors() fills the red/green/blue fields of each xrgb entry but never
writes the trailing 2-byte pad field. Because the reply buffer was allocated
with the non-zeroing x_rpcbuf_reserve(), those pad bytes leaked uninitialized
server heap to the client (and were even byte-swapped on the swapped path).

Use x_rpcbuf_reserve0() for the xrgb array.

Fixes: 15340ce053 ("dix: ProcQueryColors(): use x_rpcbuf_t")
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-06-12 19:34:16 +02:00
Peter Hutterer
8b947b4db9 cursor: fix AllocARGBCursor leak/double-free for psrcbits/pmaskbits/argb
AllocARGBCursor took ownership of the psrcbits/pmaskbits/argb arguments.
But if the initial calloc failed none of them were freed, without the
caller knowing about it. Depending on the code path, those arguments
would thus either leak or be double-freed.

Fix it by always freeing those on error and updating the callers
accordingly.

Assisted-by: Claude:claude-opus-4-6
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2214>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-05-21 16:50:29 +02:00
Enrico Weigelt, metux IT consult
a3a68a4a9d dix: dispatch: declare variables where needed in ProcChangeWindowAttributes()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-05-08 17:26:06 +02:00
Enrico Weigelt, metux IT consult
727a3e9a2d dix: dispatch: declare variables where needed in Dispatch()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-05-08 17:25:53 +02:00
Enrico Weigelt, metux IT consult
993bfc9a7c dix: dispatch: declare variables where needed in SmartScheduleClient()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-05-08 17:25:44 +02:00
Enrico Weigelt, metux IT consult
4a4d4e0fc8 dix: dispatch: declare variables where needed in UpdateCurrentTime[If]()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-05-06 13:32:07 +02:00
Enrico Weigelt, metux IT consult
a588821b78 dix: dispatch: declare variables where needed in DoCreateWindowReq()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-05-06 13:31:51 +02:00
Enrico Weigelt, metux IT consult
c25b6d01bd dix: dispatch: declare variables where needed in ProcReparentWindow()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-05-06 13:31:21 +02:00
Enrico Weigelt, metux IT consult
e3a5801502 dix: dispatch: declare variables where needed in ProcMapWindow()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-05-06 13:30:42 +02:00
Enrico Weigelt, metux IT consult
e7f95f6f9c dix: dispatch: declare variables where needed in ProcMapSubwindows()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-05-06 13:28:37 +02:00
Diego Viola
01e3bbf4c8 Fix typos
Some checks failed
Build X servers / xserver-build-ubuntu (push) Has been cancelled
Build X servers / drivers-build-ubuntu (push) Has been cancelled
Build X servers / xserver-build-mingw32-ubuntu (push) Has been cancelled
Build X servers / xserver-build-macos (push) Has been cancelled
Build X servers / xserver-build-freebsd (push) Has been cancelled
Build X servers / xserver-build-dragonflybsd (push) Has been cancelled
Build X servers / xserver-build-netbsd (push) Has been cancelled
Build X servers / xserver-build-cygwin (push) Has been cancelled
Build X servers / Check Signed-Off-By (push) Has been cancelled
check PRs for merge conflicts / notify (push) Has been cancelled
Build X servers / Release pushed tag (push) Has been cancelled
Signed-off-by: Diego Viola <diego.viola@gmail.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2134>
2026-04-19 12:32:26 +02:00
Enrico Weigelt, metux IT consult
28d930b16c dix: inline SProcQueryColor()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-01-31 16:16:19 +01:00
Enrico Weigelt, metux IT consult
b19f3babe7 dix: inline SProcCreateGlyphCursor()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-12-19 12:00:50 +01:00
Enrico Weigelt, metux IT consult
5c3980b407 dix: inline ProcSetScreenSaver()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-12-19 11:59:08 +01:00
Enrico Weigelt, metux IT consult
ca35b825a3 dix: inline SProcLookupColor()
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-12-19 11:58:11 +01:00
Enrico Weigelt, metux IT consult
aefde94a2d meson: drop obsolete vendor information options
Some checks are pending
delete old workflow runs / delete_old_workflow_runs_branches (wip/logging_submitted_1) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/maint-xnest) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/marshal) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/matrix-test) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/meson) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/misc.h) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/mpbt) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/netbsd) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/no-libsystemd) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/optional-pci) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/os-unexport) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/pciaccess) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/pedantic) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/pixmap-lifecycle) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/reallocarray) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/requests) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/screenproc) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/screenproc-wrap) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/swap0) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/swapping) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/swapping_new) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/warn-conv) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/win32_2) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xcb-marshal) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xf86_platform_bus_newabi) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xf86bigfont) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xi-properties) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xnest-render) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xnest-rootless) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xnest-shm) (push) Waiting to run
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-12-17 13:52:37 +01:00
Enrico Weigelt, metux IT consult
4609d2e5e8 dix: Dispatch() separate variable for read result
Some checks are pending
delete old workflow runs / delete_old_workflow_runs_branches (wip/logging_submitted_1) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/maint-xnest) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/marshal) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/matrix-test) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/meson) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/misc.h) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/mpbt) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/netbsd) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/no-libsystemd) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/optional-pci) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/os-unexport) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/pciaccess) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/pedantic) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/pixmap-lifecycle) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/reallocarray) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/requests) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/screenproc) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/screenproc-wrap) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/swap0) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/swapping) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/swapping_new) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/warn-conv) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/win32_2) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xcb-marshal) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xf86_platform_bus_newabi) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xf86bigfont) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xi-properties) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xnest-render) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xnest-rootless) (push) Waiting to run
delete old workflow runs / delete_old_workflow_runs_branches (wip/xnest-shm) (push) Waiting to run
Mixing result variables for separate things is making the code hard
to understand, so add a new local variable for temporarily storing
the result of ReadRequestFromClient().

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-12-12 13:49:15 +01:00
Enrico Weigelt, metux IT consult
36503b11b7 dix: consistenly name reply structs "reply" instead of "rep"
Preparation for future use of generic reply assembly macros.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-12-04 16:28:06 +01:00
Marc-Alexandre Espiaut
e1b3bbafa8 dix: remove dixLookupBuiltinColor() unused screen argument
Signed-off-by: Marc-Alexandre Espiaut <76531574+malespiaut@users.noreply.github.com>
2025-11-28 18:43:40 +01:00
Enrico Weigelt, metux IT consult
85fae9bffb dix: inline SProcAllocColor()
Now that we have untwisted Xinerama side, it's trivial to inline
the few lines for byte-swapping into the actual handlers.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-11-27 13:46:37 +01:00
Enrico Weigelt, metux IT consult
5532917d76 os: move AllowByteSwappedClients setting into DIX
Adding new source and header that's going to host all DIX
settings (set via cmdline or xf86 config file) in the future.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-11-27 10:44:23 +01:00