kdrive: add KdOsInit
Kdrive X servers used to do the OS-speciffic init part using KdOsInit. This was changed in modern Xorg because Xephyr is the only kdrive X server there, so there was no need to keep this generic. Since we want to eventually add Xfbdev, we need to add this back. Signed-off-by: stefan11111 <stefan11111@shitposting.expert>
This commit is contained in:
		
							parent
							
								
									4036b8c163
								
							
						
					
					
						commit
						18d0455e01
					
				| 
						 | 
				
			
			@ -91,6 +91,14 @@ const char *kdGlobalXkbLayout = NULL;
 | 
			
		|||
const char *kdGlobalXkbVariant = NULL;
 | 
			
		||||
const char *kdGlobalXkbOptions = NULL;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Carry arguments from InitOutput through driver initialization
 | 
			
		||||
 * to KdScreenInit
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
KdOsFuncs *kdOsFuncs = NULL;
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
KdDisableScreen(ScreenPtr pScreen)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -517,6 +525,19 @@ KdProcessArgument(int argc, char **argv, int i)
 | 
			
		|||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
KdOsInit(KdOsFuncs * pOsFuncs)
 | 
			
		||||
{
 | 
			
		||||
    kdOsFuncs = pOsFuncs;
 | 
			
		||||
    if (pOsFuncs) {
 | 
			
		||||
        if (serverGeneration == 1) {
 | 
			
		||||
            KdDoSwitchCmd("start");
 | 
			
		||||
            if (pOsFuncs->Init)
 | 
			
		||||
                (*pOsFuncs->Init) ();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static Bool
 | 
			
		||||
KdAllocatePrivates(ScreenPtr pScreen)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -278,6 +278,16 @@ int KdAddConfigKeyboard(char *pointer);
 | 
			
		|||
int KdAddKeyboard(KdKeyboardInfo * ki);
 | 
			
		||||
void KdRemoveKeyboard(KdKeyboardInfo * ki);
 | 
			
		||||
 | 
			
		||||
typedef struct _KdOsFuncs {
 | 
			
		||||
    int (*Init) (void); /* Only called when the X server is started, when serverGeneration == 1 */
 | 
			
		||||
    void (*Enable) (void);
 | 
			
		||||
    Bool (*SpecialKey) (KeySym);
 | 
			
		||||
    void (*Disable) (void);
 | 
			
		||||
    void (*Fini) (void);
 | 
			
		||||
    void (*pollEvents) (void);
 | 
			
		||||
    void (*Bell) (int, int, int);
 | 
			
		||||
} KdOsFuncs;
 | 
			
		||||
 | 
			
		||||
typedef struct _KdPointerMatrix {
 | 
			
		||||
    int matrix[2][3];
 | 
			
		||||
} KdPointerMatrix;
 | 
			
		||||
| 
						 | 
				
			
			@ -289,6 +299,8 @@ extern DevPrivateKeyRec kdScreenPrivateKeyRec;
 | 
			
		|||
extern Bool kdEmulateMiddleButton;
 | 
			
		||||
extern Bool kdDisableZaphod;
 | 
			
		||||
 | 
			
		||||
extern KdOsFuncs *kdOsFuncs;
 | 
			
		||||
 | 
			
		||||
#define KdGetScreenPriv(pScreen) ((KdPrivScreenPtr) \
 | 
			
		||||
    dixLookupPrivate(&(pScreen)->devPrivates, kdScreenPrivateKey))
 | 
			
		||||
#define KdSetScreenPriv(pScreen,v) \
 | 
			
		||||
| 
						 | 
				
			
			@ -345,6 +357,9 @@ void
 | 
			
		|||
int
 | 
			
		||||
 KdProcessArgument(int argc, char **argv, int i);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
 KdOsInit(KdOsFuncs * pOsFuncs);
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
 KdOsAddInputDrivers(void);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue