It will take some time for a new libpciaccess to be released and
even then bumping the dependency for libpciaccess isn't attractive.
If an older libpciaccess is used just add a static inline define.
Signed-off-by: Tautvis <gtautvis@gmail.com>
In the case of multiple display devices that are not VGA devices
the 'boot_display' attribute read by libpciaccess can disambiguate.
Signed-off-by: Tautvis <gtautvis@gmail.com>
This functions is designed for some legacy keyboard drivers
(eg. xf86-input-keyboard) that need to get the fd to the console
device, so they don't need to directly access xf86Info field anymore.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
XF86_MODULE_DATA_INPUT() creates XF86ModuleData field for input driver,
while XF86_MODULE_DATA_VIDEO creating one for a video driver.
These are filled with given values, _X_EXPORT'ed and properly named so
the module loader can find them. Also creating the associated
XF86ModuleVersionInfo field and link them into the XF86ModuleData.
Example:
XF86_MODULE_DATA_INPUT(
egalax,
eGalaxPlug,
eGalaxUnplug,
"egalax",
PACKAGE_VERSION_MAJOR,
PACKAGE_VERSION_MINOR,
PACKAGE_VERSION_PATCHLEVEL);
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Reduce the effort of declaring/filling an video driver's module version
struct to short statement like this:
XF86_MODULE_VERSION_VIDEO("ati",
PACKAGE_VERSION_MAJOR,
PACKAGE_VERSION_MINOR,
PACKAGE_VERSION_PATCHLEVEL);
This will create a properly filled XF86ModuleVersionInfo structure
named `modInfo`.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Reduce the effort of declaring/filling an input driver's module version
struct to short statement like this:
XF86_MODULE_VERSION_INPUT("egalax",
PACKAGE_VERSION_MAJOR,
PACKAGE_VERSION_MINOR,
PACKAGE_VERSION_PATCHLEVEL);
This will create a properly filled XF86ModuleVersionInfo structure
named `modInfo`.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
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>
It is patch 3/3 of a series that makes adding GPU screens
more controllable.
If AutoAddGPU is "off", matching devices for autoconfigured
drivers are sought for anyway, and then the unused list is
freed. This patch cancels an unnecessary search.
Signed-off-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
It is patch 1/3 of a series that makes adding GPU screens
more controllable.
If SingleDriver option is set to "on", then only the first
successfully probed driver adds non-GPU screens, others
may add secondary GPU screens only.
Fixes github.com/X11Libre/xserver/issues/1669
Signed-off-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
Brought back the code removed in that commit so that we can bring back
Cygwin support.
Small changes are done in the process of resolving conflicts against the
current head.
Some checks have not been reverted, because they were not necessary
anymore.
Signed-off-by: b-aaz <b-aazbsd@proton.me>
Not needed by any driver - only use as parameter to xf86ProcessActionEvent(),
which already is private.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
The device node opening with seatd, like with systemd-logind can done during probe
(see get_drm_info in hw/xfree86/os-support/shared/drm_platform.c),
but in case of failure, the modesetting driver tries to open device
node directly (open_hw function in modesetting/driver.c).
This enchanes open_hw function to try use seatd arbiter for opening device node
in as last resort manner.
To make it functional seatd_libseat_open_graphics needs to have _X_EXPORT
Signed-off-by: tautvis <gtautvis gmail com>
Add necessary code into Xserver to support libseat (this time enabling
functionality).
Code used from Devuan repository + local changes to make functional in Xlibre
Co-Authored-By: Mark Hindley <mark@hindley.org.uk>
Co-Authored-By: Ralph Ronnquist <rrq@rrq.au>
Signed-off-By: Tautvis <gtautvis@gmail.com>
Refactor libseat code for Xlibre and add to meson.build:
* update meson for seat-libseat
* refactor code:
* seatd-libseat.c - add aditional private include headers
* add cast to libseat_set_log_handler argument 1 for (libseat_log_func),
for warning silencing
* make seatd_libseat_init to accept keeptty state as parameter
* include xf86Events, xf86_priv - make visible xf86VTLeave for seatd code (it
is neccesary because seatd can force console leave)
Signed-off-By: Tautvis <gtautvis@gmail.com>
This is initial patch for libseat. Technicaly almost verbatim code (with style changes)
from Devuan xorg server moved to os-support/shared directory as it can support other
oses than linux.
The original repository: https://git.devuan.org/devuan/xorg-server.git
The patch between fc24510f17e89a5bbac1065abab758a4d0c42634 and
6bf62381d0
Co-Authored-By: Mark Hindley <mark@hindley.org.uk>
Co-Authored-By: Ralph Ronnquist <rrq@rrq.au>
Signed-off-By: Tautvis <gtautvis@gmail.com>
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>
The driver directory name now includes a version tag, and the configure code has to search in the right directory.
Signed-off-by: alex14fr <alex14fr@gmail.com>
It is patch 2/2 of a series that provides a convenient way to specify
module search paths on a per-driver basis.
This entry proved to be useful in InputClass, so added it to OutputClass
as well. This allows to configure graphic drivers separately depending
on server layout names.
Signed-off-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
It is patch 1/2 of a series that provides a convenient way to specify
module search paths on a per-driver basis.
This patch allows to set ModulePath for certain modules, in particular,
GPU drivers.
Signed-off-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
Still needs to be _X_EXPORT'ed for internal modules, but
not supposed to be visible to external drivers.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
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>
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>
For cpu_family(), meson returns "sparc" for 32-bit sparc,
and "sparc64" for 64-bit sparc, regardless of the OS in use.
For cpu(), meson returns values like "sun4v" on Solaris/SPARC,
and doesn't promise stability of the values, or portability across
OS'es, unlike cpu_family().
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2070>
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>
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>
Not used by any external drivers, so no need to keep them in public
SDK headers. Since they're never used by drivers, it's effectively
not an ABI change, so can safely be done within ABI-25.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Not used by any drivers, no no need to keep it in public SDK.
Since it's not used by drivers, it's effectively not an ABI change,
so can be done within ABI-25.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
The request handler already refusing non-local access, so no need
for any extra swapped handler.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Move functions/macros dealing with request parsing or reply assembly/write
out of the big dix_priv.h into their own headers. This new header will also
get more of those function/macros soon (yet still in the pipeline).
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
These xf86_num_platform_devices and xf86_platform_devices fields aren't
_X_EXPORTED, so no drivers can use them - and none are trying so.
Thus move them to internal / non-sdk header.
Not an ABI change.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
These were global variables that were tracking how many
slots of one kind were claimed by drivers,
or if slots of one kind were claimed by drivers.
There were used inconsistently, sometimes they were `int`'s,
sometimes they were `Bool`'s.
All they were doing was to kill the server in various circumstances,
that were often incorrect and lead to bug reports, and guard against
a very speciffic kind of driver code error in `xf86ClaimFbSlot`,
that was also prone to false-positives.
Now that both these uses were removed,
these globals are no longer used, so we can remove them.
Signed-off-by: stefan11111 <stefan11111@shitposting.expert>