xserver: Branch 'master' - 4 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Apr 30 00:53:40 UTC 2024


 Xext/bigreq.c                           |    2 
 Xext/dpms.c                             |    2 
 Xext/geext.c                            |    2 
 Xext/panoramiX.c                        |    2 
 Xext/saver.c                            |    2 
 Xext/shape.c                            |    2 
 Xext/shm.c                              |   13 --
 Xext/sync.c                             |    2 
 Xext/xcmisc.c                           |    2 
 Xext/xres.c                             |    2 
 Xext/xselinux_ext.c                     |    2 
 Xext/xtest.c                            |    4 
 Xext/xvmain.c                           |    2 
 Xext/xvmc.c                             |    2 
 Xi/allowev.c                            |    3 
 Xi/chgdctl.c                            |    8 -
 Xi/chgkmap.c                            |    6 
 Xi/chgprop.c                            |    1 
 Xi/exevents.c                           |    4 
 Xi/extinit.c                            |   14 +-
 Xi/grabdev.c                            |    8 -
 Xi/grabdevb.c                           |    9 -
 Xi/grabdevk.c                           |    9 -
 Xi/gtmotion.c                           |    7 -
 Xi/queryst.c                            |    9 -
 Xi/selectev.c                           |    3 
 Xi/sendexev.c                           |    9 -
 Xi/setfocus.c                           |    9 -
 Xi/xiallowev.c                          |    2 
 Xi/xichangehierarchy.c                  |   13 +-
 Xi/xigrabdev.c                          |    8 -
 Xi/xipassivegrab.c                      |    2 
 Xi/xiproperty.c                         |   11 -
 Xi/xiquerydevice.c                      |    8 -
 Xi/xiquerypointer.c                     |    2 
 Xi/xiqueryversion.c                     |    3 
 Xi/xiselectev.c                         |    2 
 Xi/xisetdevfocus.c                      |    6 
 composite/compext.c                     |    2 
 damageext/damageext.c                   |    3 
 dbe/dbe.c                               |    2 
 dix/cursor.c                            |    3 
 dix/devices.c                           |   16 +-
 dix/dispatch.c                          |    1 
 dix/dix_priv.h                          |  150 +++++++++++++++++++++++
 dix/dixstruct_priv.h                    |   92 ++++++++++++++
 dix/enterleave.c                        |    1 
 dix/eventconvert.c                      |    3 
 dix/events.c                            |   23 +--
 dix/exevents_priv.h                     |  158 +++++++++++++++++++++++++
 dix/gestures.c                          |    2 
 dix/grabs.c                             |    4 
 dix/inpututils.c                        |    3 
 dix/touch.c                             |    3 
 dix/window.c                            |    3 
 dri3/dri3.c                             |    2 
 dri3/dri3_request.c                     |    1 
 glx/vndext.c                            |    1 
 hw/kdrive/ephyr/ephyrinit.c             |    1 
 hw/xfree86/common/xf86DGA.c             |   10 -
 hw/xfree86/common/xf86Xinput.c          |    4 
 hw/xfree86/modes/xf86Rotate.c           |    9 -
 hw/xnest/Init.c                         |    2 
 hw/xquartz/xpr/xprScreen.c              |    1 
 hw/xwayland/xwayland-input.c            |    2 
 hw/xwin/InitInput.c                     |    2 
 hw/xwin/InitOutput.c                    |    2 
 hw/xwin/winclipboardwrappers.c          |    2 
 hw/xwin/winkeybd.c                      |    4 
 hw/xwin/winmultiwindowwndproc.c         |    3 
 include/dix.h                           |  202 +-------------------------------
 include/dixstruct.h                     |   72 -----------
 include/exevents.h                      |  178 ----------------------------
 include/extinit.h                       |   43 ------
 include/extinit_priv.h                  |   42 ++++++
 include/nonsdk_extinit.h                |    1 
 include/xkbsrv.h                        |   25 ---
 mi/midispcur.c                          |    3 
 mi/miinitext.c                          |    2 
 mi/mipointer.c                          |    3 
 mi/misprite.c                           |    3 
 os/WaitFor.c                            |    2 
 os/connection.c                         |    2 
 os/io.c                                 |    2 
 os/osinit.c                             |    2 
 os/utils.c                              |    1 
 pseudoramiX/pseudoramiX.c               |    1 
 randr/randr.c                           |    2 
 record/record.c                         |    2 
 render/render.c                         |    2 
 test/input.c                            |   11 -
 test/xi2/protocol-common.c              |    5 
 test/xi2/protocol-eventconvert.c        |    4 
 test/xi2/protocol-xigetselectedevents.c |    4 
 test/xi2/protocol-xipassivegrabdevice.c |    4 
 test/xi2/protocol-xiqueryversion.c      |    3 
 test/xtest.c                            |    2 
 xfixes/xfixes.c                         |    2 
 xkb/xkb.c                               |    2 
 xkb/xkbAccessX.c                        |   12 +
 xkb/xkbActions.c                        |    8 -
 xkb/xkbEvents.c                         |    6 
 xkb/xkbInit.c                           |    4 
 xkb/xkbLEDs.c                           |    9 -
 xkb/xkbPrKeyEv.c                        |    8 -
 xkb/xkbUtils.c                          |    6 
 xkb/xkbsrv_priv.h                       |   27 ++++
 107 files changed, 719 insertions(+), 700 deletions(-)

New commits:
commit eff7ccc11c5e5ef6f8a0cf99a8c2f6e926c726ab
Author: Enrico Weigelt, metux IT consult <info at metux.net>
Date:   Mon Feb 12 18:57:22 2024 +0100

    include: move private definitions out of exevents.h
    
    Public server module API shouldn't be clobbered with private definitions,
    thus move them out to private header.
    
    Signed-off-by: Enrico Weigelt, metux IT consult <info at metux.net>
    Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1289>

diff --git a/Xext/xtest.c b/Xext/xtest.c
index 8fb580927..b451e41cd 100644
--- a/Xext/xtest.c
+++ b/Xext/xtest.c
@@ -38,6 +38,7 @@
 #include <X11/extensions/XIproto.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 #include "os/osdep.h"
 
 #include "misc.h"
@@ -55,7 +56,6 @@
 #include "exglobals.h"
 #include "mipointer.h"
 #include "xserver-properties.h"
-#include "exevents.h"
 #include "eventstr.h"
 #include "inpututils.h"
 #include "extinit_priv.h"
diff --git a/Xi/chgdctl.c b/Xi/chgdctl.c
index a778fa380..a6325a1c6 100644
--- a/Xi/chgdctl.c
+++ b/Xi/chgdctl.c
@@ -54,14 +54,14 @@ SOFTWARE.
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"           /* DeviceIntPtr      */
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>     /* control constants */
-#include "XIstubs.h"
 
-#include "exglobals.h"
-#include "exevents.h"
+#include "dix/exevents_priv.h"
 
+#include "inputstr.h"           /* DeviceIntPtr      */
+#include "XIstubs.h"
+#include "exglobals.h"
 #include "chgdctl.h"
 
 /***********************************************************************
diff --git a/Xi/chgkmap.c b/Xi/chgkmap.c
index befe6e7ae..2940a2cb0 100644
--- a/Xi/chgkmap.c
+++ b/Xi/chgkmap.c
@@ -54,10 +54,12 @@ SOFTWARE.
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"           /* DeviceIntPtr      */
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
-#include "exevents.h"
+
+#include "dix/exevents_priv.h"
+
+#include "inputstr.h"           /* DeviceIntPtr      */
 #include "exglobals.h"
 
 #include "chgkmap.h"
diff --git a/Xi/chgprop.c b/Xi/chgprop.c
index 892ac4a23..a97fab18d 100644
--- a/Xi/chgprop.c
+++ b/Xi/chgprop.c
@@ -58,6 +58,7 @@ SOFTWARE.
 #include <X11/extensions/XIproto.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 
 #include "inputstr.h"           /* DeviceIntPtr      */
 #include "windowstr.h"
diff --git a/Xi/exevents.c b/Xi/exevents.c
index 7ef0f2df6..61de1dfda 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -84,20 +84,20 @@ SOFTWARE.
 
 #include <X11/X.h>
 #include <X11/Xproto.h>
+#include <X11/extensions/geproto.h>
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
 #include <X11/extensions/XI2proto.h>
-#include <X11/extensions/geproto.h>
 #include <X11/extensions/XKBproto.h>
 
 #include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
+#include "dix/exevents_priv.h"
 
 #include "inputstr.h"
 #include "windowstr.h"
 #include "miscstruct.h"
 #include "region.h"
-#include "exevents.h"
 #include "extnsionst.h"
 #include "exglobals.h"
 #include "eventstr.h"
diff --git a/Xi/extinit.c b/Xi/extinit.c
index e99da9ce6..6354ad059 100644
--- a/Xi/extinit.c
+++ b/Xi/extinit.c
@@ -61,13 +61,13 @@ SOFTWARE.
 #include <X11/extensions/geproto.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 
 #include "inputstr.h"
 #include "gcstruct.h"           /* pointer for extnsionst.h */
 #include "extnsionst.h"         /* extension entry   */
 #include "geext.h"              /* extension interfaces for ge */
 #include "dixevents.h"
-#include "exevents.h"
 #include "extinit_priv.h"
 #include "exglobals.h"
 #include "swaprep.h"
diff --git a/Xi/grabdevb.c b/Xi/grabdevb.c
index a2f7eb395..6b54dd425 100644
--- a/Xi/grabdevb.c
+++ b/Xi/grabdevb.c
@@ -54,14 +54,15 @@ SOFTWARE.
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"           /* DeviceIntPtr      */
-#include "windowstr.h"          /* window structure  */
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
-#include "exevents.h"
+
+#include "dix/exevents_priv.h"
+
+#include "inputstr.h"           /* DeviceIntPtr      */
+#include "windowstr.h"          /* window structure  */
 #include "exglobals.h"
 #include "xace.h"
-
 #include "grabdev.h"
 #include "grabdevb.h"
 
diff --git a/Xi/grabdevk.c b/Xi/grabdevk.c
index e856fa82c..f63de62d3 100644
--- a/Xi/grabdevk.c
+++ b/Xi/grabdevk.c
@@ -54,14 +54,15 @@ SOFTWARE.
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"           /* DeviceIntPtr      */
-#include "windowstr.h"          /* window structure  */
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
-#include "exevents.h"
+
+#include "dix/exevents_priv.h"
+
+#include "inputstr.h"           /* DeviceIntPtr      */
+#include "windowstr.h"          /* window structure  */
 #include "exglobals.h"
 #include "xace.h"
-
 #include "grabdev.h"
 #include "grabdevk.h"
 
diff --git a/Xi/gtmotion.c b/Xi/gtmotion.c
index 7c6684996..57a25bb2e 100644
--- a/Xi/gtmotion.c
+++ b/Xi/gtmotion.c
@@ -54,12 +54,13 @@ SOFTWARE.
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"           /* DeviceIntPtr      */
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
-#include "exevents.h"
-#include "exglobals.h"
 
+#include "dix/exevents_priv.h"
+
+#include "inputstr.h"           /* DeviceIntPtr      */
+#include "exglobals.h"
 #include "gtmotion.h"
 
 /***********************************************************************
diff --git a/Xi/queryst.c b/Xi/queryst.c
index 6c9d66606..34bfa9031 100644
--- a/Xi/queryst.c
+++ b/Xi/queryst.c
@@ -36,15 +36,16 @@ from The Open Group.
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"           /* DeviceIntPtr      */
-#include "windowstr.h"          /* window structure  */
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
-#include "exevents.h"
+
+#include "dix/exevents_priv.h"
+
+#include "inputstr.h"           /* DeviceIntPtr      */
+#include "windowstr.h"          /* window structure  */
 #include "exglobals.h"
 #include "xkbsrv.h"
 #include "xkbstr.h"
-
 #include "queryst.h"
 
 /***********************************************************************
diff --git a/Xi/selectev.c b/Xi/selectev.c
index 6b7bdc512..378403d3b 100644
--- a/Xi/selectev.c
+++ b/Xi/selectev.c
@@ -59,12 +59,11 @@ SOFTWARE.
 #include <X11/extensions/XIproto.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 
 #include "inputstr.h"           /* DeviceIntPtr      */
 #include "windowstr.h"          /* window structure  */
-#include "exevents.h"
 #include "exglobals.h"
-
 #include "grabdev.h"
 #include "selectev.h"
 
diff --git a/Xi/sendexev.c b/Xi/sendexev.c
index 5c2e0fc56..0f6b4e46a 100644
--- a/Xi/sendexev.c
+++ b/Xi/sendexev.c
@@ -54,14 +54,15 @@ SOFTWARE.
 #include <dix-config.h>
 #endif
 
+#include <X11/extensions/XI.h>
+#include <X11/extensions/XIproto.h>
+
+#include "dix/exevents_priv.h"
+
 #include "inputstr.h"           /* DeviceIntPtr      */
 #include "windowstr.h"          /* Window            */
 #include "extnsionst.h"         /* EventSwapPtr      */
-#include <X11/extensions/XI.h>
-#include <X11/extensions/XIproto.h>
-#include "exevents.h"
 #include "exglobals.h"
-
 #include "grabdev.h"
 #include "sendexev.h"
 
diff --git a/Xi/xiallowev.c b/Xi/xiallowev.c
index ab83a19e7..03ced79bb 100644
--- a/Xi/xiallowev.c
+++ b/Xi/xiallowev.c
@@ -37,13 +37,13 @@
 #include <X11/extensions/XI2proto.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 
 #include "inputstr.h"           /* DeviceIntPtr      */
 #include "windowstr.h"          /* window structure  */
 #include "mi.h"
 #include "eventstr.h"
 #include "exglobals.h"          /* BadDevice */
-#include "exevents.h"
 #include "xiallowev.h"
 
 int _X_COLD
diff --git a/Xi/xichangehierarchy.c b/Xi/xichangehierarchy.c
index e31d3332d..eea917ff6 100644
--- a/Xi/xichangehierarchy.c
+++ b/Xi/xichangehierarchy.c
@@ -41,12 +41,12 @@
 #include <X11/extensions/geproto.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 
 #include "inputstr.h"           /* DeviceIntPtr      */
 #include "windowstr.h"          /* window structure  */
 #include "scrnintstr.h"         /* screen structure  */
 #include "extnsionst.h"
-#include "exevents.h"
 #include "exglobals.h"
 #include "geext.h"
 #include "xace.h"
diff --git a/Xi/xigrabdev.c b/Xi/xigrabdev.c
index d23d58ecd..604f8c926 100644
--- a/Xi/xigrabdev.c
+++ b/Xi/xigrabdev.c
@@ -37,11 +37,11 @@
 #include <X11/extensions/XI2proto.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 
 #include "inputstr.h"           /* DeviceIntPtr      */
 #include "windowstr.h"          /* window structure  */
 #include "exglobals.h"          /* BadDevice */
-#include "exevents.h"
 #include "xigrabdev.h"
 #include "inpututils.h"
 
diff --git a/Xi/xipassivegrab.c b/Xi/xipassivegrab.c
index 900a3e113..78147d8dd 100644
--- a/Xi/xipassivegrab.c
+++ b/Xi/xipassivegrab.c
@@ -37,12 +37,12 @@
 #include <X11/extensions/XI2proto.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 
 #include "inputstr.h"           /* DeviceIntPtr      */
 #include "windowstr.h"          /* window structure  */
 #include "swaprep.h"
 #include "exglobals.h"          /* BadDevice */
-#include "exevents.h"
 #include "xipassivegrab.h"
 #include "dixgrabs.h"
 #include "misc.h"
diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
index 9c44f9d3e..aaafc629b 100644
--- a/Xi/xiproperty.c
+++ b/Xi/xiproperty.c
@@ -29,16 +29,17 @@
 #include <dix-config.h>
 #endif
 
-#include "dix.h"
-#include "inputstr.h"
-#include <X11/extensions/XI.h>
 #include <X11/Xatom.h>
+#include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
 #include <X11/extensions/XI2proto.h>
+
+#include "dix/exevents_priv.h"
+
+#include "dix.h"
+#include "inputstr.h"
 #include "exglobals.h"
-#include "exevents.h"
 #include "swaprep.h"
-
 #include "xiproperty.h"
 #include "xserver-properties.h"
 
diff --git a/Xi/xiquerydevice.c b/Xi/xiquerydevice.c
index e4731a119..c9a9864bc 100644
--- a/Xi/xiquerydevice.c
+++ b/Xi/xiquerydevice.c
@@ -32,20 +32,20 @@
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"
 #include <X11/X.h>
 #include <X11/Xatom.h>
 #include <X11/extensions/XI2proto.h>
+
+#include "dix/exevents_priv.h"
+
+#include "inputstr.h"
 #include "xkbstr.h"
 #include "xkbsrv.h"
 #include "xserver-properties.h"
-#include "exevents.h"
 #include "xace.h"
 #include "inpututils.h"
-
 #include "exglobals.h"
 #include "privates.h"
-
 #include "xiquerydevice.h"
 
 static Bool ShouldSkipDevice(ClientPtr client, int deviceid, DeviceIntPtr d);
diff --git a/Xi/xiquerypointer.c b/Xi/xiquerypointer.c
index 7da45fdc2..2ac3e73a0 100644
--- a/Xi/xiquerypointer.c
+++ b/Xi/xiquerypointer.c
@@ -40,11 +40,11 @@
 
 #include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
+#include "dix/exevents_priv.h"
 
 #include "inputstr.h"           /* DeviceIntPtr      */
 #include "windowstr.h"          /* window structure  */
 #include "extnsionst.h"
-#include "exevents.h"
 #include "exglobals.h"
 #include "scrnintstr.h"
 #include "xkbsrv.h"
diff --git a/Xi/xiqueryversion.c b/Xi/xiqueryversion.c
index 111f1d61a..dc3860a21 100644
--- a/Xi/xiqueryversion.c
+++ b/Xi/xiqueryversion.c
@@ -39,8 +39,9 @@
 #include <X11/X.h>
 #include <X11/extensions/XI2proto.h>
 
+#include "dix/exevents_priv.h"
+
 #include "exglobals.h"
-#include "exevents.h"
 #include "xiqueryversion.h"
 #include "misc.h"
 
diff --git a/Xi/xiselectev.c b/Xi/xiselectev.c
index 4d025b6e0..6c6aff884 100644
--- a/Xi/xiselectev.c
+++ b/Xi/xiselectev.c
@@ -30,11 +30,11 @@
 #include <X11/extensions/XI2proto.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 
 #include "dixstruct.h"
 #include "windowstr.h"
 #include "exglobals.h"
-#include "exevents.h"
 #include "inpututils.h"
 #include "xiselectev.h"
 
diff --git a/dix/devices.c b/dix/devices.c
index 4d8974b67..73402e091 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -58,6 +58,7 @@ SOFTWARE.
 #include <X11/extensions/XIproto.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 #include "dix/ptrveloc_priv.h"
 #include "xkb/xkbsrv_priv.h"
 
@@ -79,7 +80,6 @@ SOFTWARE.
 #include "eventstr.h"
 #include "dixgrabs.h"
 #include "exglobals.h"
-#include "exevents.h"
 #include "xiquerydevice.h"      /* for SizeDeviceClasses */
 #include "xiproperty.h"
 #include "enterleave.h"         /* for EnterWindow() */
diff --git a/dix/eventconvert.c b/dix/eventconvert.c
index 998304ad9..a7f43efe6 100644
--- a/dix/eventconvert.c
+++ b/dix/eventconvert.c
@@ -41,12 +41,12 @@
 
 #include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
+#include "dix/exevents_priv.h"
 
 #include "dix.h"
 #include "inputstr.h"
 #include "misc.h"
 #include "eventstr.h"
-#include "exevents.h"
 #include "exglobals.h"
 #include "inpututils.h"
 #include "xiquerydevice.h"
diff --git a/dix/events.c b/dix/events.c
index 00ada3340..361a1c298 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -116,6 +116,7 @@ Equipment Corporation.
 
 #include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
+#include "dix/exevents_priv.h"
 #include "xkb/xkbsrv_priv.h"
 
 #include "misc.h"
@@ -134,7 +135,6 @@ Equipment Corporation.
 #include "xace.h"
 #include "probes.h"
 #include "exglobals.h"
-#include "exevents.h"
 #include "extnsionst.h"
 #include "dixevents.h"
 #include "dixgrabs.h"
diff --git a/dix/exevents_priv.h b/dix/exevents_priv.h
new file mode 100644
index 000000000..b9e397987
--- /dev/null
+++ b/dix/exevents_priv.h
@@ -0,0 +1,158 @@
+/* SPDX-License-Identifier: MIT OR X11
+ *
+ * Copyright © 1996 Thomas E. Dickey <dickey at clark.net>
+ * Copyright © 2024 Enrico Weigelt, metux IT consult <info at metux.net>
+ */
+#ifndef _XSERVER_EXEVENTS_PRIV_H
+#define _XSERVER_EXEVENTS_PRIV_H
+
+#include <X11/extensions/XIproto.h>
+#include "exevents.h"
+
+/**
+ * Attached to the devPrivates of each client. Specifies the version number as
+ * supported by the client.
+ */
+typedef struct _XIClientRec {
+    int major_version;
+    int minor_version;
+} XIClientRec, *XIClientPtr;
+
+typedef struct _GrabParameters {
+    int grabtype;               /* CORE, etc. */
+    unsigned int ownerEvents;
+    unsigned int this_device_mode;
+    unsigned int other_devices_mode;
+    Window grabWindow;
+    Window confineTo;
+    Cursor cursor;
+    unsigned int modifiers;
+} GrabParameters;
+
+int UpdateDeviceState(DeviceIntPtr device, DeviceEvent *xE);
+
+void ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr other);
+
+int CheckGrabValues(ClientPtr client, GrabParameters *param);
+
+int GrabButton(ClientPtr client,
+               DeviceIntPtr dev,
+               DeviceIntPtr modifier_device,
+               int button,
+               GrabParameters *param,
+               enum InputLevel grabtype,
+               GrabMask *eventMask);
+
+int GrabKey(ClientPtr client,
+            DeviceIntPtr dev,
+            DeviceIntPtr modifier_device,
+            int key,
+            GrabParameters *param,
+            enum InputLevel grabtype,
+            GrabMask *eventMask);
+
+int GrabWindow(ClientPtr client,
+               DeviceIntPtr dev,
+               int type,
+               GrabParameters *param,
+               GrabMask *eventMask);
+
+int GrabTouchOrGesture(ClientPtr client,
+                       DeviceIntPtr dev,
+                       DeviceIntPtr mod_dev,
+                       int type,
+                       GrabParameters *param,
+                       GrabMask *eventMask);
+
+int SelectForWindow(DeviceIntPtr dev,
+                    WindowPtr pWin,
+                    ClientPtr client,
+                    Mask mask,
+                    Mask exclusivemasks);
+
+int AddExtensionClient(WindowPtr pWin,
+                       ClientPtr client,
+                       Mask mask,
+                       int mskidx);
+
+void RecalculateDeviceDeliverableEvents(WindowPtr pWin);
+
+int InputClientGone(WindowPtr pWin, XID id);
+
+void WindowGone(WindowPtr win);
+
+int SendEvent(ClientPtr client,
+              DeviceIntPtr d,
+              Window dest,
+              Bool propagate,
+              xEvent *ev,
+              Mask mask ,
+              int count);
+
+int SetButtonMapping(ClientPtr client,
+                     DeviceIntPtr dev,
+                     int nElts,
+                     BYTE *map);
+
+int ChangeKeyMapping(ClientPtr client,
+                     DeviceIntPtr dev,
+                     unsigned len,
+                     int type,
+                     KeyCode firstKeyCode,
+                     CARD8 keyCodes,
+                     CARD8 keySymsPerKeyCode,
+                     KeySym *map);
+
+void DeleteWindowFromAnyExtEvents(WindowPtr pWin, Bool freeResources);
+
+int MaybeSendDeviceMotionNotifyHint(deviceKeyButtonPointer *pEvents, Mask mask);
+
+void CheckDeviceGrabAndHintWindow(WindowPtr pWin,
+                                  int type,
+                                  deviceKeyButtonPointer *xE,
+                                  GrabPtr grab,
+                                  ClientPtr client,
+                                  Mask deliveryMask);
+
+void MaybeStopDeviceHint(DeviceIntPtr dev, ClientPtr client);
+
+int DeviceEventSuppressForWindow(WindowPtr pWin,
+                                 ClientPtr client,
+                                 Mask mask,
+                                 int maskndx);
+
+void SendEventToAllWindows(DeviceIntPtr dev, Mask mask, xEvent *ev, int count);
+
+void TouchRejected(DeviceIntPtr sourcedev,
+                   TouchPointInfoPtr ti,
+                   XID resource,
+                   TouchOwnershipEvent *ev);
+
+_X_HIDDEN void XI2EventSwap(xGenericEvent *from, xGenericEvent *to);
+
+/* For an event such as MappingNotify which affects client interpretation
+ * of input events sent by device dev, should we notify the client, or
+ * would it merely be irrelevant and confusing? */
+int XIShouldNotify(ClientPtr client,
+                   DeviceIntPtr dev);
+
+void XISendDeviceChangedEvent(DeviceIntPtr device,
+                              DeviceChangedEvent *dce);
+
+int XISetEventMask(DeviceIntPtr dev,
+                   WindowPtr win,
+                   ClientPtr client,
+                   unsigned int len,
+                   unsigned char *mask);
+
+int  XICheckInvalidMaskBits(ClientPtr client,
+                            unsigned char *mask,
+                            int len);
+
+void XTestDeviceSendEvents(DeviceIntPtr dev,
+                           int type,
+                           int detail,
+                           int flags,
+                           const ValuatorMask *mask);
+
+#endif /* _XSERVER_EXEVENTS_PRIV_H */
diff --git a/dix/grabs.c b/dix/grabs.c
index bc8fd69bb..d6017bef2 100644
--- a/dix/grabs.c
+++ b/dix/grabs.c
@@ -50,19 +50,19 @@ SOFTWARE.
 #endif
 
 #include <X11/X.h>
-#include "misc.h"
 #include <X11/Xproto.h>
 #include <X11/extensions/XI2.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 #include "os/auth.h"
 
+#include "misc.h"
 #include "windowstr.h"
 #include "inputstr.h"
 #include "cursorstr.h"
 #include "dixgrabs.h"
 #include "xace.h"
-#include "exevents.h"
 #include "exglobals.h"
 #include "inpututils.h"
 #include "client.h"
diff --git a/dix/inpututils.c b/dix/inpututils.c
index 9026f651b..240d0ff8a 100644
--- a/dix/inpututils.c
+++ b/dix/inpututils.c
@@ -27,7 +27,8 @@
 #include "dix-config.h"
 #endif
 
-#include "exevents.h"
+#include "dix/exevents_priv.h"
+
 #include "exglobals.h"
 #include "misc.h"
 #include "input.h"
diff --git a/dix/touch.c b/dix/touch.c
index a2d65eee6..ef5dd4ae3 100644
--- a/dix/touch.c
+++ b/dix/touch.c
@@ -30,13 +30,12 @@
 
 #include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
+#include "dix/exevents_priv.h"
 
 #include "inputstr.h"
 #include "scrnintstr.h"
 #include "dixgrabs.h"
-
 #include "eventstr.h"
-#include "exevents.h"
 #include "exglobals.h"
 #include "inpututils.h"
 #include "windowstr.h"
diff --git a/dix/window.c b/dix/window.c
index d30aff350..3534ff19b 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -101,6 +101,7 @@ Equipment Corporation.
 #endif
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 #include "os/auth.h"
 
 #include "misc.h"
@@ -131,10 +132,8 @@ Equipment Corporation.
 #endif
 #include "selection.h"
 #include "inpututils.h"
-
 #include "privates.h"
 #include "xace.h"
-#include "exevents.h"
 
 #include <X11/Xatom.h>          /* must come after server includes */
 
diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c
index 97769c0b8..614c35ae4 100644
--- a/hw/xfree86/common/xf86DGA.c
+++ b/hw/xfree86/common/xf86DGA.c
@@ -48,6 +48,7 @@
 
 #include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
+#include "dix/exevents_priv.h"
 
 #include "xf86.h"
 #include "xf86str.h"
@@ -63,7 +64,6 @@
 #include "xkbsrv.h"
 #include "xf86Xinput.h"
 #include "exglobals.h"
-#include "exevents.h"
 #include "eventstr.h"
 #include "xf86Extensions.h"
 #include "mi.h"
diff --git a/hw/xwayland/xwayland-input.c b/hw/xwayland/xwayland-input.c
index 9ad0cc66f..da7e80e88 100644
--- a/hw/xwayland/xwayland-input.c
+++ b/hw/xwayland/xwayland-input.c
@@ -30,9 +30,9 @@
 #include <sys/mman.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 
 #include <inputstr.h>
-#include <exevents.h>
 #include <xkbsrv.h>
 #include <xserver-properties.h>
 #include <inpututils.h>
diff --git a/include/exevents.h b/include/exevents.h
index 7e3029fc9..50a777a33 100644
--- a/include/exevents.h
+++ b/include/exevents.h
@@ -134,182 +134,4 @@ extern _X_EXPORT int XIPropToFloat(XIPropertyValuePtr val,
  *                      End of driver interface                             *
  ****************************************************************************/
 
-/**
- * Attached to the devPrivates of each client. Specifies the version number as
- * supported by the client.
- */
-typedef struct _XIClientRec {
-    int major_version;
-    int minor_version;
-} XIClientRec, *XIClientPtr;
-
-typedef struct _GrabParameters {
-    int grabtype;               /* CORE, etc. */
-    unsigned int ownerEvents;
-    unsigned int this_device_mode;
-    unsigned int other_devices_mode;
-    Window grabWindow;
-    Window confineTo;
-    Cursor cursor;
-    unsigned int modifiers;
-} GrabParameters;
-
-extern int
- UpdateDeviceState(DeviceIntPtr /* device */ ,
-                   DeviceEvent * /*  xE    */ );
-
-extern void
- ProcessOtherEvent(InternalEvent * /* ev */ ,
-                   DeviceIntPtr /* other */ );
-
-extern int
- CheckGrabValues(ClientPtr /* client */ ,
-                 GrabParameters * /* param */ );
-
-extern int
- GrabButton(ClientPtr /* client */ ,
-            DeviceIntPtr /* dev */ ,
-            DeviceIntPtr /* modifier_device */ ,
-            int /* button */ ,
-            GrabParameters * /* param */ ,
-            enum InputLevel /* grabtype */ ,
-            GrabMask * /* eventMask */ );
-
-extern int
- GrabKey(ClientPtr /* client */ ,
-         DeviceIntPtr /* dev */ ,
-         DeviceIntPtr /* modifier_device */ ,
-         int /* key */ ,
-         GrabParameters * /* param */ ,
-         enum InputLevel /* grabtype */ ,
-         GrabMask * /* eventMask */ );
-
-extern int
- GrabWindow(ClientPtr /* client */ ,
-            DeviceIntPtr /* dev */ ,
-            int /* type */ ,
-            GrabParameters * /* param */ ,
-            GrabMask * /* eventMask */ );
-
-extern int
- GrabTouchOrGesture(ClientPtr /* client */ ,
-                    DeviceIntPtr /* dev */ ,
-                    DeviceIntPtr /* mod_dev */ ,
-                    int /* type */ ,
-                    GrabParameters * /* param */ ,
-                    GrabMask * /* eventMask */ );
-
-extern int
- SelectForWindow(DeviceIntPtr /* dev */ ,
-                 WindowPtr /* pWin */ ,
-                 ClientPtr /* client */ ,
-                 Mask /* mask */ ,
-                 Mask /* exclusivemasks */ );
-
-extern int
- AddExtensionClient(WindowPtr /* pWin */ ,
-                    ClientPtr /* client */ ,
-                    Mask /* mask */ ,
-                    int /* mskidx */ );
-
-extern void
- RecalculateDeviceDeliverableEvents(WindowPtr /* pWin */ );
-
-extern int
- InputClientGone(WindowPtr /* pWin */ ,
-                 XID /* id */ );
-
-extern void
- WindowGone(WindowPtr /* win */ );
-
-extern int
- SendEvent(ClientPtr /* client */ ,
-           DeviceIntPtr /* d */ ,
-           Window /* dest */ ,
-           Bool /* propagate */ ,
-           xEvent * /* ev */ ,
-           Mask /* mask */ ,
-           int /* count */ );
-
-extern int
- SetButtonMapping(ClientPtr /* client */ ,
-                  DeviceIntPtr /* dev */ ,
-                  int /* nElts */ ,
-                  BYTE * /* map */ );
-
-extern int
- ChangeKeyMapping(ClientPtr /* client */ ,
-                  DeviceIntPtr /* dev */ ,
-                  unsigned /* len */ ,
-                  int /* type */ ,
-                  KeyCode /* firstKeyCode */ ,
-                  CARD8 /* keyCodes */ ,
-                  CARD8 /* keySymsPerKeyCode */ ,
-                  KeySym * /* map */ );
-
-extern void
- DeleteWindowFromAnyExtEvents(WindowPtr /* pWin */ ,
-                              Bool /* freeResources */ );
-
-extern int
- MaybeSendDeviceMotionNotifyHint(deviceKeyButtonPointer * /* pEvents */ ,
-                                 Mask /* mask */ );
-
-extern void
- CheckDeviceGrabAndHintWindow(WindowPtr /* pWin */ ,
-                              int /* type */ ,
-                              deviceKeyButtonPointer * /* xE */ ,
-                              GrabPtr /* grab */ ,
-                              ClientPtr /* client */ ,
-                              Mask /* deliveryMask */ );
-
-extern void
- MaybeStopDeviceHint(DeviceIntPtr /* dev */ ,
-                     ClientPtr /* client */ );
-
-extern int
- DeviceEventSuppressForWindow(WindowPtr /* pWin */ ,
-                              ClientPtr /* client */ ,
-                              Mask /* mask */ ,
-                              int /* maskndx */ );
-
-extern void
- SendEventToAllWindows(DeviceIntPtr /* dev */ ,
-                       Mask /* mask */ ,
-                       xEvent * /* ev */ ,
-                       int /* count */ );
-
-extern void
- TouchRejected(DeviceIntPtr /* sourcedev */ ,
-               TouchPointInfoPtr /* ti */ ,
-               XID /* resource */ ,
-               TouchOwnershipEvent * /* ev */ );
-
-extern _X_HIDDEN void XI2EventSwap(xGenericEvent * /* from */ ,
-                                   xGenericEvent * /* to */ );
-
-/* For an event such as MappingNotify which affects client interpretation
- * of input events sent by device dev, should we notify the client, or
- * would it merely be irrelevant and confusing? */
-extern int
- XIShouldNotify(ClientPtr client, DeviceIntPtr dev);
-
-extern void
- XISendDeviceChangedEvent(DeviceIntPtr device, DeviceChangedEvent *dce);
-
-extern int
-
-XISetEventMask(DeviceIntPtr dev, WindowPtr win, ClientPtr client,
-               unsigned int len, unsigned char *mask);
-
-extern int
- XICheckInvalidMaskBits(ClientPtr client, unsigned char *mask, int len);
-
-void
-XTestDeviceSendEvents(DeviceIntPtr dev,
-                      int type,
-                      int detail,
-                      int flags,
-                      const ValuatorMask *mask);
-
 #endif                          /* EXEVENTS_H */
diff --git a/test/input.c b/test/input.c
index 945680001..b0de20331 100644
--- a/test/input.c
+++ b/test/input.c
@@ -30,18 +30,18 @@
 
 #include <stdint.h>
 #include <X11/X.h>
-#include "misc.h"
-#include "resource.h"
 #include <X11/Xproto.h>
 #include <X11/extensions/XI2proto.h>
 #include <X11/Xatom.h>
-#include "windowstr.h"
-#include "inputstr.h"
-#include "exevents.h"
 
 #include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
+#include "dix/exevents_priv.h"
 
+#include "misc.h"
+#include "resource.h"
+#include "windowstr.h"
+#include "inputstr.h"
 #include "exglobals.h"
 #include "dixgrabs.h"
 #include "eventstr.h"
diff --git a/test/xi2/protocol-common.c b/test/xi2/protocol-common.c
index b985e35b7..aae84180a 100644
--- a/test/xi2/protocol-common.c
+++ b/test/xi2/protocol-common.c
@@ -30,15 +30,16 @@
 
 #include <errno.h>
 #include <stdint.h>
+#include <X11/extensions/XI2.h>
 
 #include "dix/dix_priv.h"
+#include "dix/exevents_priv.h"
 
 #include "extinit_priv.h"
 #include "exglobals.h"
 #include "xkbsrv.h"             /* for XkbInitPrivates */
 #include "xserver-properties.h"
 #include "syncsrv.h"
-#include <X11/extensions/XI2.h>
 
 #include "protocol-common.h"
 
diff --git a/test/xi2/protocol-eventconvert.c b/test/xi2/protocol-eventconvert.c
index fb0627bb5..e1317ca1b 100644
--- a/test/xi2/protocol-eventconvert.c
+++ b/test/xi2/protocol-eventconvert.c
@@ -28,14 +28,14 @@
 #endif
 
 #include <stdint.h>
+#include <X11/extensions/XI2proto.h>
 
+#include "dix/exevents_priv.h"
 #include "dix/eventconvert.h"
 
 #include "inputstr.h"
 #include "eventstr.h"
-#include "exevents.h"
 #include "inpututils.h"
-#include <X11/extensions/XI2proto.h>
 
 #include "protocol-common.h"
 
diff --git a/test/xi2/protocol-xigetselectedevents.c b/test/xi2/protocol-xigetselectedevents.c
index 2ea365d01..937b52b2e 100644
--- a/test/xi2/protocol-xigetselectedevents.c
+++ b/test/xi2/protocol-xigetselectedevents.c
@@ -43,12 +43,14 @@
 #include <X11/X.h>
 #include <X11/Xproto.h>
 #include <X11/extensions/XI2proto.h>
+
+#include "dix/exevents_priv.h"
+
 #include "inputstr.h"
 #include "windowstr.h"
 #include "extinit.h"            /* for XInputExtensionInit */
 #include "scrnintstr.h"
 #include "xiselectev.h"
-#include "exevents.h"
 
 #include "protocol-common.h"
 
diff --git a/test/xi2/protocol-xipassivegrabdevice.c b/test/xi2/protocol-xipassivegrabdevice.c
index d7aaf23d4..bc9866493 100644
--- a/test/xi2/protocol-xipassivegrabdevice.c
+++ b/test/xi2/protocol-xipassivegrabdevice.c
@@ -35,11 +35,13 @@
 #include <X11/X.h>
 #include <X11/Xproto.h>
 #include <X11/extensions/XI2proto.h>
+
+#include "dix/exevents_priv.h"
+
 #include "inputstr.h"
 #include "windowstr.h"
 #include "scrnintstr.h"
 #include "xipassivegrab.h"
-#include "exevents.h"
 #include "exglobals.h"
 
 #include "protocol-common.h"
diff --git a/test/xi2/protocol-xiqueryversion.c b/test/xi2/protocol-xiqueryversion.c
index 521703c5a..b8145bc1c 100644
--- a/test/xi2/protocol-xiqueryversion.c
+++ b/test/xi2/protocol-xiqueryversion.c
@@ -43,6 +43,9 @@
 #include <X11/X.h>
 #include <X11/Xproto.h>
 #include <X11/extensions/XI2proto.h>
+
+#include "dix/exevents_priv.h"
+
 #include "inputstr.h"
 #include "extinit.h"            /* for XInputExtensionInit */
 #include "scrnintstr.h"
diff --git a/xkb/xkbEvents.c b/xkb/xkbEvents.c
index c31f89740..e6325d875 100644
--- a/xkb/xkbEvents.c
+++ b/xkb/xkbEvents.c
@@ -34,8 +34,10 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <X11/keysym.h>
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
+
+#include "dix/exevents_priv.h"
+
 #include "inputstr.h"
-#include "exevents.h"
 #include "exglobals.h"
 #include "windowstr.h"
 #include "xkbsrv_priv.h"
commit 33350ef8ff1f2e4daed332db2b67b8f20e09d5ea
Author: Enrico Weigelt, metux IT consult <info at metux.net>
Date:   Mon Feb 12 14:11:52 2024 +0100

    include: move private definitions out of extinit.h
    
    Public server module API shouldn't be clobbered with private definitions,
    thus move them out to extinit_priv.h.
    
    Signed-off-by: Enrico Weigelt, metux IT consult <info at metux.net>
    Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1289>

diff --git a/Xext/bigreq.c b/Xext/bigreq.c
index aca5afb96..0dc60c258 100644
--- a/Xext/bigreq.c
+++ b/Xext/bigreq.c
@@ -41,7 +41,7 @@ from The Open Group.
 #include "dixstruct.h"
 #include "extnsionst.h"
 #include "opaque.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 
 static int
 ProcBigReqDispatch(ClientPtr client)
diff --git a/Xext/dpms.c b/Xext/dpms.c
index bbc7890eb..68759a48a 100644
--- a/Xext/dpms.c
+++ b/Xext/dpms.c
@@ -39,7 +39,7 @@ Equipment Corporation.
 #include "opaque.h"
 #include <X11/extensions/dpmsproto.h>
 #include "dpmsproc.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "scrnintstr.h"
 #include "windowstr.h"
 #include "protocol-versions.h"
diff --git a/Xext/geext.c b/Xext/geext.c
index 05988c41a..ac21b7a53 100644
--- a/Xext/geext.c
+++ b/Xext/geext.c
@@ -32,7 +32,7 @@
 #include "geint.h"
 #include "geext.h"
 #include "protocol-versions.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 
 DevPrivateKeyRec GEClientPrivateKeyRec;
 
diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
index 94c81a7c8..732e983ba 100644
--- a/Xext/panoramiX.c
+++ b/Xext/panoramiX.c
@@ -57,7 +57,7 @@ Equipment Corporation.
 #ifdef COMPOSITE
 #include "compint.h"
 #endif
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "protocol-versions.h"
 
 #ifdef GLXPROXY
diff --git a/Xext/saver.c b/Xext/saver.c
index 29f280369..e6dddbb03 100644
--- a/Xext/saver.c
+++ b/Xext/saver.c
@@ -60,7 +60,7 @@ in this Software without prior written authorization from the X Consortium.
 #include "dpmsproc.h"
 #endif
 #include "protocol-versions.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 
 static int ScreenSaverEventBase = 0;
 
diff --git a/Xext/shape.c b/Xext/shape.c
index 792c20f71..213e7cc3f 100644
--- a/Xext/shape.c
+++ b/Xext/shape.c
@@ -47,7 +47,7 @@ in this Software without prior written authorization from The Open Group.
 #include "opaque.h"
 #include "regionstr.h"
 #include "gcstruct.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "protocol-versions.h"
 
 typedef RegionPtr (*CreateDftPtr) (WindowPtr    /* pWin */
diff --git a/Xext/shm.c b/Xext/shm.c
index 7e6071215..427cf1b4e 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -41,7 +41,10 @@ in this Software without prior written authorization from The Open Group.
 #include <fcntl.h>
 #include <X11/X.h>
 #include <X11/Xproto.h>
+#include <X11/extensions/shmproto.h>
+#include <X11/Xfuncproto.h>
 
+#include "dix/dix_priv.h"
 #include "os/auth.h"
 #include "os/busfault.h"
 #include "os/osdep.h"
@@ -58,9 +61,7 @@ in this Software without prior written authorization from The Open Group.
 #include "servermd.h"
 #include "shmint.h"
 #include "xace.h"
-#include <X11/extensions/shmproto.h>
-#include <X11/Xfuncproto.h>
-#include <sys/mman.h>
+#include "extinit_priv.h"
 #include "protocol-versions.h"
 
 /* Needed for Solaris cross-zone shared memory extension */
@@ -95,10 +96,6 @@ in this Software without prior written authorization from The Open Group.
 #include "panoramiXsrv.h"
 #endif
 
-#include "dix/dix_priv.h"
-
-#include "extinit.h"
-
 typedef struct _ShmScrPrivateRec {
     CloseScreenProcPtr CloseScreen;
     ShmFuncsPtr shmFuncs;
diff --git a/Xext/sync.c b/Xext/sync.c
index 950951e74..a37444bb0 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -79,7 +79,7 @@ PERFORMANCE OF THIS SOFTWARE.
 #include <sys/time.h>
 #endif
 
-#include "extinit.h"
+#include "extinit_priv.h"
 
 /*
  * Local Global Variables
diff --git a/Xext/xcmisc.c b/Xext/xcmisc.c
index c3c0b7f43..385e63383 100644
--- a/Xext/xcmisc.c
+++ b/Xext/xcmisc.c
@@ -38,7 +38,7 @@ from The Open Group.
 #include "extnsionst.h"
 #include "swaprep.h"
 #include <X11/extensions/xcmiscproto.h>
-#include "extinit.h"
+#include "extinit_priv.h"
 
 #include <stdint.h>
 
diff --git a/Xext/xres.c b/Xext/xres.c
index 96c1844fd..9d71402f1 100644
--- a/Xext/xres.c
+++ b/Xext/xres.c
@@ -23,7 +23,7 @@
 #include "pixmapstr.h"
 #include "windowstr.h"
 #include "gcstruct.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "protocol-versions.h"
 #include "client.h"
 #include "list.h"
diff --git a/Xext/xselinux_ext.c b/Xext/xselinux_ext.c
index c7ce19c49..5bfb9a84b 100644
--- a/Xext/xselinux_ext.c
+++ b/Xext/xselinux_ext.c
@@ -28,7 +28,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #include "windowstr.h"
 #include "propertyst.h"
 #include "extnsionst.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "xselinuxint.h"
 
 #define CTX_DEV offsetof(SELinuxSubjectRec, dev_create_sid)
diff --git a/Xext/xtest.c b/Xext/xtest.c
index 96f898656..8fb580927 100644
--- a/Xext/xtest.c
+++ b/Xext/xtest.c
@@ -58,7 +58,7 @@
 #include "exevents.h"
 #include "eventstr.h"
 #include "inpututils.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 
 /* XTest events are sent during request processing and may be interrupted by
  * a SIGIO. We need a separate event list to avoid events overwriting each
diff --git a/Xext/xvmain.c b/Xext/xvmain.c
index 2a08f8744..937f2893b 100644
--- a/Xext/xvmain.c
+++ b/Xext/xvmain.c
@@ -88,7 +88,7 @@ SOFTWARE.
 #include "pixmapstr.h"
 #include "gcstruct.h"
 #include "extnsionst.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "dixstruct.h"
 #include "resource.h"
 #include "opaque.h"
diff --git a/Xext/xvmc.c b/Xext/xvmc.c
index a1fb6238b..04023772d 100644
--- a/Xext/xvmc.c
+++ b/Xext/xvmc.c
@@ -13,7 +13,7 @@
 #include "resource.h"
 #include "scrnintstr.h"
 #include "extnsionst.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "servermd.h"
 #include <X11/Xfuncproto.h>
 #include "xvdix.h"
diff --git a/Xi/extinit.c b/Xi/extinit.c
index 7c08f3a8a..e99da9ce6 100644
--- a/Xi/extinit.c
+++ b/Xi/extinit.c
@@ -68,7 +68,7 @@ SOFTWARE.
 #include "geext.h"              /* extension interfaces for ge */
 #include "dixevents.h"
 #include "exevents.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "exglobals.h"
 #include "swaprep.h"
 #include "privates.h"
diff --git a/composite/compext.c b/composite/compext.c
index cfdb7a216..62bce26e7 100644
--- a/composite/compext.c
+++ b/composite/compext.c
@@ -48,7 +48,7 @@
 #include "compint.h"
 #include "xace.h"
 #include "protocol-versions.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 
 static CARD8 CompositeReqCode;
 static DevPrivateKeyRec CompositeClientPrivateKeyRec;
diff --git a/damageext/damageext.c b/damageext/damageext.c
index 76609fb6b..6a46291fd 100644
--- a/damageext/damageext.c
+++ b/damageext/damageext.c
@@ -30,7 +30,7 @@
 #include "damageextint.h"
 #include "damagestr.h"
 #include "protocol-versions.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "dixstruct_priv.h"
 
 #ifdef PANORAMIX
diff --git a/dbe/dbe.c b/dbe/dbe.c
index 3cf0a3ef9..b9f6690a6 100644
--- a/dbe/dbe.c
+++ b/dbe/dbe.c
@@ -45,7 +45,7 @@
 
 #include "scrnintstr.h"
 #include "extnsionst.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "gcstruct.h"
 #include "dixstruct.h"
 #include "dbestruct.h"
diff --git a/dri3/dri3.c b/dri3/dri3.c
index f9c517277..0ea01bb2f 100644
--- a/dri3/dri3.c
+++ b/dri3/dri3.c
@@ -21,7 +21,7 @@
  */
 
 #include "dri3_priv.h"
-
+#include "extinit_priv.h"
 #include <drm_fourcc.h>
 
 static int dri3_request;
diff --git a/glx/vndext.c b/glx/vndext.c
index 21ba29269..92b3001a3 100644
--- a/glx/vndext.c
+++ b/glx/vndext.c
@@ -35,6 +35,7 @@
 #include <dixstruct.h>
 #include <extnsionst.h>
 #include <glx_extinit.h>
+#include "extinit_priv.h"
 
 #include <GL/glxproto.h>
 #include "vndservervendor.h"
diff --git a/hw/xnest/Init.c b/hw/xnest/Init.c
index 58255c22b..194119ff8 100644
--- a/hw/xnest/Init.c
+++ b/hw/xnest/Init.c
@@ -32,7 +32,7 @@ is" without express or implied warranty.
 #include "servermd.h"
 #include "mi.h"
 #include "dixfontstr.h"
-
+#include "extinit_priv.h"
 #include "Xnest.h"
 
 #include "Display.h"
diff --git a/hw/xquartz/xpr/xprScreen.c b/hw/xquartz/xpr/xprScreen.c
index 562d6a0c3..81de33769 100644
--- a/hw/xquartz/xpr/xprScreen.c
+++ b/hw/xquartz/xpr/xprScreen.c
@@ -54,6 +54,7 @@
 #endif
 
 #include "nonsdk_extinit.h"
+#include "extinit_priv.h"
 
 /* 10.4's deferred update makes X slower.. have to live with the tearing
  * for now.. */
diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c
index 0358b8560..47ec5ba77 100644
--- a/hw/xwin/InitOutput.c
+++ b/hw/xwin/InitOutput.c
@@ -65,6 +65,7 @@ typedef WINAPI HRESULT(*SHGETFOLDERPATHPROC) (HWND hwndOwner,
 
 #include "winmonitors.h"
 #include "nonsdk_extinit.h"
+#include "extinit_priv.h"
 #include "pseudoramiX/pseudoramiX.h"
 
 #include "glx_extinit.h"
diff --git a/include/extinit.h b/include/extinit.h
index 59d18962f..a92aef935 100644
--- a/include/extinit.h
+++ b/include/extinit.h
@@ -55,107 +55,64 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 #ifdef COMPOSITE
 extern _X_EXPORT Bool noCompositeExtension;
-extern void CompositeExtensionInit(void);
 #endif
 
 #ifdef DAMAGE
 extern _X_EXPORT Bool noDamageExtension;
-extern void DamageExtensionInit(void);
 #endif
 
 #if defined(DBE)
 extern _X_EXPORT Bool noDbeExtension;
-extern void DbeExtensionInit(void);
 #endif
 
 #if defined(DPMSExtension)
 extern _X_EXPORT Bool noDPMSExtension;
-extern void DPMSExtensionInit(void);
 #endif
 
-extern Bool noGEExtension;
-extern void GEExtensionInit(void);
-
 #ifdef GLXEXT
 extern _X_EXPORT Bool noGlxExtension;
-extern void GlxExtensionInit(void);
 #endif
 
 #ifdef PANORAMIX
 extern _X_EXPORT Bool noPanoramiXExtension;
-extern void PanoramiXExtensionInit(void);
 #endif
 
 #ifdef RANDR
 extern _X_EXPORT Bool noRRExtension;
-extern void RRExtensionInit(void);
-#endif
-
-#if defined(XRECORD)
-extern void RecordExtensionInit(void);
 #endif
 
 extern _X_EXPORT Bool noRenderExtension;
-extern void RenderExtensionInit(void);
 
 #if defined(RES)
 extern _X_EXPORT Bool noResExtension;
-extern void ResExtensionInit(void);
 #endif
 
 #if defined(SCREENSAVER)
 extern _X_EXPORT Bool noScreenSaverExtension;
-extern void ScreenSaverExtensionInit(void);
 #endif
 
 extern _X_EXPORT Bool noShapeExtension;
-extern void ShapeExtensionInit(void);
 
 #ifdef MITSHM
 extern _X_EXPORT Bool noMITShmExtension;
-extern void ShmExtensionInit(void);
 #endif
 
-extern void SyncExtensionInit(void);
-
-extern void XCMiscExtensionInit(void);
-
 #ifdef XCSECURITY
 extern _X_EXPORT Bool noSecurityExtension;
-extern void SecurityExtensionInit(void);
 #endif
 
 #ifdef XF86BIGFONT
 extern _X_EXPORT Bool noXFree86BigfontExtension;
-extern void XFree86BigfontExtensionInit(void);
 #endif
 
-extern void BigReqExtensionInit(void);
-
 extern _X_EXPORT Bool noXFixesExtension;
-extern void XFixesExtensionInit(void);
-
-extern void XInputExtensionInit(void);
-
-extern void XkbExtensionInit(void);
 
 #if defined(XSELINUX)
 extern _X_EXPORT Bool noSELinuxExtension;
-extern void SELinuxExtensionInit(void);
-#endif
-
-#ifdef XTEST
-extern void XTestExtensionInit(void);
 #endif
 
 #if defined(XV)
 extern _X_EXPORT Bool noXvExtension;
-extern void XvExtensionInit(void);
-extern void XvMCExtensionInit(void);
-#endif
-
-#if defined(DRI3)
-extern void dri3_extension_init(void);
 #endif
 
 #if defined(PRESENT)
diff --git a/include/extinit_priv.h b/include/extinit_priv.h
new file mode 100644
index 000000000..186fe8ad2
--- /dev/null
+++ b/include/extinit_priv.h
@@ -0,0 +1,42 @@
+/* SPDX-License-Identifier: MIT OR X11
+ *
+ * Copyright © 1996 Thomas E. Dickey <dickey at clark.net>
+ * Copyright © 2024 Enrico Weigelt, metux IT consult <info at metux.net>
+ */
+#ifndef _XSERVER_EXTINIT_PRIV_H
+#define _XSERVER_EXTINIT_PRIV_H
+
+#include "extinit.h"
+
+extern Bool noGEExtension;
+
+void CompositeExtensionInit(void);
+void DamageExtensionInit(void);
+void DbeExtensionInit(void);
+void DPMSExtensionInit(void);
+void GEExtensionInit(void);
+void GlxExtensionInit(void);
+void PanoramiXExtensionInit(void);
+void RRExtensionInit(void);
+void RecordExtensionInit(void);
+void RenderExtensionInit(void);
+void ResExtensionInit(void);
+void ScreenSaverExtensionInit(void);
+void ShapeExtensionInit(void);
+void ShmExtensionInit(void);
+void SyncExtensionInit(void);
+void XCMiscExtensionInit(void);
+void SecurityExtensionInit(void);
+void XFree86BigfontExtensionInit(void);
+void BigReqExtensionInit(void);
+void XFixesExtensionInit(void);
+void XInputExtensionInit(void);
+void XkbExtensionInit(void);
+void SELinuxExtensionInit(void);
+void XTestExtensionInit(void);
+void XvExtensionInit(void);
+void XvMCExtensionInit(void);
+void dri3_extension_init(void);
+void PseudoramiXExtensionInit(void);
+
+#endif /* _XSERVER_EXTINIT_PRIV_H */
diff --git a/include/nonsdk_extinit.h b/include/nonsdk_extinit.h
index da8d370bd..dc10df12b 100644
--- a/include/nonsdk_extinit.h
+++ b/include/nonsdk_extinit.h
@@ -30,6 +30,5 @@ DEALINGS IN THE SOFTWARE.
    pulled in by sdksyms */
 
 extern _X_EXPORT Bool noPseudoramiXExtension;
-extern void PseudoramiXExtensionInit(void);
 
 #endif
diff --git a/mi/miinitext.c b/mi/miinitext.c
index 1ddcd7fda..04f320118 100644
--- a/mi/miinitext.c
+++ b/mi/miinitext.c
@@ -88,7 +88,7 @@ SOFTWARE.
 
 #include "misc.h"
 #include "extension.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "micmap.h"
 #include "os.h"
 #include "globals.h"
diff --git a/pseudoramiX/pseudoramiX.c b/pseudoramiX/pseudoramiX.c
index 95f6e10c8..3623fadc7 100644
--- a/pseudoramiX/pseudoramiX.c
+++ b/pseudoramiX/pseudoramiX.c
@@ -40,6 +40,7 @@
 #include "pseudoramiX.h"
 #include "extnsionst.h"
 #include "nonsdk_extinit.h"
+#include "extinit_priv.h"
 #include "dixstruct.h"
 #include "window.h"
 #include <X11/extensions/panoramiXproto.h>
diff --git a/randr/randr.c b/randr/randr.c
index 2994bcd6c..3cb4cbd39 100644
--- a/randr/randr.c
+++ b/randr/randr.c
@@ -31,7 +31,7 @@
 #endif
 
 #include "randrstr_priv.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 
 /* From render.h */
 #ifndef SubPixelUnknown
diff --git a/record/record.c b/record/record.c
index 88fbf9c85..b0a7aff15 100644
--- a/record/record.c
+++ b/record/record.c
@@ -40,7 +40,7 @@ and Jim Haggerty of Metheus.
 
 #include "dixstruct.h"
 #include "extnsionst.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include <X11/extensions/recordproto.h>
 #include "set.h"
 #include "swaprep.h"
diff --git a/render/render.c b/render/render.c
index af84a0345..d43c4cf4b 100644
--- a/render/render.c
+++ b/render/render.c
@@ -43,7 +43,7 @@
 #include "pixmapstr.h"
 #include "colormapst.h"
 #include "extnsionst.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "servermd.h"
 #include "picturestr_priv.h"
 #include "glyphstr_priv.h"
diff --git a/test/xi2/protocol-common.c b/test/xi2/protocol-common.c
index f193bce45..b985e35b7 100644
--- a/test/xi2/protocol-common.c
+++ b/test/xi2/protocol-common.c
@@ -33,7 +33,7 @@
 
 #include "dix/dix_priv.h"
 
-#include "extinit.h"            /* for XInputExtensionInit */
+#include "extinit_priv.h"
 #include "exglobals.h"
 #include "xkbsrv.h"             /* for XkbInitPrivates */
 #include "xserver-properties.h"
diff --git a/test/xtest.c b/test/xtest.c
index 1d38f3d47..1dc7078b1 100644
--- a/test/xtest.c
+++ b/test/xtest.c
@@ -37,7 +37,7 @@
 #include "scrnintstr.h"
 #include "windowstr.h"
 #include "exevents.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "xkbsrv.h"
 #include "xserver-properties.h"
 #include "syncsrv.h"
diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c
index 3d044f918..69b8241a4 100644
--- a/xfixes/xfixes.c
+++ b/xfixes/xfixes.c
@@ -48,7 +48,7 @@
 
 #include "xfixesint.h"
 #include "protocol-versions.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 
 static unsigned char XFixesReqCode;
 int XFixesEventBase;
diff --git a/xkb/xkb.c b/xkb/xkb.c
index b324aeaa8..9fd89f730 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -40,7 +40,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include "inputstr.h"
 #include <xkbsrv.h>
 #include "extnsionst.h"
-#include "extinit.h"
+#include "extinit_priv.h"
 #include "xace.h"
 #include "xkb-procs.h"
 #include "protocol-versions.h"
commit bae6cbc8ca61b283efc59745ed7f1a9937444ae2
Author: Enrico Weigelt, metux IT consult <info at metux.net>
Date:   Fri Feb 9 15:11:30 2024 +0100

    include: move private defs to dixstruct_priv.h
    
    Public server module API shouldn't be clobbered with private definitions,
    thus move them out to dixstruct_priv.h
    
    Signed-off-by: Enrico Weigelt, metux IT consult <info at metux.net>
    Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1289>

diff --git a/Xext/shm.c b/Xext/shm.c
index a17915a67..7e6071215 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -48,7 +48,7 @@ in this Software without prior written authorization from The Open Group.
 
 #include "misc.h"
 #include "os.h"
-#include "dixstruct.h"
+#include "dixstruct_priv.h"
 #include "resource.h"
 #include "scrnintstr.h"
 #include "windowstr.h"
diff --git a/damageext/damageext.c b/damageext/damageext.c
index fd6fcc87e..76609fb6b 100644
--- a/damageext/damageext.c
+++ b/damageext/damageext.c
@@ -31,6 +31,7 @@
 #include "damagestr.h"
 #include "protocol-versions.h"
 #include "extinit.h"
+#include "dixstruct_priv.h"
 
 #ifdef PANORAMIX
 #include "panoramiX.h"
diff --git a/dix/devices.c b/dix/devices.c
index b37523262..4d8974b67 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -48,12 +48,18 @@ SOFTWARE.
 #include <dix-config.h>
 #endif
 
+#include <math.h>
+#include <pixman.h>
 #include <X11/X.h>
 #include <X11/Xproto.h>
 #include <X11/Xatom.h>
+#include <X11/extensions/XI.h>
+#include <X11/extensions/XI2.h>
+#include <X11/extensions/XIproto.h>
 
 #include "dix/dix_priv.h"
 #include "dix/ptrveloc_priv.h"
+#include "xkb/xkbsrv_priv.h"
 
 #include "misc.h"
 #include "resource.h"
@@ -63,23 +69,15 @@ SOFTWARE.
 #include "cursorstr.h"
 #include "dixstruct.h"
 #include "ptrveloc.h"
-#include "xkbsrv.h"
 #include "privates.h"
 #include "xace.h"
 #include "mi.h"
-
 #include "dispatch.h"
 #include "swaprep.h"
 #include "dixevents.h"
 #include "mipointer.h"
 #include "eventstr.h"
 #include "dixgrabs.h"
-
-#include <X11/extensions/XI.h>
-#include <X11/extensions/XI2.h>
-#include <X11/extensions/XIproto.h>
-#include <math.h>
-#include <pixman.h>
 #include "exglobals.h"
 #include "exevents.h"
 #include "xiquerydevice.h"      /* for SizeDeviceClasses */
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 77d6217a7..4a7d0565f 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -132,6 +132,7 @@ Equipment Corporation.
 #include "xkbsrv.h"
 #include "client.h"
 #include "xfixesint.h"
+#include "dixstruct_priv.h"
 
 // temporary workaround for win32/mingw32 name clash
 #undef CreateWindow
diff --git a/dix/dixstruct_priv.h b/dix/dixstruct_priv.h
new file mode 100644
index 000000000..0601448f5
--- /dev/null
+++ b/dix/dixstruct_priv.h
@@ -0,0 +1,92 @@
+/* SPDX-License-Identifier: MIT OR X11
+ *
+ * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
+ * Copyright © 2024 Enrico Weigelt, metux IT consult <info at metux.net>
+ */
+#ifndef _XSERVER_DIXSTRUCT_PRIV_H
+#define _XSERVER_DIXSTRUCT_PRIV_H
+
+#include "client.h"
+#include "dix.h"
+#include "resource.h"
+#include "cursor.h"
+#include "gc.h"
+#include "pixmap.h"
+#include "privates.h"
+#include "dixstruct.h"
+#include <X11/Xmd.h>
+
+static inline void
+SetReqFds(ClientPtr client, int req_fds) {
+    if (client->req_fds != 0 && req_fds != client->req_fds)
+        LogMessage(X_ERROR, "Mismatching number of request fds %d != %d\n", req_fds, client->req_fds);
+    client->req_fds = req_fds;
+}
+
+/*
+ * Scheduling interface
+ */
+extern long SmartScheduleTime;
+extern long SmartScheduleInterval;
+extern long SmartScheduleSlice;
+extern long SmartScheduleMaxSlice;
+#ifdef HAVE_SETITIMER
+extern Bool SmartScheduleSignalEnable;
+#else
+#define SmartScheduleSignalEnable FALSE
+#endif
+void SmartScheduleStartTimer(void);
+void SmartScheduleStopTimer(void);
+
+/* Client has requests queued or data on the network */
+void mark_client_ready(ClientPtr client);
+
+/*
+ * Client has requests queued or data on the network, but awaits a
+ * server grab release
+ */
+void mark_client_saved_ready(ClientPtr client);
+
+/* Client has no requests queued and no data on network */
+void mark_client_not_ready(ClientPtr client);
+
+static inline Bool client_is_ready(ClientPtr client)
+{
+    return !xorg_list_is_empty(&client->ready);
+}
+
+Bool
+clients_are_ready(void);
+
+extern struct xorg_list output_pending_clients;
+
+static inline void
+output_pending_mark(ClientPtr client)
+{
+    if (!client->clientGone && xorg_list_is_empty(&client->output_pending))
+        xorg_list_append(&client->output_pending, &output_pending_clients);
+}
+
+static inline void
+output_pending_clear(ClientPtr client)
+{
+    xorg_list_del(&client->output_pending);
+}
+
+static inline Bool any_output_pending(void) {
+    return !xorg_list_is_empty(&output_pending_clients);
+}
+
+#define SMART_MAX_PRIORITY  (20)
+#define SMART_MIN_PRIORITY  (-20)
+
+void SmartScheduleInit(void);
+
+/* This prototype is used pervasively in Xext, dix */
+#define DISPATCH_PROC(func) int func(ClientPtr /* client */)
+
+/* proc vectors */
+
+extern int (*InitialVector[3]) (ClientPtr /*client */ );
+
+#endif /* _XSERVER_DIXSTRUCT_PRIV_H */
diff --git a/dix/events.c b/dix/events.c
index f5a719a85..00ada3340 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -107,9 +107,16 @@ Equipment Corporation.
 
 #include <X11/X.h>
 #include <X11/Xproto.h>
+#include <X11/extensions/ge.h>
+#include <X11/extensions/XI.h>
+#include <X11/extensions/XI2.h>
+#include <X11/extensions/XKBproto.h>
+#include <X11/extensions/XIproto.h>
+#include <X11/extensions/XI2proto.h>
 
 #include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
+#include "xkb/xkbsrv_priv.h"
 
 #include "misc.h"
 #include "resource.h"
@@ -118,35 +125,23 @@ Equipment Corporation.
 #include "inpututils.h"
 #include "scrnintstr.h"
 #include "cursorstr.h"
-
 #include "dixstruct.h"
 #ifdef PANORAMIX
 #include "panoramiX.h"
 #include "panoramiXsrv.h"
 #endif
 #include "globals.h"
-
-#include <X11/extensions/XKBproto.h>
-#include "xkbsrv.h"
 #include "xace.h"
 #include "probes.h"
-
-#include <X11/extensions/XIproto.h>
-#include <X11/extensions/XI2proto.h>
-#include <X11/extensions/XI.h>
-#include <X11/extensions/XI2.h>
 #include "exglobals.h"
 #include "exevents.h"
 #include "extnsionst.h"
-
 #include "dixevents.h"
 #include "dixgrabs.h"
 #include "dispatch.h"
-
-#include <X11/extensions/ge.h>
 #include "geext.h"
 #include "geint.h"
-
+#include "dixstruct_priv.h"
 #include "eventstr.h"
 #include "enterleave.h"
 #include "mi.h"
diff --git a/dri3/dri3_request.c b/dri3/dri3_request.c
index 27d3c73a7..b6128659c 100644
--- a/dri3/dri3_request.c
+++ b/dri3/dri3_request.c
@@ -32,6 +32,7 @@
 #include <protocol-versions.h>
 #include <drm_fourcc.h>
 #include "randrstr_priv.h"
+#include "dixstruct_priv.h"
 
 static Bool
 dri3_screen_can_one_point_four(ScreenPtr screen)
diff --git a/hw/xwin/InitInput.c b/hw/xwin/InitInput.c
index 1b7068dba..6aced4f9c 100644
--- a/hw/xwin/InitInput.c
+++ b/hw/xwin/InitInput.c
@@ -30,7 +30,7 @@
 #include <xwin-config.h>
 #endif
 #include "win.h"
-#include "dixstruct.h"
+#include "dixstruct_priv.h"
 #include "inputstr.h"
 
 /*
diff --git a/hw/xwin/winclipboardwrappers.c b/hw/xwin/winclipboardwrappers.c
index 2e6b63287..eee7882bd 100644
--- a/hw/xwin/winclipboardwrappers.c
+++ b/hw/xwin/winclipboardwrappers.c
@@ -35,7 +35,7 @@
 #endif
 
 #include "win.h"
-#include "dixstruct.h"
+#include "dixstruct_priv.h"
 
 /*
  * Local function prototypes
diff --git a/include/dixstruct.h b/include/dixstruct.h
index fb0ac14b8..3607ea88a 100644
--- a/include/dixstruct.h
+++ b/include/dixstruct.h
@@ -113,75 +113,6 @@ typedef struct _Client {
     int req_fds;
 } ClientRec;
 
-static inline void
-SetReqFds(ClientPtr client, int req_fds) {
-    if (client->req_fds != 0 && req_fds != client->req_fds)
-        LogMessage(X_ERROR, "Mismatching number of request fds %d != %d\n", req_fds, client->req_fds);
-    client->req_fds = req_fds;
-}
-
-/*
- * Scheduling interface
- */
-extern long SmartScheduleTime;
-extern long SmartScheduleInterval;
-extern long SmartScheduleSlice;
-extern long SmartScheduleMaxSlice;
-#ifdef HAVE_SETITIMER
-extern Bool SmartScheduleSignalEnable;
-#else
-#define SmartScheduleSignalEnable FALSE
-#endif
-extern void SmartScheduleStartTimer(void);
-extern void SmartScheduleStopTimer(void);
-
-/* Client has requests queued or data on the network */
-void mark_client_ready(ClientPtr client);
-
-/*
- * Client has requests queued or data on the network, but awaits a
- * server grab release
- */
-void mark_client_saved_ready(ClientPtr client);
-
-/* Client has no requests queued and no data on network */
-void mark_client_not_ready(ClientPtr client);
-
-static inline Bool client_is_ready(ClientPtr client)
-{
-    return !xorg_list_is_empty(&client->ready);
-}
-
-Bool
-clients_are_ready(void);
-
-extern struct xorg_list output_pending_clients;
-
-static inline void
-output_pending_mark(ClientPtr client)
-{
-    if (!client->clientGone && xorg_list_is_empty(&client->output_pending))
-        xorg_list_append(&client->output_pending, &output_pending_clients);
-}
-
-static inline void
-output_pending_clear(ClientPtr client)
-{
-    xorg_list_del(&client->output_pending);
-}
-
-static inline Bool any_output_pending(void) {
-    return !xorg_list_is_empty(&output_pending_clients);
-}
-
-#define SMART_MAX_PRIORITY  (20)
-#define SMART_MIN_PRIORITY  (-20)
-
-extern void SmartScheduleInit(void);
-
-/* This prototype is used pervasively in Xext, dix */
-#define DISPATCH_PROC(func) int func(ClientPtr /* client */)
-
 typedef struct _WorkQueue {
     struct _WorkQueue *next;
     Bool (*function) (ClientPtr /* pClient */ ,
@@ -216,12 +147,11 @@ typedef struct _CallbackList {
 
 /* proc vectors */
 
-extern int (*InitialVector[3]) (ClientPtr /*client */ );
-
 extern _X_EXPORT int (*ProcVector[256]) (ClientPtr /*client */ );
 
 extern _X_EXPORT int (*SwappedProcVector[256]) (ClientPtr /*client */ );
 
+/* fixme: still needed by (public) dix.h */
 extern ReplySwapPtr ReplySwapVector[256];
 
 extern _X_EXPORT int
diff --git a/include/xkbsrv.h b/include/xkbsrv.h
index 45564e2f4..c182b5330 100644
--- a/include/xkbsrv.h
+++ b/include/xkbsrv.h
@@ -284,8 +284,6 @@ extern _X_EXPORT DevPrivateKeyRec xkbDevicePrivateKeyRec;
 
 #define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr)dixLookupPrivate(&(dev)->devPrivates, xkbDevicePrivateKey))
 
-extern void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, void *);
-
 /***====================================================================***/
 
 /***====================================================================***/
@@ -492,8 +490,6 @@ extern _X_EXPORT void XkbUpdateIndicators(DeviceIntPtr /* keybd */ ,
                                           XkbEventCausePtr      /* cause */
     );
 
-extern void XkbForceUpdateDeviceLEDs(DeviceIntPtr /* keybd */);
-
 extern _X_EXPORT void XkbUpdateAllDeviceIndicators(XkbChangesPtr /* changes */,
                                                    XkbEventCausePtr /* cause */
     );
@@ -640,10 +636,6 @@ extern _X_EXPORT void XkbHandleActions(DeviceIntPtr /* dev */ ,
                                        DeviceEvent *    /* event */
     );
 
-extern void XkbPushLockedStateToSlaves(DeviceIntPtr /* master */,
-                                       int /* evtype */,
-                                       int /* key */);
-
 extern _X_EXPORT Bool XkbEnableDisableControls(XkbSrvInfoPtr /* xkbi */ ,
                                                unsigned long /* change */ ,
                                                unsigned long /* newValues */ ,
@@ -820,29 +812,12 @@ extern _X_EXPORT void XkbSendNewKeyboardNotify(DeviceIntPtr /* kbd */ ,
                                                xkbNewKeyboardNotify *   /* pNKN */
     );
 
-extern Bool XkbCopyKeymap(XkbDescPtr /* dst */ ,
-                          XkbDescPtr /* src */ );
-
 extern _X_EXPORT Bool XkbCopyDeviceKeymap(DeviceIntPtr /* dst */,
 					  DeviceIntPtr /* src */);
 
 extern _X_EXPORT Bool XkbDeviceApplyKeymap(DeviceIntPtr /* dst */ ,
                                            XkbDescPtr /* src */ );
 
-extern void XkbFilterEvents(ClientPtr /* pClient */ ,
-                            int /* nEvents */ ,
-                            xEvent * /* xE */ );
-
-extern int XkbGetEffectiveGroup(XkbSrvInfoPtr /* xkbi */ ,
-                                XkbStatePtr /* xkbstate */ ,
-                                CARD8 /* keycode */ );
-
-extern void XkbMergeLockedPtrBtns(DeviceIntPtr /* master */ );
-
-extern void XkbFakeDeviceButton(DeviceIntPtr /* dev */ ,
-                                int /* press */ ,
-                                int /* button */ );
-
 extern _X_EXPORT void XkbCopyControls(XkbDescPtr /* dst */ ,
                                       XkbDescPtr /* src */ );
 
diff --git a/os/WaitFor.c b/os/WaitFor.c
index b08b44040..ea84570b1 100644
--- a/os/WaitFor.c
+++ b/os/WaitFor.c
@@ -69,7 +69,7 @@ SOFTWARE.
 
 #include "misc.h"
 #include "osdep.h"
-#include "dixstruct.h"
+#include "dixstruct_priv.h"
 #include "opaque.h"
 #ifdef DPMSExtension
 #include "dpmsproc.h"
diff --git a/os/connection.c b/os/connection.c
index bd46ae68b..5a724fd4f 100644
--- a/os/connection.c
+++ b/os/connection.c
@@ -103,7 +103,7 @@ SOFTWARE.
 
 #include "misc.h"               /* for typedef of pointer */
 #include "opaque.h"
-#include "dixstruct.h"
+#include "dixstruct_priv.h"
 #include "xace.h"
 
 #ifdef HAVE_GETPEERUCRED
diff --git a/os/io.c b/os/io.c
index 1e9258cd0..43c4e5d30 100644
--- a/os/io.c
+++ b/os/io.c
@@ -57,6 +57,8 @@ SOFTWARE.
 
 #undef DEBUG_COMMUNICATION
 
+#include "dixstruct_priv.h"
+
 #ifdef WIN32
 #include <X11/Xwinsock.h>
 #endif
diff --git a/os/osinit.c b/os/osinit.c
index 465b3df14..2c4604b87 100644
--- a/os/osinit.c
+++ b/os/osinit.c
@@ -64,11 +64,11 @@ SOFTWARE.
 #include "os/osdep.h"
 
 #include "misc.h"
-
 #include "os.h"
 #include "opaque.h"
 #include "misc.h"
 #include "dixstruct.h"
+#include "dixstruct_priv.h"
 
 #if !defined(SYSV) && !defined(WIN32)
 #include <sys/resource.h>
diff --git a/os/utils.c b/os/utils.c
index 4c5c9e987..332d1f72e 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -116,6 +116,7 @@ __stdcall unsigned long GetTickCount(void);
 #include "picture.h"
 #include "miinitext.h"
 #include "present.h"
+#include "dixstruct_priv.h"
 
 Bool noTestExtensions;
 
diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c
index 4f1fee280..fffcf31f5 100644
--- a/xkb/xkbAccessX.c
+++ b/xkb/xkbAccessX.c
@@ -28,20 +28,22 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <dix-config.h>
 #endif
 
+#if !defined(WIN32)
+#include <sys/time.h>
+#endif
 #include <stdio.h>
 #include <math.h>
 #include <X11/X.h>
 #include <X11/Xproto.h>
 #include <X11/keysym.h>
-#include "exglobals.h"
 #include <X11/extensions/XIproto.h>
+
+#include "xkb/xkbsrv_priv.h"
+
+#include "exglobals.h"
 #include "inputstr.h"
 #include "eventstr.h"
 #include "inpututils.h"
-#include <xkbsrv.h>
-#if !defined(WIN32)
-#include <sys/time.h>
-#endif
 
 int XkbDfltRepeatDelay = 660;
 int XkbDfltRepeatInterval = 40;
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
index 2b87de393..99bb6574e 100644
--- a/xkb/xkbActions.c
+++ b/xkb/xkbActions.c
@@ -36,12 +36,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <X11/keysym.h>
 
 #include "dix/dix_priv.h"
+#include "xkb/xkbsrv_priv.h"
 
 #include "misc.h"
 #include "inputstr.h"
 #include "exevents.h"
 #include "eventstr.h"
-#include <xkbsrv.h>
 #include "mi.h"
 #include "mipointer.h"
 #include "inpututils.h"
diff --git a/xkb/xkbEvents.c b/xkb/xkbEvents.c
index f8f65d4a7..c31f89740 100644
--- a/xkb/xkbEvents.c
+++ b/xkb/xkbEvents.c
@@ -38,7 +38,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include "exevents.h"
 #include "exglobals.h"
 #include "windowstr.h"
-#include <xkbsrv.h>
+#include "xkbsrv_priv.h"
 
 /***====================================================================***/
 
diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
index c06ec09d4..1e189a3f0 100644
--- a/xkb/xkbInit.c
+++ b/xkb/xkbInit.c
@@ -39,17 +39,17 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <X11/Xproto.h>
 #include <X11/keysym.h>
 #include <X11/Xatom.h>
+#include <X11/extensions/XKMformat.h>
 
 #include "os/cmdline.h"
+#include "xkb/xkbsrv_priv.h"
 
 #include "misc.h"
 #include "inputstr.h"
 #include "opaque.h"
 #include "property.h"
 #include "scrnintstr.h"
-#include <xkbsrv.h>
 #include "xkbgeom.h"
-#include <X11/extensions/XKMformat.h>
 #include "xkbfile.h"
 
 #define	CREATE_ATOM(s)	MakeAtom(s,sizeof(s)-1,1)
diff --git a/xkb/xkbLEDs.c b/xkb/xkbLEDs.c
index 2ddd7a402..7ac6b1ad9 100644
--- a/xkb/xkbLEDs.c
+++ b/xkb/xkbLEDs.c
@@ -33,13 +33,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <math.h>
 #include <X11/X.h>
 #include <X11/Xproto.h>
-#include "misc.h"
-#include "inputstr.h"
-
 #include <X11/extensions/XI.h>
-#include <xkbsrv.h>
 
-/***====================================================================***/
+#include "xkb/xkbsrv_priv.h"
+
+#include "misc.h"
+#include "inputstr.h"
 
         /*
          * unsigned
diff --git a/xkb/xkbPrKeyEv.c b/xkb/xkbPrKeyEv.c
index d2c7e33f4..972f35170 100644
--- a/xkb/xkbPrKeyEv.c
+++ b/xkb/xkbPrKeyEv.c
@@ -28,21 +28,21 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <dix-config.h>
 #endif
 
+#include <ctype.h>
 #include <stdio.h>
 #include <math.h>
 #include <X11/X.h>
 #include <X11/Xproto.h>
 #include <X11/keysym.h>
+
+#include "xkb/xkbsrv_priv.h"
+
 #include "misc.h"
 #include "inputstr.h"
 #include "exevents.h"
 #include "eventstr.h"
-#include <xkbsrv.h>
-#include <ctype.h>
 #include "events.h"
 
-/***====================================================================***/
-
 void
 XkbProcessKeyboardEvent(DeviceEvent *event, DeviceIntPtr keybd)
 {
diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index 9ad66927c..cdd5eb004 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -52,7 +52,6 @@ DEALINGS IN THE SOFTWARE.
 #include <dix-config.h>
 #endif
 
-#include "os.h"
 #include <stdio.h>
 #include <ctype.h>
 #include <math.h>
@@ -60,10 +59,13 @@ DEALINGS IN THE SOFTWARE.
 #include <X11/Xproto.h>
 #define	XK_CYRILLIC
 #include <X11/keysym.h>
+
+#include "xkb/xkbsrv_priv.h"
+
+#include "os.h"
 #include "misc.h"
 #include "inputstr.h"
 #include "eventstr.h"
-#include <xkbsrv.h>
 #include "xkbgeom.h"
 
 /***====================================================================***/
diff --git a/xkb/xkbsrv_priv.h b/xkb/xkbsrv_priv.h
new file mode 100644
index 000000000..8a9592314
--- /dev/null
+++ b/xkb/xkbsrv_priv.h
@@ -0,0 +1,27 @@
+/* SPDX-License-Identifier: MIT OR X11
+ *
+ * Copyright © 1993 Silicon Graphics Computer Systems, Inc.
+ * Copyright © 2024 Enrico Weigelt, metux IT consult <info at metux.net>
+ */
+#ifndef _XSERVER_XKBSRV_PRIV_H_
+#define _XSERVER_XKBSRV_PRIV_H_
+
+#include "xkbsrv.h"
+
+void xkbUnwrapProc(DeviceIntPtr, DeviceHandleProc, void *);
+
+void XkbForceUpdateDeviceLEDs(DeviceIntPtr keybd);
+
+void XkbPushLockedStateToSlaves(DeviceIntPtr master, int evtype, int key);
+
+Bool XkbCopyKeymap(XkbDescPtr dst, XkbDescPtr src);
+
+void XkbFilterEvents(ClientPtr pClient, int nEvents, xEvent *xE);
+
+int XkbGetEffectiveGroup(XkbSrvInfoPtr xkbi, XkbStatePtr xkbstate, CARD8 keycode);
+
+void XkbMergeLockedPtrBtns(DeviceIntPtr master);
+
+void XkbFakeDeviceButton(DeviceIntPtr dev, int press, int button);
+
+#endif /* _XSERVER_XKBSRV_PRIV_H_ */
commit f17bc7e24dd0e5a68da3a993d439c667524e3d8a
Author: Enrico Weigelt, metux IT consult <info at metux.net>
Date:   Thu Feb 8 20:12:35 2024 +0100

    include: split out non-exported prototypes to dix_priv.h
    
    Public server module API shouldn't be clobbered with private definitions,
    thus move them out to dix-intern.h
    
    Signed-off-by: Enrico Weigelt, metux IT consult <info at metux.net>
    Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1289>

diff --git a/Xi/allowev.c b/Xi/allowev.c
index c25edb3bf..fc4f33be8 100644
--- a/Xi/allowev.c
+++ b/Xi/allowev.c
@@ -58,8 +58,9 @@ SOFTWARE.
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
 
-#include "exglobals.h"
+#include "dix/dix_priv.h"
 
+#include "exglobals.h"
 #include "allowev.h"
 #include "dixevents.h"
 
diff --git a/Xi/extinit.c b/Xi/extinit.c
index 4e5a13fc5..7c08f3a8a 100644
--- a/Xi/extinit.c
+++ b/Xi/extinit.c
@@ -55,15 +55,17 @@ SOFTWARE.
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"
-#include "gcstruct.h"           /* pointer for extnsionst.h */
-#include "extnsionst.h"         /* extension entry   */
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
 #include <X11/extensions/XI2proto.h>
 #include <X11/extensions/geproto.h>
-#include "geext.h"              /* extension interfaces for ge */
 
+#include "dix/dix_priv.h"
+
+#include "inputstr.h"
+#include "gcstruct.h"           /* pointer for extnsionst.h */
+#include "extnsionst.h"         /* extension entry   */
+#include "geext.h"              /* extension interfaces for ge */
 #include "dixevents.h"
 #include "exevents.h"
 #include "extinit.h"
diff --git a/Xi/grabdev.c b/Xi/grabdev.c
index cb68cfa8d..d26bea434 100644
--- a/Xi/grabdev.c
+++ b/Xi/grabdev.c
@@ -54,13 +54,15 @@ SOFTWARE.
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"           /* DeviceIntPtr      */
-#include "windowstr.h"          /* window structure  */
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
+
+#include "dix/dix_priv.h"
+
+#include "inputstr.h"           /* DeviceIntPtr      */
+#include "windowstr.h"          /* window structure  */
 #include "exglobals.h"
 #include "dixevents.h"          /* GrabDevice */
-
 #include "grabdev.h"
 
 extern XExtEventInfo EventInfo[];
diff --git a/Xi/setfocus.c b/Xi/setfocus.c
index 8ca19d520..f0c80accc 100644
--- a/Xi/setfocus.c
+++ b/Xi/setfocus.c
@@ -54,15 +54,16 @@ SOFTWARE.
 #include <dix-config.h>
 #endif
 
-#include "windowstr.h"          /* focus struct      */
-#include "inputstr.h"           /* DeviceIntPtr      */
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
 
-#include "dixevents.h"
+#include "windowstr.h"          /* focus struct      */
+#include "inputstr.h"           /* DeviceIntPtr      */
 
-#include "exglobals.h"
+#include "dix/dix_priv.h"
 
+#include "dixevents.h"
+#include "exglobals.h"
 #include "setfocus.h"
 
 /***********************************************************************
diff --git a/Xi/xichangehierarchy.c b/Xi/xichangehierarchy.c
index 72d00451e..e31d3332d 100644
--- a/Xi/xichangehierarchy.c
+++ b/Xi/xichangehierarchy.c
@@ -36,21 +36,22 @@
 
 #include <X11/X.h>              /* for inputstr.h    */
 #include <X11/Xproto.h>         /* Request macro     */
-#include "inputstr.h"           /* DeviceIntPtr      */
-#include "windowstr.h"          /* window structure  */
-#include "scrnintstr.h"         /* screen structure  */
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XI2proto.h>
 #include <X11/extensions/geproto.h>
+
+#include "dix/dix_priv.h"
+
+#include "inputstr.h"           /* DeviceIntPtr      */
+#include "windowstr.h"          /* window structure  */
+#include "scrnintstr.h"         /* screen structure  */
 #include "extnsionst.h"
 #include "exevents.h"
 #include "exglobals.h"
 #include "geext.h"
 #include "xace.h"
 #include "xiquerydevice.h"      /* for GetDeviceUse */
-
 #include "xkbsrv.h"
-
 #include "xichangehierarchy.h"
 #include "xibarriers.h"
 
diff --git a/Xi/xigrabdev.c b/Xi/xigrabdev.c
index cf3ee7b95..d23d58ecd 100644
--- a/Xi/xigrabdev.c
+++ b/Xi/xigrabdev.c
@@ -33,11 +33,13 @@
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"           /* DeviceIntPtr      */
-#include "windowstr.h"          /* window structure  */
 #include <X11/extensions/XI2.h>
 #include <X11/extensions/XI2proto.h>
 
+#include "dix/dix_priv.h"
+
+#include "inputstr.h"           /* DeviceIntPtr      */
+#include "windowstr.h"          /* window structure  */
 #include "exglobals.h"          /* BadDevice */
 #include "exevents.h"
 #include "xigrabdev.h"
diff --git a/Xi/xisetdevfocus.c b/Xi/xisetdevfocus.c
index 2ed445cca..d09aa9d5e 100644
--- a/Xi/xisetdevfocus.c
+++ b/Xi/xisetdevfocus.c
@@ -32,11 +32,13 @@
 #include <dix-config.h>
 #endif
 
-#include "inputstr.h"           /* DeviceIntPtr      */
-#include "windowstr.h"          /* window structure  */
 #include <X11/extensions/XI2.h>
 #include <X11/extensions/XI2proto.h>
 
+#include "dix/dix_priv.h"
+
+#include "inputstr.h"           /* DeviceIntPtr      */
+#include "windowstr.h"          /* window structure  */
 #include "exglobals.h"          /* BadDevice */
 #include "xisetdevfocus.h"
 
diff --git a/dix/cursor.c b/dix/cursor.c
index dcbcaaa77..14b855196 100644
--- a/dix/cursor.c
+++ b/dix/cursor.c
@@ -50,6 +50,9 @@ SOFTWARE.
 
 #include <X11/X.h>
 #include <X11/Xmd.h>
+
+#include "dix/dix_priv.h"
+
 #include "servermd.h"
 #include "scrnintstr.h"
 #include "dixstruct.h"
diff --git a/dix/dix_priv.h b/dix/dix_priv.h
index 4b3c9ba29..e02a6ea0a 100644
--- a/dix/dix_priv.h
+++ b/dix/dix_priv.h
@@ -15,10 +15,16 @@
 
 #include <X11/Xdefs.h>
 #include <X11/Xfuncproto.h>
+#include <X11/extensions/XI.h>
 
+#include "include/callback.h"
+#include "include/cursor.h"
 #include "include/dix.h"
+#include "include/events.h"
 #include "include/gc.h"
+#include "include/input.h"
 #include "include/window.h"
+#include "Xext/geext.h"
 
 /* server setting: maximum size for big requests */
 #define MAX_BIG_REQUEST_SIZE 4194303
@@ -78,4 +84,148 @@ int dixLookupClient(ClientPtr *result,
                     ClientPtr client,
                     Mask access_mode);
 
+Bool CreateConnectionBlock(void);
+
+void EnableLimitedSchedulingLatency(void);
+
+void DisableLimitedSchedulingLatency(void);
+
+int dix_main(int argc, char *argv[], char *envp[]);
+
+void SetMaskForEvent(int deviceid, Mask mask, int event);
+
+void EnqueueEvent(InternalEvent *ev, DeviceIntPtr device);
+
+void PlayReleasedEvents(void);
+
+void ActivatePointerGrab(DeviceIntPtr mouse,
+                         GrabPtr grab,
+                         TimeStamp time,
+                         Bool autoGrab);
+
+void DeactivatePointerGrab(DeviceIntPtr mouse);
+
+void ActivateKeyboardGrab(DeviceIntPtr keybd,
+                          GrabPtr grab,
+                          TimeStamp time,
+                          Bool passive);
+
+void DeactivateKeyboardGrab(DeviceIntPtr keybd);
+
+BOOL ActivateFocusInGrab(DeviceIntPtr dev, WindowPtr old, WindowPtr win);
+
+void AllowSome(ClientPtr client,
+               TimeStamp time,
+               DeviceIntPtr thisDev,
+               int newState);
+
+void ReleaseActiveGrabs(ClientPtr client);
+
+GrabPtr CheckPassiveGrabsOnWindow(WindowPtr pWin,
+                                  DeviceIntPtr device,
+                                  InternalEvent *event,
+                                  BOOL checkCore,
+                                  BOOL activate);
+
+int DeliverDeviceEvents(WindowPtr pWin,
+                        InternalEvent *event,
+                        GrabPtr grab,
+                        WindowPtr stopAt,
+                        DeviceIntPtr dev);
+
+int DeliverOneGrabbedEvent(InternalEvent *event,
+                           DeviceIntPtr dev,
+                           enum InputLevel level);
+
+void DeliverTouchEvents(DeviceIntPtr dev,
+                        TouchPointInfoPtr ti,
+                        InternalEvent *ev,
+                        XID resource);
+
+Bool DeliverGestureEventToOwner(DeviceIntPtr dev,
+                                GestureInfoPtr gi,
+                                InternalEvent *ev);
+
+void InitializeSprite(DeviceIntPtr pDev, WindowPtr pWin);
+void FreeSprite(DeviceIntPtr pDev);
+void UpdateSpriteForScreen(DeviceIntPtr pDev, ScreenPtr pScreen);
+
+Bool CheckDeviceGrabs(DeviceIntPtr device,
+                      InternalEvent *event,
+                      WindowPtr ancestor);
+
+void DeliverFocusedEvent(DeviceIntPtr keybd,
+                         InternalEvent *event,
+                         WindowPtr window);
+
+int DeliverGrabbedEvent(InternalEvent *event,
+                        DeviceIntPtr thisDev,
+                        Bool deactivateGrab);
+
+void FreezeThisEventIfNeededForSyncGrab(DeviceIntPtr thisDev,
+                                        InternalEvent *event);
+
+void FixKeyState(DeviceEvent *event, DeviceIntPtr keybd);
+
+void RecalculateDeliverableEvents(WindowPtr pWin);
+
+void DoFocusEvents(DeviceIntPtr dev,
+                   WindowPtr fromWin,
+                   WindowPtr toWin,
+                   int mode);
+
+int SetInputFocus(ClientPtr client,
+                  DeviceIntPtr dev,
+                  Window focusID,
+                  CARD8 revertTo,
+                  Time ctime,
+                  Bool followOK);
+
+int GrabDevice(ClientPtr client,
+               DeviceIntPtr dev,
+               unsigned this_mode,
+               unsigned other_mode,
+               Window grabWindow,
+               unsigned ownerEvents,
+               Time ctime,
+               GrabMask *mask,
+               int grabtype,
+               Cursor curs,
+               Window confineToWin,
+               CARD8 *status);
+
+void InitEvents(void);
+
+void CloseDownEvents(void);
+
+void DeleteWindowFromAnyEvents(WindowPtr pWin, Bool freeResources);
+
+Mask EventMaskForClient(WindowPtr pWin, ClientPtr client);
+
+Bool CheckMotion(DeviceEvent *ev, DeviceIntPtr pDev);
+
+int SetClientPointer(ClientPtr client, DeviceIntPtr device);
+
+Bool IsInterferingGrab(ClientPtr client, DeviceIntPtr dev, xEvent *events);
+
+int XItoCoreType(int xi_type);
+
+Bool DevHasCursor(DeviceIntPtr pDev);
+
+Bool IsPointerEvent(InternalEvent *event);
+
+Bool IsTouchEvent(InternalEvent *event);
+
+Bool IsGestureEvent(InternalEvent *event);
+
+Bool IsGestureBeginEvent(InternalEvent *event);
+
+Bool IsGestureEndEvent(InternalEvent *event);
+
+void CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
+
+int CorePointerProc(DeviceIntPtr dev, int what);
+
+int CoreKeyboardProc(DeviceIntPtr dev, int what);
+
 #endif /* _XSERVER_DIX_PRIV_H */
diff --git a/dix/enterleave.c b/dix/enterleave.c
index 6d1c24adc..57a3d9967 100644
--- a/dix/enterleave.c
+++ b/dix/enterleave.c
@@ -33,6 +33,7 @@
 #include <X11/extensions/XIproto.h>
 #include <X11/extensions/XI2proto.h>
 
+#include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
 
 #include "inputstr.h"
diff --git a/dix/eventconvert.c b/dix/eventconvert.c
index 30cf86f0a..998304ad9 100644
--- a/dix/eventconvert.c
+++ b/dix/eventconvert.c
@@ -39,6 +39,7 @@
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XI2.h>
 
+#include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
 
 #include "dix.h"
diff --git a/dix/gestures.c b/dix/gestures.c
index 18f7b0f0d..2c47abb09 100644
--- a/dix/gestures.c
+++ b/dix/gestures.c
@@ -27,12 +27,12 @@
 #include <dix-config.h>
 #endif
 
+#include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
 
 #include "inputstr.h"
 #include "scrnintstr.h"
 #include "dixgrabs.h"
-
 #include "eventstr.h"
 #include "exevents.h"
 #include "exglobals.h"
diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c
index eb31b55a2..857e790fe 100644
--- a/hw/kdrive/ephyr/ephyrinit.c
+++ b/hw/kdrive/ephyr/ephyrinit.c
@@ -27,6 +27,7 @@
 #include <dix-config.h>
 #endif
 
+#include "dix/dix_priv.h"
 #include "os/cmdline.h"
 #include "os/osdep.h"
 
diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c
index 910141755..97769c0b8 100644
--- a/hw/xfree86/common/xf86DGA.c
+++ b/hw/xfree86/common/xf86DGA.c
@@ -41,9 +41,12 @@
 #include <xorg-config.h>
 #endif
 
+#include <string.h>
 #include <X11/X.h>
 #include <X11/Xproto.h>
+#include <X11/extensions/xf86dgaproto.h>
 
+#include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
 
 #include "xf86.h"
@@ -51,7 +54,6 @@
 #include "xf86Priv.h"
 #include "dgaproc.h"
 #include "dgaproc_priv.h"
-#include <X11/extensions/xf86dgaproto.h>
 #include "colormapst.h"
 #include "pixmapstr.h"
 #include "inputstr.h"
@@ -64,9 +66,7 @@
 #include "exevents.h"
 #include "eventstr.h"
 #include "xf86Extensions.h"
-
 #include "mi.h"
-
 #include "misc.h"
 #include "dixstruct.h"
 #include "dixevents.h"
@@ -77,8 +77,6 @@
 #include "dgaproc.h"
 #include "protocol-versions.h"
 
-#include <string.h>
-
 #define DGA_PROTOCOL_OLD_SUPPORT 1
 
 static DevPrivateKeyRec DGAScreenKeyRec;
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 8091a2450..081a3dc11 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -50,12 +50,14 @@
 #include <xorg-config.h>
 #endif
 
+#include <string.h>             /* InputClassMatches */
 #include <X11/Xfuncproto.h>
 #include <X11/Xmd.h>
 #include <X11/extensions/XI.h>
 #include <X11/extensions/XIproto.h>
 #include <X11/Xatom.h>
 
+#include "dix/dix_priv.h"
 #include "dix/ptrveloc_priv.h"
 
 #include "xf86.h"
@@ -67,14 +69,12 @@
 #include "extinit.h"
 #include "loaderProcs.h"
 #include "systemd-logind.h"
-
 #include "exevents.h"           /* AddInputDevice */
 #include "exglobals.h"
 #include "eventstr.h"
 #include "inpututils.h"
 #include "optionstr.h"
 
-#include <string.h>             /* InputClassMatches */
 #ifdef HAVE_FNMATCH_H
 #include <fnmatch.h>
 #endif
diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index 68213ab49..d94c77cdf 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -28,6 +28,12 @@
 #include <stddef.h>
 #include <string.h>
 #include <stdio.h>
+#include <X11/Xatom.h>
+#include <X11/extensions/render.h>
+#include <X11/extensions/dpmsconst.h>
+
+#include "dix/dix_priv.h"
+
 #include "mi.h"
 #include "xf86.h"
 #include "xf86DDC.h"
@@ -35,9 +41,6 @@
 #include "xf86Crtc.h"
 #include "xf86Modes.h"
 #include "xf86RandR12.h"
-#include "X11/extensions/render.h"
-#include "X11/extensions/dpmsconst.h"
-#include "X11/Xatom.h"
 
 void
 xf86RotateCrtcRedisplay(xf86CrtcPtr crtc, PixmapPtr dst_pixmap,
diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c
index bc4293d0f..0358b8560 100644
--- a/hw/xwin/InitOutput.c
+++ b/hw/xwin/InitOutput.c
@@ -32,6 +32,7 @@ from The Open Group.
 #include <xwin-config.h>
 #endif
 
+#include "dix/dix_priv.h"
 #include "os/osdep.h"
 
 #include "win.h"
diff --git a/hw/xwin/winkeybd.c b/hw/xwin/winkeybd.c
index 00586c25b..037ab1ecc 100644
--- a/hw/xwin/winkeybd.c
+++ b/hw/xwin/winkeybd.c
@@ -35,10 +35,12 @@
 #include <xwin-config.h>
 #endif
 #include "win.h"
+
+#include "dix/dix_priv.h"
+
 #include "winkeybd.h"
 #include "winconfig.h"
 #include "winmsg.h"
-
 #include "xkbsrv.h"
 
 /* C does not have a logical XOR operator, so we use a macro instead */
diff --git a/hw/xwin/winmultiwindowwndproc.c b/hw/xwin/winmultiwindowwndproc.c
index 2b64b724c..d325727ac 100644
--- a/hw/xwin/winmultiwindowwndproc.c
+++ b/hw/xwin/winmultiwindowwndproc.c
@@ -37,6 +37,9 @@
 #endif
 
 #include "win.h"
+
+#include "dix/dix_priv.h"
+
 #include "dixevents.h"
 #include "winmultiwindowclass.h"
 #include "winprefs.h"
diff --git a/include/dix.h b/include/dix.h
index f4f17ff29..f656e2796 100644
--- a/include/dix.h
+++ b/include/dix.h
@@ -161,8 +161,6 @@ extern _X_EXPORT void SendErrorToClient(ClientPtr /*client */ ,
 
 extern _X_EXPORT void MarkClientException(ClientPtr /*client */ );
 
-extern _X_HIDDEN Bool CreateConnectionBlock(void);
-
 /* dixutils.c */
 
 extern _X_EXPORT int dixLookupWindow(WindowPtr *result,
@@ -190,12 +188,6 @@ extern _X_EXPORT void BlockHandler(void *timeout);
 
 extern _X_EXPORT void WakeupHandler(int result);
 
-void
-EnableLimitedSchedulingLatency(void);
-
-void
-DisableLimitedSchedulingLatency(void);
-
 typedef void (*ServerBlockHandlerProcPtr) (void *blockData,
                                            void *timeout);
 
@@ -269,16 +261,8 @@ InitAtoms(void);
 extern _X_EXPORT void
 SetVendorRelease(int release);
 
-int
-dix_main(int argc, char *argv[], char *envp[]);
-
 /* events.c */
 
-extern void
-SetMaskForEvent(int /* deviceid */ ,
-                Mask /* mask */ ,
-                int /* event */ );
-
 extern _X_EXPORT void
 ConfineToShape(DeviceIntPtr /* pDev */ ,
                RegionPtr /* shape */ ,
@@ -298,63 +282,23 @@ GetSpriteWindow(DeviceIntPtr pDev);
 extern _X_EXPORT void
 NoticeTime(const DeviceIntPtr dev,
            TimeStamp time);
+
 extern _X_EXPORT void
 NoticeEventTime(InternalEvent *ev,
                 DeviceIntPtr dev);
+
 extern _X_EXPORT TimeStamp
 LastEventTime(int deviceid);
+
 extern _X_EXPORT Bool
 LastEventTimeWasReset(int deviceid);
+
 extern _X_EXPORT void
 LastEventTimeToggleResetFlag(int deviceid, Bool state);
+
 extern _X_EXPORT void
 LastEventTimeToggleResetAll(Bool state);
 
-extern void
-EnqueueEvent(InternalEvent * /* ev */ ,
-             DeviceIntPtr /* device */ );
-extern void
-PlayReleasedEvents(void);
-
-extern void
-ActivatePointerGrab(DeviceIntPtr /* mouse */ ,
-                    GrabPtr /* grab */ ,
-                    TimeStamp /* time */ ,
-                    Bool /* autoGrab */ );
-
-extern void
-DeactivatePointerGrab(DeviceIntPtr /* mouse */ );
-
-extern void
-ActivateKeyboardGrab(DeviceIntPtr /* keybd */ ,
-                     GrabPtr /* grab */ ,
-                     TimeStamp /* time */ ,
-                     Bool /* passive */ );
-
-extern void
-DeactivateKeyboardGrab(DeviceIntPtr /* keybd */ );
-
-extern BOOL
-ActivateFocusInGrab(DeviceIntPtr /* dev */ ,
-                    WindowPtr /* old */ ,
-                    WindowPtr /* win */ );
-
-extern void
-AllowSome(ClientPtr /* client */ ,
-          TimeStamp /* time */ ,
-          DeviceIntPtr /* thisDev */ ,
-          int /* newState */ );
-
-extern void
-ReleaseActiveGrabs(ClientPtr client);
-
-extern GrabPtr
-CheckPassiveGrabsOnWindow(WindowPtr /* pWin */ ,
-                          DeviceIntPtr /* device */ ,
-                          InternalEvent * /* event */ ,
-                          BOOL /* checkCore */ ,
-                          BOOL /* activate */ );
-
 extern _X_EXPORT int
 DeliverEventsToWindow(DeviceIntPtr /* pWin */ ,
                       WindowPtr /* pWin */ ,
@@ -368,123 +312,19 @@ DeliverRawEvent(RawDeviceEvent * /* ev */ ,
                 DeviceIntPtr    /* dev */
     );
 
-extern int
-DeliverDeviceEvents(WindowPtr /* pWin */ ,
-                    InternalEvent * /* event */ ,
-                    GrabPtr /* grab */ ,
-                    WindowPtr /* stopAt */ ,
-                    DeviceIntPtr /* dev */ );
-
-extern int
-DeliverOneGrabbedEvent(InternalEvent * /* event */ ,
-                       DeviceIntPtr /* dev */ ,
-                       enum InputLevel /* level */ );
-
-extern void
-DeliverTouchEvents(DeviceIntPtr /* dev */ ,
-                   TouchPointInfoPtr /* ti */ ,
-                   InternalEvent * /* ev */ ,
-                   XID /* resource */ );
-
-extern Bool
-DeliverGestureEventToOwner(DeviceIntPtr dev, GestureInfoPtr gi,
-                           InternalEvent *ev);
-
-extern void
-InitializeSprite(DeviceIntPtr /* pDev */ ,
-                 WindowPtr /* pWin */ );
-extern void
-FreeSprite(DeviceIntPtr pDev);
-
-extern void
-UpdateSpriteForScreen(DeviceIntPtr /* pDev */ ,
-                      ScreenPtr /* pScreen */ );
-
 extern _X_EXPORT void
 WindowHasNewCursor(WindowPtr /* pWin */ );
 
-extern Bool
-CheckDeviceGrabs(DeviceIntPtr /* device */ ,
-                 InternalEvent * /* event */ ,
-                 WindowPtr /* ancestor */ );
-
-extern void
-DeliverFocusedEvent(DeviceIntPtr /* keybd */ ,
-                    InternalEvent * /* event */ ,
-                    WindowPtr /* window */ );
-
-extern int
-DeliverGrabbedEvent(InternalEvent * /* event */ ,
-                    DeviceIntPtr /* thisDev */ ,
-                    Bool /* deactivateGrab */ );
-
-extern void
-FreezeThisEventIfNeededForSyncGrab(DeviceIntPtr thisDev,
-                                   InternalEvent *event);
-
-extern void
-FixKeyState(DeviceEvent * /* event */ ,
-            DeviceIntPtr /* keybd */ );
-
-extern void
-RecalculateDeliverableEvents(WindowPtr /* pWin */ );
-
 extern _X_EXPORT int
 OtherClientGone(void *value,
                 XID id);
 
-extern void
-DoFocusEvents(DeviceIntPtr /* dev */ ,
-              WindowPtr /* fromWin */ ,
-              WindowPtr /* toWin */ ,
-              int /* mode */ );
-
-extern int
-SetInputFocus(ClientPtr /* client */ ,
-              DeviceIntPtr /* dev */ ,
-              Window /* focusID */ ,
-              CARD8 /* revertTo */ ,
-              Time /* ctime */ ,
-              Bool /* followOK */ );
-
-extern int
-GrabDevice(ClientPtr /* client */ ,
-           DeviceIntPtr /* dev */ ,
-           unsigned /* this_mode */ ,
-           unsigned /* other_mode */ ,
-           Window /* grabWindow */ ,
-           unsigned /* ownerEvents */ ,
-           Time /* ctime */ ,
-           GrabMask * /* mask */ ,
-           int /* grabtype */ ,
-           Cursor /* curs */ ,
-           Window /* confineToWin */ ,
-           CARD8 * /* status */ );
-
-extern void
-InitEvents(void);
-
-extern void
-CloseDownEvents(void);
-
-extern void
-DeleteWindowFromAnyEvents(WindowPtr /* pWin */ ,
-                          Bool /* freeResources */ );
-
-extern Mask
-EventMaskForClient(WindowPtr /* pWin */ ,
-                   ClientPtr /* client */ );
-
 extern _X_EXPORT int
 DeliverEvents(WindowPtr /*pWin */ ,
               xEventPtr /*xE */ ,
               int /*count */ ,
               WindowPtr /*otherParent */ );
 
-extern Bool
-CheckMotion(DeviceEvent * /* ev */ ,
-            DeviceIntPtr /* pDev */ );
-
 extern _X_EXPORT void
 WriteEventsToClient(ClientPtr /*pClient */ ,
                     int /*count */ ,
@@ -502,21 +342,12 @@ TryClientEvents(ClientPtr /*client */ ,
 extern _X_EXPORT void
 WindowsRestructured(void);
 
-extern int
-SetClientPointer(ClientPtr /* client */ ,
-                 DeviceIntPtr /* device */ );
-
 extern _X_EXPORT DeviceIntPtr
 PickPointer(ClientPtr /* client */ );
 
 extern _X_EXPORT DeviceIntPtr
 PickKeyboard(ClientPtr /* client */ );
 
-extern Bool
-IsInterferingGrab(ClientPtr /* client */ ,
-                  DeviceIntPtr /* dev */ ,
-                  xEvent * /* events */ );
-
 #ifdef RANDR
 extern _X_EXPORT void
 ScreenRestructured(ScreenPtr pScreen);
@@ -562,37 +393,18 @@ typedef struct {
 
 extern _X_EXPORT CallbackListPtr RootWindowFinalizeCallback;
 
-extern int
-XItoCoreType(int xi_type);
-extern Bool
-DevHasCursor(DeviceIntPtr pDev);
 extern _X_EXPORT Bool
 IsPointerDevice(DeviceIntPtr dev);
+
 extern _X_EXPORT Bool
 IsKeyboardDevice(DeviceIntPtr dev);
-extern Bool
-IsPointerEvent(InternalEvent *event);
-extern Bool
-IsTouchEvent(InternalEvent *event);
-Bool
-IsGestureEvent(InternalEvent *event);
-Bool
-IsGestureBeginEvent(InternalEvent *event);
-Bool
-IsGestureEndEvent(InternalEvent *event);
 
 extern _X_EXPORT Bool
 IsMaster(DeviceIntPtr dev);
+
 extern _X_EXPORT Bool
 IsFloating(DeviceIntPtr dev);
 
-extern _X_HIDDEN void
-CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
-extern _X_HIDDEN int
-CorePointerProc(DeviceIntPtr dev, int what);
-extern _X_HIDDEN int
-CoreKeyboardProc(DeviceIntPtr dev, int what);
-
 extern _X_EXPORT void *lastGLContext;
 
 #endif                          /* DIX_H */
diff --git a/mi/midispcur.c b/mi/midispcur.c
index b2984a0bb..e5a982976 100644
--- a/mi/midispcur.c
+++ b/mi/midispcur.c
@@ -35,6 +35,7 @@ in this Software without prior written authorization from The Open Group.
 
 #include   <X11/X.h>
 
+#include   "dix/dix_priv.h"
 #include   "dix/gc_priv.h"
 
 #include   "misc.h"
@@ -48,9 +49,7 @@ in this Software without prior written authorization from The Open Group.
 #include   "mipointer.h"
 #include   "misprite.h"
 #include   "gcstruct.h"
-
 #include   "picturestr.h"
-
 #include "inputstr.h"
 
 /* per-screen private data */
diff --git a/mi/mipointer.c b/mi/mipointer.c
index 652726f3b..e330cc122 100644
--- a/mi/mipointer.c
+++ b/mi/mipointer.c
@@ -53,6 +53,9 @@ in this Software without prior written authorization from The Open Group.
 #include   <X11/X.h>
 #include   <X11/Xmd.h>
 #include   <X11/Xproto.h>
+
+#include   "dix/dix_priv.h"
+
 #include   "misc.h"
 #include   "windowstr.h"
 #include   "pixmapstr.h"
diff --git a/mi/misprite.c b/mi/misprite.c
index ce8c57130..e0af13ad9 100644
--- a/mi/misprite.c
+++ b/mi/misprite.c
@@ -35,6 +35,9 @@ in this Software without prior written authorization from The Open Group.
 
 #include   <X11/X.h>
 #include   <X11/Xproto.h>
+
+#include   "dix/dix_priv.h"
+
 #include   "misc.h"
 #include   "pixmapstr.h"
 #include   "input.h"
diff --git a/test/input.c b/test/input.c
index 14ddd8a79..945680001 100644
--- a/test/input.c
+++ b/test/input.c
@@ -39,6 +39,7 @@
 #include "inputstr.h"
 #include "exevents.h"
 
+#include "dix/dix_priv.h"
 #include "dix/eventconvert.h"
 
 #include "exglobals.h"
diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c
index 5e9a6b6d6..2b87de393 100644
--- a/xkb/xkbActions.c
+++ b/xkb/xkbActions.c
@@ -28,21 +28,25 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <dix-config.h>
 #endif
 
+#include <ctype.h>
 #include <stdio.h>
 #include <math.h>
 #include <X11/X.h>
 #include <X11/Xproto.h>
 #include <X11/keysym.h>
+
+#include "dix/dix_priv.h"
+
 #include "misc.h"
 #include "inputstr.h"
 #include "exevents.h"
 #include "eventstr.h"
 #include <xkbsrv.h>
-#include <ctype.h>
 #include "mi.h"
 #include "mipointer.h"
 #include "inpututils.h"
 #include "dixgrabs.h"
+
 #define EXTENSION_EVENT_BASE 64
 
 DevPrivateKeyRec xkbDevicePrivateKeyRec;


More information about the xorg-commit mailing list