Commit Graph

1295 Commits

Author SHA1 Message Date
Enrico Weigelt, metux IT consult
bf7b650482 kdrive: make KdAllocatePrivates() static
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2026-01-27 19:11:03 +01:00
stefan11111
76356395e7 kdrive/fbdev: Fix uninitialized variable when switching vt's
When rapidly switching vt's, it can happen that shadow tries to
draw to the screen before it's initialized.
In that case, we return NULL, and we should also return a zero size,
because shadow doesn't check for NULL.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-23 12:47:36 +01:00
stefan11111
30fb629a7d kdrive: Enable zapping by default
Zapping is the fastest way to kill the X server, faster than vt switching,
or killing the window manager and configuring the X server to die with it.

It is very useful when debugging, or if the system runs very low on memory

This adds the `-nozap` argument, for restoring the old behavior.
The `-zap` argument is also kept for backwards compatibility.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-22 08:58:15 +01:00
stefan11111
162fda3bd6 kdrive/fbdev: Get glx working through glamor egl on Xfbdev
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-21 10:23:23 +01:00
stefan11111
f69d06e7d3 kdrive/fbdev: Fix miscmansuffix in the Xfbdev manpage
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-21 10:12:20 +01:00
stefan11111
c2ca290e63 kdrive: Build Xkdrive man page
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-21 10:12:20 +01:00
stefan11111
69da481f66 kdrive/linux: Set device name when using the evdev driver
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-12 16:46:17 +01:00
stefan11111
cc152cf964 kdrive/linux: Improve evdev driver autodetection
It should now work out of the box on most setups
with one mouse and one keyboard.

It probably still breaks on some single mouse and keyboard
setups, and on setups with more than one mouse or keyboard.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-12 16:46:17 +01:00
stefan11111
a2c58b9934 kdrive/linux: Try all 32 static evdev device nodes
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-12 16:46:17 +01:00
stefan11111
cb445cef6b kdrive/fbdev: Use ShadowFB by default
It can be disabled by passing `-noshadow` to the command-line args

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-12 09:14:31 +01:00
stefan11111
984f403a17 kdrive: Fixup keyboard events after vt switch
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-12 08:08:52 +01:00
squishypinkelephant
6db9b685c1 fully split, rename kdInitInputPre to KdAddConfigInputDrivers 2026-01-08 10:32:42 +01:00
squishypinkelephant
80112b61ba split KdInitInput for Xephyr 2026-01-08 10:32:42 +01:00
stefan11111
d92a55c286 kdrive/src: Implement special key handling
This is needed for Ctrl + Alt + F* vt switching
and Ctrl + Alt + Backspace server terminate.

We could implement other special keys too, it we want to.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-07 13:48:15 +01:00
stefan11111
01b91b7f60 kdrive/linux: Add special key handler proc
We're only interested in vt switching here.
Ctrl + Alt + Backspace server terminate will be handled by it's caller.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-07 13:48:15 +01:00
stefan11111
2f3d22ef1e kdrive/linux: Fix keyboard flushing
The old method will break with vt switching

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-07 13:48:15 +01:00
stefan11111
489ba91f4b kdrive/linux: Use OsSignal to set SIGUSR1 handler
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-07 13:48:15 +01:00
stefan11111
0d93b942ad kdrive/src: Remove all SIGIO code from kdrive
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-07 10:59:39 +01:00
stefan11111
fb16cef942 kdrive/src: Use threaded input in KdReleaseAllKeys
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-07 10:59:39 +01:00
stefan11111
77f15917d4 kdrive/linux: Fix typo in keyboard.c
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-07 10:59:39 +01:00
stefan11111
9afc6b1345 kdrive/src: revert c85ef2a6b5
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-07 10:59:39 +01:00
stefan11111
7a50b1dc3d kdrive/src: revert fd2483745b
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-07 10:59:39 +01:00
stefan11111
dc39eda42b treewide: Move the dri2 extension to Xext and use it for all X servers
This is needed to get proton working in Xfbdev, but is probably useful in other places too.

