Enrico Weigelt, metux IT consult
d3ef146e1c
Xext: vidmode: untwist ProcVidModeGetAllModeLines() and use stack buffer
...
The ProcVidModeGetAllModeLines() is a bit complicated, because reply structs
differ depending the active protocol version. In order to make it easier to
understand and allow further simplification of the request/reply marshalling
(see ticket #1701 ), splitting the two protocol versions into separate functions.
Also collecting the whole payload in a stack buffer (size is already known
anyways), in order to save arbirary number of individual WriteToClient() calls,
but send out the whole reply in one pass, which in turn allows further
simplifications in the sending path.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-20 17:13:18 +01:00
Enrico Weigelt, metux IT consult
e1fd83ac0b
Xext: vidmode: ProcVidModeSetGammaRamp() simplify payload write out
...
WriteToClient() already checks for zero-length buffer and does nothing
in that case. So we can make the code a bit easier to read and also
allow further simplification of reply submission by upcoming commits.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-20 17:11:11 +01:00
Enrico Weigelt, metux IT consult
9c38f989a6
Xext: vidmode: ProcVidModeSetGammaRamp() clean up length computation
...
Make computation of reply length a bit easier to understand.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-20 17:05:51 +01:00
Enrico Weigelt, metux IT consult
3f2ffbce56
Xext: vidmode: ProcVidModeSetGammaRamp() declare variables where needed
...
Make the code a bit easier to understand by declaring the variables
where they're first used instead of at the very top of the function.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-20 16:59:49 +01:00
Enrico Weigelt, metux IT consult
1d641d9e14
Xext: vidmode: ProcVidModeGetMonitor(): write reply payload at once.
...
Collect up the puzzle piezes of the reply payload into to a temporary buffer,
so we can send it as one block. This allows for further simplifications by
subsequent commits, as well as packet based transports and message based
compression.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-19 15:10:20 +00:00
Enrico Weigelt, metux IT consult
ac9185f673
Xext: vidmode: ProcVidModeGetMonitor() simplify swapping/writing
...
We can simply call SwapLongs() before writing out the CARD32 arrays.
No need using for complicated call back logic.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-19 15:10:20 +00:00
Enrico Weigelt, metux IT consult
806854ee2b
Xext: vidmode: ProcVidModeModModeLine(): move len variable into branch scope
...
Semantically these are separate values in each branch any only used there,
so it's a bit more clean to move the declaration into the branches.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-19 15:10:20 +00:00
Enrico Weigelt, metux IT consult
fc37435fda
Xext: vidmode: ProcVidModeGetMonitor(): move local buffers on stack
...
No need to go through global heap here, for such short-lived and
small buffers. And stack variables are automatically cleaned up
on leave.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-19 15:10:20 +00:00
Enrico Weigelt, metux IT consult
f8d240b56b
Xext: vidmode: drop unnecessary if (client->swapped)
...
The WriteSwappedDataToClient() already checks whether client is swapped
and directly calls WriteToClient() if it's not.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-19 15:10:20 +00:00
Enrico Weigelt, metux IT consult
021f9587ce
Xext: vidmode: simplify reply struct initialization
...
Coherently moving all reply struct decls and assignments into static
initialization right at declaration, just before it is getting byte-
swapped and sent out. Zero-assignments can be dropped here, since the
compiler automatically initializes all other fields to zero.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-19 15:10:20 +00:00
Enrico Weigelt, metux IT consult
e9773a6248
Xext: vidmode: tidy up multi-version request control flow, part 3
...
Some requests using different structs dependending on which protocol version
(v1 vs. v2) had been selected. That's is handled by coverting v1 structs into v2,
before proceeding with the actual handling.
The code flow of this is very complex and hard to understand. Cleaning this up
in several smaller steps, that are easier to digest.
This part moves the request payload structs (or pointers to them) into the
per-version branches. Within each branch following our usual scheme for
extension request handlers (eg. using the REQUEST*() macros and having a
pointer named `stuff` to the current request struct)
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-19 15:10:20 +00:00
Enrico Weigelt, metux IT consult
e883e230e3
Xext: vidmode: tidy up multi-version request control flow, part 2
...
Some requests using different structs dependending on which protocol version
(v1 vs. v2) had been selected. That's is handled by coverting v1 structs into v2,
before proceeding with the actual handling.
The code flow of this is very complex and hard to understand. Cleaning this up
in several smaller steps, that are easier to digest.
This part is splitting the huge request handlers into upper and lower half,
where the upper is doing the version check and converting v1 requests into v2,
while the lower one is doing the actual request processing, operating on the
struct pointer passed in from the upper one, instead of the client struct's
request buffer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-19 15:10:20 +00:00
Enrico Weigelt, metux IT consult
3872846412
Xext: vidmode: tidy up multi-version request control flow, part 1
...
Some requests using different structs dependending on which protocol version
(v1 vs. v2) had been selected. That's is handled by coverting v1 structs into v2,
before proceeding with the actual handling.
The code flow of this is very complex and hard to understand. Cleaning this up
in several smaller steps, that are easier to digest.
This moving the request size check into the if-version-X branches, to make it
some bit easier to undertand.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-19 15:10:20 +00:00
Enrico Weigelt, metux IT consult
59fbb5423d
Xext: vidmode: simplify dispatcher
...
These 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.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
2025-02-19 15:10:20 +00:00
Doug Brown
a0834009cf
dri2: Protect against dri2ClientPrivate assertion failures
...
If DRI2ScreenInit hasn't been called yet, DRI2Authenticate and
DRI2CreateDrawable2 cause the X server to crash. This has been observed
to happen on multiple modern Linux distros in various conditions,
including QEMU and VMware VMs. Make these functions more robust in order
to prevent the crash.
This patch was originally provided by Bernhard Übelacker and expanded
upon by Mark Wagner.
Signed-off-by: Doug Brown <doug@schmorgal.com >
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1053
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1534
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1608 >
2025-02-19 11:25:01 +00:00
Enrico Weigelt, metux IT consult
6c88eb0cc4
misc.h: unexport compare_version()
...
Not used by any external modules, so no need to keep it in public header.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1807 >
2025-02-18 11:17:40 +00:00
Enrico Weigelt, metux IT consult
804b2c081b
os: unexport CloseWellKnownConnections()
...
Not used by any modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
0d95b53a20
os: unexport ResetWellKnownSockets()
...
Not used by any modules (and not supposed to be), so should not
be exported at all.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
dd05532b38
os: unexport CreateWellKnownSockets()
...
Not used by any modules (and not supposed to be), so should not
be exported at all.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
59b39ee6ee
os: unexport NotifyParentProcess()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
c9ee4245a2
os: unexport ResetOsBuffers()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
583dbe832d
os: unexport FlushIfCriticalOutputPending()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
be16616715
os: unexport FlushAllOutput()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
c6b223459c
os: unexport ResetCurrentRequest()
...
Not used by any external modules, so no need to keep it in public API.
Since it's used by DRI, still needs the _X_EXPORT flag, as long as DRI
is a dynamically loaded module.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
189a70dfb2
os: unexport InsertFakeRequest()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
ba665948f6
os: unexport WriteFdToClient()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
effe8d66bd
os: unexport ReadRequestFromClient()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
9b0c3c62f2
os: unexport ListenOnOpenFD()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
d637e1d284
os: unexport AddClientOnOpenFD()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
a84ae08526
os: unexport ClientAuthorized()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
c6b8207342
os: unexport AuthorizationIDOfClient()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
1f27d3d653
os: unexport ClientIsLocal()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
6ec89c91f3
ci: update freebsd builder image
...
FreeBSD upstream removed image for 14.0 image, so we need to update.
Also increasing image size, since the new images are too small.
(needs update of ci-templates)
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1784 >
2025-02-18 10:43:28 +01:00
Enrico Weigelt, metux IT consult
80f5d29c84
xfree86: doc: update docs on XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
e88762896e
xfree86: inputtest: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
2a10eff6c5
xfree86: modsetting: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
c8ad9c6567
xfree86: exa: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
c862cf3c3a
xfree86: fbdevhw: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
d87e93bf40
xfree86: xf86int10module: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
f54993a222
xfree86: xfbmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
a2e20304e0
xfree86: vgaHWmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
3066125bec
xfree86: shmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
f0590decb6
xfree86: sfbmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
03becba76b
xfree86: glxmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
7dd8d0627c
xfree86: fbmodule: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:30 +00:00
Enrico Weigelt, metux IT consult
c46e645bad
glamor: use explicit field initializers for XF86ModuleData
...
Even though the order of these fields shouldn't change anytime
soon, it's still better programming style to name'em explicitly.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:29 +00:00
Enrico Weigelt, metux IT consult
1848027892
xfree86: xf86configure: use NULL instead of 0
...
Zero pointers should be initialized w/ NULL instead of raw 0.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1788 >
2025-02-17 19:41:29 +00:00
Enrico Weigelt, metux IT consult
346d5f5c35
os: move BUG_*() macros to own private header
...
These macros aren't used by any external modules, so no need
to keep them public. Moving them into private header.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1804 >
2025-02-17 19:32:48 +00:00
Enrico Weigelt, metux IT consult
a6b2eb3780
misc.h: drop LengthRestB() macro
...
Only used at exactly one place, for trivial size computation, so not worth
having an extra macro in a public header for this.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1805 >
2025-02-17 19:25:14 +00:00
Alan Coopersmith
9af363b046
ci: update XTS to a commit that doesn't require -fcommon workaround
...
xorg/test/xts!10 fixed XTS to build with recent gcc without adding -fcommon
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com >
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1786 >
2025-02-17 19:16:04 +00:00