From 50ad0b97c01f38ee547efe5f7a4ce586e6c1976f Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Thu, 22 Feb 2024 17:32:26 +0100 Subject: [PATCH] (submit/unexport-ddx-callbacks) os: unexport ddx callbacks The DDX callbacks (where core/DIX calls into DDX) aren't supposed to be called by drivers directly, so unexport them. Signed-off-by: Enrico Weigelt, metux IT consult --- dix/dispatch.c | 1 + dix/main.c | 1 + hw/kdrive/ephyr/ephyrinit.c | 1 + hw/vfb/InitOutput.c | 1 + hw/xfree86/common/xf86Configure.c | 1 + hw/xnest/Args.c | 2 +- hw/xnest/Init.c | 1 + hw/xquartz/darwin.c | 1 + hw/xwin/winprocarg.c | 1 + meson.build | 1 + os/ddx.h | 27 +++++++++++++++++++++++++++ os/log.c | 1 + os/utils.c | 1 + 13 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 os/ddx.h diff --git a/dix/dispatch.c b/dix/dispatch.c index a51f18be6..4bcf565a9 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -129,6 +129,7 @@ Equipment Corporation. #include "os/screensaver.h" #include "windowstr.h" +#include "ddx.h" #include "dixfontstr.h" #include "gcstruct.h" #include "cursorstr.h" diff --git a/dix/main.c b/dix/main.c index 8c55f1196..be6f0f5f3 100644 --- a/dix/main.c +++ b/dix/main.c @@ -116,6 +116,7 @@ Equipment Corporation. #include "extension.h" #include "cursorstr.h" #include "servermd.h" +#include "ddx.h" #include "dixfont.h" #include "extnsionst.h" #include "privates.h" diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c index da78680d9..f7907bca0 100644 --- a/hw/kdrive/ephyr/ephyrinit.c +++ b/hw/kdrive/ephyr/ephyrinit.c @@ -31,6 +31,7 @@ #include "os/log_priv.h" #include "os/osdep.h" +#include "ddx.h" #include "ephyr.h" #include "ephyrlog.h" #include "glx_extinit.h" diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c index 916605ff4..56b2083d6 100644 --- a/hw/vfb/InitOutput.c +++ b/hw/vfb/InitOutput.c @@ -72,6 +72,7 @@ from The Open Group. #include #include #endif /* CONFIG-MITSHM */ +#include "ddx.h" #include "dix.h" #include "miline.h" #include "glx_extinit.h" diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c index 9d1d333fb..3531f7280 100644 --- a/hw/xfree86/common/xf86Configure.c +++ b/hw/xfree86/common/xf86Configure.c @@ -32,6 +32,7 @@ #include "xf86_priv.h" #include "xf86Bus.h" +#include "ddx.h" #include "xf86Config.h" #include "xf86_OSlib.h" #include "xf86Priv.h" diff --git a/hw/xnest/Args.c b/hw/xnest/Args.c index 5438ab9ce..74dfec9d0 100644 --- a/hw/xnest/Args.c +++ b/hw/xnest/Args.c @@ -25,7 +25,7 @@ is" without express or implied warranty. #include "misc.h" #include "scrnintstr.h" #include "servermd.h" -#include "extinit.h" +#include "os/ddx.h" #include "xnest-xcb.h" diff --git a/hw/xnest/Init.c b/hw/xnest/Init.c index 894f4fe5d..a28042417 100644 --- a/hw/xnest/Init.c +++ b/hw/xnest/Init.c @@ -27,6 +27,7 @@ is" without express or implied warranty. #include "os/log_priv.h" #include "os/osdep.h" +#include "ddx.h" #include "screenint.h" #include "input.h" #include "misc.h" diff --git a/hw/xquartz/darwin.c b/hw/xquartz/darwin.c index 28458041b..bea1bc553 100644 --- a/hw/xquartz/darwin.c +++ b/hw/xquartz/darwin.c @@ -50,6 +50,7 @@ #include "micmap.h" // mi colormap code #include "fb.h" // fb framebuffer code #include "globals.h" +#include "ddx.h" #include "dix.h" #include "xkbsrv.h" diff --git a/hw/xwin/winprocarg.c b/hw/xwin/winprocarg.c index b97d15c43..5e1f7dd95 100644 --- a/hw/xwin/winprocarg.c +++ b/hw/xwin/winprocarg.c @@ -47,6 +47,7 @@ from The Open Group. #include "winprefs.h" #include "winclipboard/winclipboard.h" +#include "ddx.h" /* * Function prototypes diff --git a/meson.build b/meson.build index 11c291535..b53611126 100644 --- a/meson.build +++ b/meson.build @@ -663,6 +663,7 @@ inc = include_directories( 'dix', 'dri3', 'include', + 'os', 'present', 'randr', 'render', diff --git a/os/ddx.h b/os/ddx.h new file mode 100644 index 000000000..1f90e099d --- /dev/null +++ b/os/ddx.h @@ -0,0 +1,27 @@ +/* SPDX-License-Identifier: MIT OR X11 + * + * Copyright © 2024 Enrico Weigelt, metux IT consult + */ +#ifndef _XSERVER_OS_DDX_H +#define _XSERVER_OS_DDX_H + +#include "os.h" + +/* callbacks of the DDX, which are called by DIX or OS layer. + DDX's need to implement these in order to handle DDX specific things. +*/ + +/* called before server reset */ +void ddxBeforeReset(void); + +/* called by ProcessCommandLine, so DDX can catch cmdline args */ +int ddxProcessArgument(int argc, char *argv[], int i); + +/* print DDX specific usage message */ +void ddxUseMsg(void); + +void ddxGiveUp(enum ExitCode error); + +void ddxInputThreadInit(void); + +#endif /* _XSERVER_OS_DDX_H */ diff --git a/os/log.c b/os/log.c index b091043a0..47b9ec2d0 100644 --- a/os/log.c +++ b/os/log.c @@ -103,6 +103,7 @@ OR PERFORMANCE OF THIS SOFTWARE. #include "os/osdep.h" #include "opaque.h" +#include "ddx.h" #ifdef XF86BIGFONT #include "xf86bigfontsrv.h" diff --git a/os/utils.c b/os/utils.c index 709681fbb..7b4d1213a 100644 --- a/os/utils.c +++ b/os/utils.c @@ -124,6 +124,7 @@ __stdcall unsigned long GetTickCount(void); #include "dixstruct.h" #include "picture.h" #include "miinitext.h" +#include "ddx.h" #include "dixstruct_priv.h" #include "dpmsproc.h"