diff --git a/hw/xfree86/compat/geeventinit.c b/hw/xfree86/compat/geeventinit.c new file mode 100644 index 000000000..53dc2cc42 --- /dev/null +++ b/hw/xfree86/compat/geeventinit.c @@ -0,0 +1,28 @@ +#include + +#include +#include + +#include "os/osdep.h" + +#include "xf86_compat.h" + +/* + * needed for NVidia proprietary driver 570.x and 575.x version + * + * they really need special functions for trivial struct initialization :p + * + * this function had been obsolete and removed long ago, but NVidia folks + * still didn't do basic maintenance and fixed their driver + */ + +_X_EXPORT void GEInitEvent(xGenericEvent *ev, int extension); + +void GEInitEvent(xGenericEvent *ev, int extension) +{ + xf86NVidiaBugObsoleteFunc("GEInitEvent()"); + + ev->type = GenericEvent; + ev->extension = extension; + ev->length = 0; +} diff --git a/hw/xfree86/compat/meson.build b/hw/xfree86/compat/meson.build index b3835efdc..22c253b5a 100644 --- a/hw/xfree86/compat/meson.build +++ b/hw/xfree86/compat/meson.build @@ -1,8 +1,10 @@ srcs_xorg_compat = [ 'clientexception.c', + 'geeventinit.c', 'log.c', 'nvidiabug.c', 'ones.c', + 'timercheck.c', 'xf86Helper.c', ] diff --git a/hw/xfree86/compat/timercheck.c b/hw/xfree86/compat/timercheck.c new file mode 100644 index 000000000..a434e5685 --- /dev/null +++ b/hw/xfree86/compat/timercheck.c @@ -0,0 +1,23 @@ +#include + +#include + +#include "os/osdep.h" + +#include "xf86_compat.h" + +/* + * needed for NVidia proprietary driver 570.x and 575.x version + * force the server to see if any timer callbacks should be called + * + * this function had been obsolete and removed long ago, but NVidia folks + * still didn't do basic maintenance and fixed their driver + */ + +_X_EXPORT void TimerCheck(void); + +void TimerCheck(void) { + xf86NVidiaBugObsoleteFunc("TimerCheck()"); + + DoTimers(GetTimeInMillis()); +} diff --git a/os/WaitFor.c b/os/WaitFor.c index 973a3495d..32b9b5b03 100644 --- a/os/WaitFor.c +++ b/os/WaitFor.c @@ -105,7 +105,6 @@ struct _OsTimerRec { }; static void DoTimer(OsTimerPtr timer, CARD32 now); -static void DoTimers(CARD32 now); static void CheckAllTimers(void); static volatile struct xorg_list timers; @@ -276,8 +275,7 @@ DoTimer(OsTimerPtr timer, CARD32 now) TimerSet(timer, 0, newTime, timer->callback, timer->arg); } -static void -DoTimers(CARD32 now) +void DoTimers(CARD32 now) { OsTimerPtr timer; diff --git a/os/osdep.h b/os/osdep.h index ff41f2482..bf3c00f3b 100644 --- a/os/osdep.h +++ b/os/osdep.h @@ -225,4 +225,7 @@ Ones(unsigned long mask) #define LIMITCLIENTS 256 /* Must be a power of 2 and <= MAXCLIENTS */ +/* run timers that are expired at timestamp `now` */ +void DoTimers(CARD32 now); + #endif /* _OSDEP_H_ */