Xephyr has some unrelated issues regaring Xinput, so steam doesn't work there.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2026-01-02 17:51:43 +01:00
Enrico Weigelt, metux IT consult
0a18956047 kdrive: ephyr: add noreturn attribute to ephyrProcessErrorEvent()
>  ../hw/kdrive/ephyr/ephyr.c:977:1: warning: function 'ephyrProcessErrorEvent' could be declared with attribute 'noreturn' [-Wmissing-noreturn]
>    977 | {
>        | ^

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-12-11 14:34:16 +01:00
Enrico Weigelt, metux IT consult
84bfff6672 kdrive: fix missing include to ddx_priv.h
Fix missing prototype for OsVendorInit()

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-12-09 19:51:11 +01:00
Enrico Weigelt, metux IT consult
19ee44b607 treewide: drop including <dix-config.h> from private includes
All .c sources must include <dix-config.h> at the very first.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-12-04 19:50:44 +01:00
Enrico Weigelt, metux IT consult
92a015504e dix: make BITMAP_SCANLINE_UNIT private
Not used by any external drivers, so no need to keep it public.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-11-27 12:05:55 +01:00
Enrico Weigelt, metux IT consult
416f69eb88 include: misc.h: unexport lowbit() macro
Not used by any drivers.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-11-20 19:20:07 +01:00
Enrico Weigelt, metux IT consult
062a930f3c kdrive: drop obsolete support for internal server reset
Not used anymore.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-11-20 16:35:50 +01:00
Enrico Weigelt, metux IT consult
1749a8bdfd config: unexport config_init() and config_fini()
Those aren't used by any drivers, so no need to keep them public.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-11-20 14:11:27 +01:00
Enrico Weigelt, metux IT consult
064e5f2ddf os: drop OsCleanup()
Since we're always terminating now, everbody can call UnlockServer()
directly, so we don't need that extra function anymore.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-11-20 11:19:02 +01:00
Chase
fcbb2bafce treewide: replace __FUNCTION__ by __func__
prefer C99 standard over non-standard legacy symbols

Signed-off-by: Chase <chinkle3@illinois.edu>
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-11-18 13:29:47 +01:00
Enrico Weigelt, metux IT consult
0fbb681fce treewide: use helper dixGetScreenPtr() for retrieving ScreenPtr's
Instead of directly accessing the global screenInfo.screens[] array,
let everybody go through a little inline helper. This one also checks
for array bounds - if the screen doesn't exist, return NULL.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-10-30 09:44:24 +01:00
kohnish
166dec4701 Fix missing include and signature mismatch on gentoo linux 2025-10-20 10:25:28 +02:00
Enrico Weigelt, metux IT consult
962580a15a treewide: macros lambda-esque screen iteration
iterating over screen list via lambda-esque macros calls like this

    DIX_FOR_EACH_SCREEN({
        do_something
    });

withing the body, the iterator variables `walkScreenIdx` and `walkScreen`
are defined and can be directly used (read-only). the code inside the body
is running in a separate scope.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-10-01 11:40:34 +02:00
Enrico Weigelt, metux IT consult
6996fe65af kdrive: fix missing includes of extinit.h
Don't rely on this file just being included indirectly by somebody else
just by accident.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-09-25 13:14:05 +02:00
Enrico Weigelt, metux IT consult
56c4d68140 treewide: drop ScreenInfoPtr parameter from InitOutput()
Nobody's using this pointer anymore, everybody's using the global
screenInfo structure.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-09-12 19:49:23 +02:00
Enrico Weigelt, metux IT consult
cdbf824d70 kdrive: use screenInfo insead of pointer passed to InitOutput()
We only have one global screenInfo struct ever, and many other parts of the
Xserver can only operate on global screenInfo, so it's time to phase out
this extra pointer. Once the same has done on the other DDXes, it will
be dropped from InitOutput()'s parameter list.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-09-10 10:37:45 +02:00
stefan11111
6415fdf2db kdrive: bring back Xfbdev
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-09-08 17:35:36 +02:00
Enrico Weigelt, metux IT consult
9feb398a7c config: fix inttype mismatches on device major/minor numbers
System headers define them as unsigned.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-09-05 20:31:59 +02:00
Enrico Weigelt, metux IT consult
1b91049083 kdrive: KdCursorOffScreen(): canonical screen iterator index
in preparation of upcoming generic screen iterator macros, already
rename the index variable to what the macro will be using.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-09-05 08:49:26 +02:00
Enrico Weigelt, metux IT consult
b8bfb5792a kdrive: KdCursorOffScreen(): move dx and dy into local scope
These are just used locally and always assigned at loop body start,
so it's cleaner to declare them locally inside the loop body.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-09-04 11:06:33 +02:00
Enrico Weigelt, metux IT consult
e2d9dc4054 kdrive: fix KdCursorOffScreen()
Bug slipped through: we have to substract the coordinates from the walked
screen to the current one, instead of the walked one from itself :o

Fixes: 97d72431cf
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-09-03 17:12:54 +02:00
stefan11111
65a7f1d6a1 kdrive: add build system bits for kdrive input drivers
They are all disabled for now, build options for enabling them
will be added when Xfbdev is added.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-08-31 10:02:32 +02:00
stefan11111
dcc29cce96 kdrive: small C cleanups we missed
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-08-31 10:02:32 +02:00
stefan11111
8c2b6dec47 kdrive: replace dix-config.h with kdrive-config.h
In preparation for adding the Xfbdev kdrive X11 server

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-08-28 18:51:55 +02:00
stefan11111
44ffe7d2a3 kdrive: fix warnings about missing prototypes and unused variables
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-08-22 18:20:39 +02:00
stefan11111
aff7f80fbc kdrive: call newly added cfuncs in kdrive.c
In preparation for adding the Xfbdev X11 kdrive server

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-08-22 18:20:39 +02:00
stefan11111
fd2483745b kdrive: call the newly added SIGIO code
The keyboard input driver that will be added to kdrive
only works with old SIGIO code, and doesn't work with
the new threaded input that kdrive uses.

All the code is behind #if's that are never satisfied,
so this commit has no functional changes.

In preparation for adding the Xfbdev X11 kdrive server.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-08-22 18:20:39 +02:00
stefan11111
c85ef2a6b5 kdrive: add SIGIO input code
The keyboard input driver that will be added to kdrive
only works with old SIGIO code, and doesn't work with
the new threaded input that kdrive uses.

All the code is behind #if's that are never satisfied,
so this commit has no functional changes.

In preparation for adding the Xfbdev X11 kdrive server.

Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
2025-08-22 18:20:39 +02:00