From d33adcdf03c69407d151e732fa0cf9947151eb19 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Fri, 15 Jan 2010 15:22:02 +1000 Subject: [PATCH] dix: move config_init into the DDX. The only DDX currently using hotplugging is the xfree86 one and it looks like it'll stay that way for a bit. Move the initialization to the DDX, since Xephyr, Xnest, and friends don't need HAL or udev notifications. Add CloseInput (counterpart to InitInput) to be able to clean up the config initialization from the DDX as well. Signed-off-by: Peter Hutterer Reviewed-by: Julien Cristau Reviewed-by: Dan Nicholson --- dix/main.c | 3 +-- hw/dmx/dmxinput.c | 4 ++++ hw/kdrive/ephyr/ephyrinit.c | 5 +++++ hw/kdrive/fake/fakeinit.c | 5 +++++ hw/kdrive/fbdev/fbinit.c | 5 +++++ hw/vfb/InitInput.c | 5 +++++ hw/xfree86/common/xf86Init.c | 10 ++++++++++ hw/xnest/Init.c | 5 +++++ hw/xwin/InitInput.c | 5 +++++ include/input.h | 1 + 10 files changed, 46 insertions(+), 2 deletions(-) diff --git a/dix/main.c b/dix/main.c index da910fe4b9..f0235364f6 100644 --- a/dix/main.c +++ b/dix/main.c @@ -257,7 +257,6 @@ int main(int argc, char *argv[], char *envp[]) InitCoreDevices(); InitInput(argc, argv); InitAndStartDevices(); - config_init(); dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset); @@ -305,7 +304,7 @@ int main(int argc, char *argv[], char *envp[]) FreeAllResources(); #endif - config_fini(); + CloseInput(); memset(WindowTable, 0, sizeof(WindowTable)); CloseDownDevices(); diff --git a/hw/dmx/dmxinput.c b/hw/dmx/dmxinput.c index c099349d8f..568bb882b8 100644 --- a/hw/dmx/dmxinput.c +++ b/hw/dmx/dmxinput.c @@ -75,6 +75,10 @@ void InitInput(int argc, char **argv) mieqInit(); } +void CloseInput(void) +{ +} + /** Called from dix/dispatch.c in Dispatch() whenever input events * require processing. All the work is done in the lower level * routines. */ diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c index c7bfb5becd..27cab3b63b 100644 --- a/hw/kdrive/ephyr/ephyrinit.c +++ b/hw/kdrive/ephyr/ephyrinit.c @@ -94,6 +94,11 @@ InitInput (int argc, char **argv) KdInitInput(); } +void +CloseInput (void) +{ +} + #ifdef DDXBEFORERESET void ddxBeforeReset (void) diff --git a/hw/kdrive/fake/fakeinit.c b/hw/kdrive/fake/fakeinit.c index 87c221d377..ba61959efe 100644 --- a/hw/kdrive/fake/fakeinit.c +++ b/hw/kdrive/fake/fakeinit.c @@ -58,6 +58,11 @@ InitInput (int argc, char **argv) KdInitInput (); } +void +CloseInput (void) +{ +} + #ifdef DDXBEFORERESET void ddxBeforeReset (void) diff --git a/hw/kdrive/fbdev/fbinit.c b/hw/kdrive/fbdev/fbinit.c index 93646f6d78..51e7e00d93 100644 --- a/hw/kdrive/fbdev/fbinit.c +++ b/hw/kdrive/fbdev/fbinit.c @@ -44,6 +44,11 @@ InitInput (int argc, char **argv) KdInitInput (); } +void +CloseInput (void) +{ +} + void ddxUseMsg (void) { diff --git a/hw/vfb/InitInput.c b/hw/vfb/InitInput.c index 7f2d56fa87..35d1dc4d2a 100644 --- a/hw/vfb/InitInput.c +++ b/hw/vfb/InitInput.c @@ -142,3 +142,8 @@ InitInput(int argc, char *argv[]) RegisterKeyboardDevice(k); (void)mieqInit(); } + +void +CloseInput (void) +{ +} diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 6707448029..2c206ff47b 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -90,6 +90,8 @@ #include "Pci.h" #include "xf86Bus.h" +#include + /* forward declarations */ static Bool probe_devices_from_device_sections(DriverPtr drvp); static Bool add_matching_devices_to_configure_list(DriverPtr drvp); @@ -1138,6 +1140,14 @@ InitInput(int argc, char **argv) if (xf86NewInputDevice(*pDev, &dev, TRUE) == BadAlloc) break; } + + config_init(); +} + +void +CloseInput (void) +{ + config_fini(); } /* diff --git a/hw/xnest/Init.c b/hw/xnest/Init.c index 0765f73d04..8a90cc65eb 100644 --- a/hw/xnest/Init.c +++ b/hw/xnest/Init.c @@ -109,6 +109,11 @@ InitInput(int argc, char *argv[]) RegisterBlockAndWakeupHandlers(xnestBlockHandler, xnestWakeupHandler, NULL); } +void +CloseInput(void) +{ +} + /* * DDX - specific abort routine. Called by AbortServer(). */ diff --git a/hw/xwin/InitInput.c b/hw/xwin/InitInput.c index 1e9bcad7a2..705e618de4 100644 --- a/hw/xwin/InitInput.c +++ b/hw/xwin/InitInput.c @@ -171,3 +171,8 @@ InitInput (int argc, char *argv[]) winDebug ("InitInput - returning\n"); #endif } + +void +CloseInput (void) +{ +} diff --git a/include/input.h b/include/input.h index 4a845bedf3..8561308b33 100644 --- a/include/input.h +++ b/include/input.h @@ -420,6 +420,7 @@ extern _X_EXPORT void ProcessInputEvents(void); extern _X_EXPORT void InitInput( int /*argc*/, char ** /*argv*/); +extern _X_EXPORT void CloseInput(void); extern _X_EXPORT int GetMaximumEventsNum(void);