Allocate X68kKbdPriv dynamically to make it really private.
DEVICE_OFF and DEVICE_CLOSE operations are adjusted accordingly.
x68kGetKbdType() function is also added to get keyboard map type
specified in the config file.
Refactor X68k input device handling to remove SIGIO based event processing.
The keyboard and pointer input events are now processed directly
using fd event notifications registered via DIX SetNotifyFd(),
instead of the legacy SIGIO-based asynchronous I/O.
No need to check if the device is enabled in event handler functions.
These event handlers are activated by SetNotifyFd() only after
DXX deviceProc() functions are called with DEVICE_ON from
DIX EnableDevice() function.
Also Refactor sunKbdPrivRec in sunKbd.c to make it private.
Now the keyboard device is opened and sunKbdPrivRec is dynamically
allocated within the DEVICE_INIT phase of sunKbdProc().
DEVICE_OFF and DEVICE_CLOSE operations are also adjusted accordingly.
Tested on Sun 3/60.
Refactor sunPtrPrivRec in sunMouse.c to make it really private.
The mouse device is now opened and sunPtrPrivRec is allocated
within the DEVICE_INIT phase of sunMouseProc(). DEVICE_OFF and
DEVICE_CLOSE operations are also adjusted accordingly.
Tested on Sun 3/60.
Refactor Xsun input device handling to remove SIGIO based event processing.
The keyboard and pointer input events are now processed directly
using fd event notifications registered via DIX SetNotifyFd(),
instead of the legacy SIGIO-based asynchronous I/O.
This refactoring improves the maintainability and portability of
the code by aligning with modern Xorg server practices.
Tested on Sun 3/60 with bwtwo, Type-4 keyboard and mouse.
Initialize DDX pointer valuators consistently with other drivers/servers.
This may not be strictly necessary, since InitValuatorAxisStruct()
for all axes is also called from the DIX InitPointerDeviceStruct()
via InitValuatorClassDeviceStruct() with default values.
However, for future X.Org updates, it is beneficial to keep the
DIX-DDX interface implementation in MouseProc's DEVICE_INIT operation
consistent with the official xf86-input-mouse driver, xquartz DDX server,
and others.
Xorg removed the ramdac module and related stuff, but the only part of this
driver that depends on it is support for older GLINTs, and what we're
interested in is permedia2 ( for sparc64, aka Sun PGX32 ) and permedia3.
Therefore, disable all the old GLINT support, only leave permedia 2/3 support,
and we have working X on PGX32 again.
xf86-input-keyboard: fix DEC LK201 layout
On the LK201, the F11 serves as Escape by default. The key that's
currently defined as Escape is actually grave/tilde. Also, the Delete
key above Enter is actually a Backspace.