Commit Graph

2150 Commits

Author SHA1 Message Date
Enrico Weigelt, metux IT consult
4e60f8e22e (!1688) os: unexport internal logging functions
Lots of logging functions, especially init and teardown aren't called
by any drivers/modules, so no need to keep them exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
b093558e0e (submit/drop-cygwin) drop remains of cygwin support
Cygwin support doesn't seem to be used anymore, so it can be dropped.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
881b840211 (submit/xnest-gcrec) fix name clash on 'GC' between Xlib and Xserver
Both xlib as well as the Xserver use the same identifier "GC" for
different types. While on xlib it's just the numerical ID of a GC,
the xserver defines a struct for it by the same name. This is this
ugly and needs ridiculous hacks for Xserver code that needs xlib.

Easy to solve by just renaming the GC typedef to GCRec (consistent
with how we're naming other structs) and replacing GC* by GCPtr.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
df4e59711e (submit/move-systemd-logind.h) move systemd-logind.h to hw/xfree86/os-support/linux
systemd is linux specific and the actual implementation is under the
os-support layer of xfree86 ddx. Thus no need to keep it in global
include directory, putting it onto the linux specific os-support instead.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
cd1a5ad362 (submit/selection.h) dix: rename selection.h to selection_priv.h
rename it in order to reflects it's private nature (not exported).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
9ceab198c9 (submit/selection.h) dix: unexport selection functions
No driver needs them, so no reason to keep them exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
c5609f2b2f (submit/selection.h) dix: don't install selection.h anymore
This file isn't included by any driver - not even indirectly, and hard
to imagine any driver ever needs it, so no need to keep it installed.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
24435f4da6 (submit/miext-extinit) miext: move over extinit_priv.h from include
Since most of the extension init logic (and on/off switches for them)
is driven from miext, this seems the appropriate place for the header.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
7055496483 FIXME (submit/miext-extinit) composite: move noCompositeExtension into the extension code
This flag is better off in the extension code instead of the OS layer.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
98db72d0e7 (submit/miext-extinit) present: unexport present_extension_init()
It's not called by drivers/modules, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
afc4507c37 FIXME (submit/miext-extinit) panoramix: move noPanoramiXExtension field into extension.
This field is better of in the corresponding extension,
than in the OS layer.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
f5a5c515ac (submit/vrr-driver-api) dix: add generic Xinerama capable VRR infrastructure
We don't have a standard protocol for enabling VRR yet, but some time ago an
ad-hoc had been made in the amdgpu driver (later also copied to modsetting),
which works by client setting the _VARIABLE_REFRESH window property.

The way it's currently done - driver is highjacking the X_ChangeProperty and
X_DeleteProperty request handlers - is pretty fragile, and is also a violation
of layers: drivers never should be twisted with core protocol details. (And in
the future, this should be done by some suitable extension).

Another problem is Xinerama: when it's enabled, this only works on the first
screen - the others won't ever see this signal, no matter on which one(s) the
Window is physically placed (for the wire protocol, all windows are on screen 0,
unless the client explicitly creates them on another one)

This commit adds a generic Screen proc for telling the DDX, whether the VRR mode
shall be changed (for now, it's only DISABLED and ENABLED). Drivers can hook into
here in order to receive this signal, w/o having to highjack any core request
handlers. Catching the property change is now entirely done in the DIX.

The (non-standard) status qou of (ab)using window properties is kept, but it's
now also easy to add a new signaling mechanism, in case a standard is agreed on.

Yet a quite naive implementation (eg. not acting on moving windows between screens),
but enough to fix the most pressing problems supporting extra screens in general,
as well as stopping the highjacking of core request handlers by drivers.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:57 +01:00
Enrico Weigelt, metux IT consult
32ecc23e3c (!1682) os: log: drop now meaningless XLOG_FLUSH option
Since we're not indirectly writing via FILE anymore, this option has
become meaningless: it meant flushing out our in-process buffer to
the kernel, but we're now doing direct write() calls anyways.

xf86 still accepts the "flush" config file flag for backwards compatibility,
but it hasn't any practical meaning anymore.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:56 +01:00
Enrico Weigelt, metux IT consult
84f35d7814 (!1714) dix: add per-screen pixmap destructor mechanism
Right now, extension specific pixmap destruction procedures are implemented
by wrapping the ScreenRec's DestroyPixmap() proc pointer: the extensions are
storing the original pointer in their private data and putting in their own one.
On each call, their proc restores the original one, calls it, and switches back
again. When multiple extensions doing so, they're forming a kind of daisy chain.
(the same is done for lots of other procs)

While that approach is looking nice and elegant on the drawing board, it's
complicated, dangerous like a chainsaw and makes debugging hard, leading to
pretty blurred API borders.

It's even getting worse: the proc also has to do ref counting, and only destroy
the pixmap if refconter reaching zero - that's all done in the individual screen
drivers. Therefore, all extensions must check for refcnt == 1, in order to know
when to really act.

This commit introduces a simple approach for letting extension hook into the
pixmap destruction safely, w/o having to care much about side effects with
the call chain. Extensions now can simply register their destructor proc
(and an opaque pointer) and get called back - w/o ever having to mess with
the ScreenRec's internal structures.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:56 +01:00
Enrico Weigelt, metux IT consult
1be588fbbc (!1714) dix: add per-screen close notify hook
Right now, extension specific actions on screen closing implemented by wrapping
the ScreenRec's PositionWindow() proc pointer: the extensions are storing the
original pointer in their private data and putting in their own one. On each
call, their proc restores the original one, calls it, and switches back again.
When multiple extensions doing so, they're forming a kind of daisy chain.
(the same is done for lots of other procs)

While that approach is looking nice and elegant on the drawing board, it's
complicated, dangerous like a chainsaw and makes debugging hard, leading to
pretty blurred API borders.

This commit introduces a simple approach for letting extension hook into the
screen closing path safely, w/o having to care much about side effects with
the call chain. Extensions now can simply register their hook proc (and an
opaque pointer) and get called back - w/o ever having to mess with the
ScreenRec's internal structures. These hooks are called before the original
vector (usually handled by DDX/screen driver directly) is called.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:56 +01:00
Enrico Weigelt, metux IT consult
5a69235013 (!1714) dix: add per-screen window position notify hook
Right now, extension specific actions on window positioning are implemented
by wrapping the ScreenRec's PositionWindow() proc pointer: the extensions are
storing the original pointer in their private data and putting in their own one.
On each call, their proc restores the original one, calls it, and switches back
again. When multiple extensions doing so, they're forming a kind of daisy chain.
(the same is done for lots of other procs)

While that approach is looking nice and elegant on the drawing board, it's
complicated, dangerous like a chainsaw and makes debugging hard, leading to
pretty blurred API borders.

This commit introduces a simple approach for letting extension hook into the
window positioning path safely, w/o having to care much about side effects
with the call chain. Extensions now can simply register their hook proc
(and an opaque pointer) and get called back - w/o ever having to mess with
the ScreenRec's internal structures. These hooks are called before the original
vector (usually handled by DDX/screen driver directly) is called.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:56 +01:00
Enrico Weigelt, metux IT consult
fc8a5c3f60 (!1714) dix: add per-screen window destructor hook
Right now, extension specific window destruction procedures are implemented
by wrapping the ScreenRec's DestroyWindow() proc pointer: the extensions are
storing the original pointer in their private data and putting in their own one.
On each call, their proc restores the original one, calls it, and switches back
again. When multiple extensions doing so, they're forming a kind of daisy chain.
(the same is done for lots of other procs)

While that approach is looking nice and elegant on the drawing board, it's
complicated, dangerous like a chainsaw and makes debugging hard, leading to
pretty blurred API borders.

This commit introduces a simple approach for letting extension hook into the
window destruction safely, w/o having to care much about side effects with
the call chain. Extensions now can simply register their destructor proc
(and an opaque pointer) and get called back - w/o ever having to mess with
the ScreenRec's internal structures.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:56 +01:00
Enrico Weigelt, metux IT consult
8b96ce1bdd (!1789) os: drop unused TimerCheck()
This isn't used anywhere, so can be dropped.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
c4b446946c (!1799) xkb: unexport XkbCopyControls()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
c03d84c571 (!1799) xkb: unexport XkbDeviceApplyKeymap()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
e30c513758 (!1799) xkb: unexport XkbSendNewKeyboardNotify()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
9d86ba0d88 (!1799) xkb: unexport XkbApplyVirtualModChanges()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
83451b9dd1 (!1799) xkb: unexport XkbApplyCompatMapToKey()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
be3d7a9806 (!1799) xkb: unexport XkbKeyTypesForCoreSymbols()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
5982df023d (!1799) xkb: unexport XkbChangeTypesOfKey()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
a572e12215 (!1799) xkb: unexport XkbFreeInfo()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
34bd1e2980 (!1799) xkb: unexport XkbChangeKeycodeRange()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
b86b46dfec (!1799) xkb: unexport XkbConvertCase()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
7e3257ebc6 (!1799) xkb: unexport XkbLookupNamedGeometry()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
cdc623b6d1 (!1799) xkb: unexport XkbSetRepeatKeys()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
2e87bcd71c (!1799) xkb: unexport XkbDisableComputedAutoRepeats()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
ac246d6196 (!1799) xkb: unexport XkbEnableDisableControls()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
41f8a42b92 (!1799) xkb: unexport XkbProcessKeyboardEvent()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
0596c19a1d (!1799) xkb: unexport XkbHandleActions()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
e3334352c4 (!1799) xkb: unexport XkbHandleBell()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
5cbcaffd56 (!1799) xkb: unexport XkbStateChangedFlags()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
99c09f3fdc (!1799) xkb: unexport XkbCheckIndicatorMaps()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
c309713e5f (!1799) xkb: unexport XkbCheckSecondaryEffects()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
2b7137fe75 (!1799) xkb: unexport XkbComputeDerivedState()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
0cdf9c176e (!1799) xkb: unexport XkbIndicatorsToUpdate()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
83bec8b13c (!1799) xkb: unexport XkbUpdateAllDeviceIndicators()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
254e1d3c47 (!1799) xkb: unexport XkbUpdateIndicators()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
311c7565a2 (!1799) xkb: unexport XkbSetIndicators()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
6c86b9335e (!1799) xkb: unexport XkbGetCoreMap()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
1a26bd1656 (!1799) xkb: unexport XkbUpdateActions()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
d974ee07d0 (!1799) xkb: unexport XkbUpdateDescActions()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
a39321df72 (!1799) xkb: unexport XkbResizeKeyActions()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
8c4bec0ff9 (!1799) xkb: unexport XkbResizeKeySyms()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
0852efe3c6 (!1799) xkb: unexport XkbAdjustGroup()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
eaae34a232 (!1799) xkb: unexport XkbVirtualModsToReal()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00