Compare commits
25 Commits
xlibre-xse
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
d403cbd25c | ||
|
a46fd9f16e | ||
|
fc9bd6b175 | ||
|
d338bf6e68 | ||
|
c6777fe48e | ||
|
2f46a02217 | ||
|
93013224b4 | ||
|
74d5b7bb05 | ||
|
160ab343ea | ||
|
2069db50e7 | ||
|
7ca8b37ab1 | ||
|
5b810bac5e | ||
|
7c64a06ba4 | ||
|
5d7be80305 | ||
|
6851e17816 | ||
|
96be335fd3 | ||
|
56650ba873 | ||
|
4036b8c163 | ||
|
c24372893b | ||
|
28e739e05b | ||
|
a4c3c9da4d | ||
|
3d266528a9 | ||
|
6c2f17a5e0 | ||
|
6a3162d623 | ||
|
ccf9787bd6 |
|
@ -14,6 +14,7 @@ cd $DRV_BUILD_DIR
|
||||||
build_drv_ac xf86-input-elographics $X11L_DRV_GIT/xf86-input-elographics master
|
build_drv_ac xf86-input-elographics $X11L_DRV_GIT/xf86-input-elographics master
|
||||||
build_drv_ac xf86-input-evdev $X11L_DRV_GIT/xf86-input-evdev master
|
build_drv_ac xf86-input-evdev $X11L_DRV_GIT/xf86-input-evdev master
|
||||||
build_drv_ac xf86-input-libinput $X11L_DRV_GIT/xf86-input-libinput master
|
build_drv_ac xf86-input-libinput $X11L_DRV_GIT/xf86-input-libinput master
|
||||||
|
build_drv_ac xf86-input-mouse $X11L_DRV_GIT/xf86-input-mouse master
|
||||||
build_drv_ac xf86-input-synaptics $X11L_DRV_GIT/xf86-input-synaptics master
|
build_drv_ac xf86-input-synaptics $X11L_DRV_GIT/xf86-input-synaptics master
|
||||||
|
|
||||||
build_drv_ac xf86-video-amdgpu $X11L_DRV_GIT/xf86-video-amdgpu xf86-video-amdgpu-23.0.0
|
build_drv_ac xf86-video-amdgpu $X11L_DRV_GIT/xf86-video-amdgpu xf86-video-amdgpu-23.0.0
|
||||||
|
|
|
@ -58,13 +58,13 @@ if build_xv
|
||||||
hdrs_xext += ['xvdix.h', 'xvmcext.h']
|
hdrs_xext += ['xvdix.h', 'xvmcext.h']
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libxserver_xext = static_library('libxserver_xext',
|
libxserver_xext = static_library('xserver_xext',
|
||||||
srcs_xext,
|
srcs_xext,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
)
|
)
|
||||||
|
|
||||||
libxserver_xext_vidmode = static_library('libxserver_xext_vidmode',
|
libxserver_xext_vidmode = static_library('xserver_xext_vidmode',
|
||||||
'vidmode.c',
|
'vidmode.c',
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -11,14 +11,6 @@
|
||||||
#include "namespace.h"
|
#include "namespace.h"
|
||||||
#include "hooks.h"
|
#include "hooks.h"
|
||||||
|
|
||||||
static inline Bool winIsRoot(WindowPtr pWin) {
|
|
||||||
if (!pWin)
|
|
||||||
return FALSE;
|
|
||||||
if (pWin->drawable.pScreen->root == pWin)
|
|
||||||
return TRUE;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void hookWindowProperty(CallbackListPtr *pcbl, void *unused, void *calldata)
|
void hookWindowProperty(CallbackListPtr *pcbl, void *unused, void *calldata)
|
||||||
{
|
{
|
||||||
XNS_HOOK_HEAD(PropertyFilterParam);
|
XNS_HOOK_HEAD(PropertyFilterParam);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
libxserver_namespace = static_library(
|
libxserver_namespace = static_library(
|
||||||
'libxserver_namespace',
|
'xserver_namespace',
|
||||||
[
|
[
|
||||||
'config.c',
|
'config.c',
|
||||||
'hook-client.c',
|
'hook-client.c',
|
||||||
|
|
|
@ -1280,7 +1280,7 @@ ProcVidModeGetMonitor(ClientPtr client)
|
||||||
+ nHsync + nVrefresh + nVendorItems + nModelItems
|
+ nHsync + nVrefresh + nVendorItems + nModelItems
|
||||||
};
|
};
|
||||||
|
|
||||||
const int buflen = nHsync * nVrefresh + nVendorItems + nModelItems;
|
const int buflen = nHsync + nVrefresh + nVendorItems + nModelItems;
|
||||||
|
|
||||||
CARD32 *sendbuf = calloc(buflen, sizeof(CARD32));
|
CARD32 *sendbuf = calloc(buflen, sizeof(CARD32));
|
||||||
if (!sendbuf)
|
if (!sendbuf)
|
||||||
|
@ -1302,22 +1302,22 @@ ProcVidModeGetMonitor(ClientPtr client)
|
||||||
bufwalk++;
|
bufwalk++;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(sendbuf,
|
memcpy(bufwalk,
|
||||||
pVidMode->GetMonitorValue(pScreen, VIDMODE_MON_VENDOR, 0).ptr,
|
pVidMode->GetMonitorValue(pScreen, VIDMODE_MON_VENDOR, 0).ptr,
|
||||||
vendorLength);
|
vendorLength);
|
||||||
sendbuf += nVendorItems;
|
bufwalk += nVendorItems;
|
||||||
|
|
||||||
memcpy(sendbuf,
|
memcpy(bufwalk,
|
||||||
pVidMode->GetMonitorValue(pScreen, VIDMODE_MON_MODEL, 0).ptr,
|
pVidMode->GetMonitorValue(pScreen, VIDMODE_MON_MODEL, 0).ptr,
|
||||||
modelLength);
|
modelLength);
|
||||||
sendbuf += nModelItems;
|
bufwalk += nModelItems;
|
||||||
|
|
||||||
if (client->swapped) {
|
if (client->swapped) {
|
||||||
swaps(&rep.sequenceNumber);
|
swaps(&rep.sequenceNumber);
|
||||||
swapl(&rep.length);
|
swapl(&rep.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
WriteToClient(client, SIZEOF(xXF86VidModeGetMonitorReply), &rep);
|
WriteToClient(client, sizeof(xXF86VidModeGetMonitorReply), &rep);
|
||||||
WriteToClient(client, buflen * sizeof(CARD32), sendbuf);
|
WriteToClient(client, buflen * sizeof(CARD32), sendbuf);
|
||||||
|
|
||||||
free(sendbuf);
|
free(sendbuf);
|
||||||
|
|
|
@ -647,7 +647,6 @@ ProcXF86BigfontDispatch(ClientPtr client)
|
||||||
static int _X_COLD
|
static int _X_COLD
|
||||||
SProcXF86BigfontQueryVersion(ClientPtr client)
|
SProcXF86BigfontQueryVersion(ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xXF86BigfontQueryVersionReq);
|
|
||||||
return ProcXF86BigfontQueryVersion(client);
|
return ProcXF86BigfontQueryVersion(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,14 +53,14 @@ srcs_xi = [
|
||||||
'xiwarppointer.c',
|
'xiwarppointer.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_xi = static_library('libxserver_xi',
|
libxserver_xi = static_library('xserver_xi',
|
||||||
srcs_xi,
|
srcs_xi,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
)
|
)
|
||||||
|
|
||||||
srcs_xi_stubs = ['stubs.c']
|
srcs_xi_stubs = ['stubs.c']
|
||||||
libxserver_xi_stubs = static_library('libxserver_xi_stubs',
|
libxserver_xi_stubs = static_library('xserver_xi_stubs',
|
||||||
srcs_xi_stubs,
|
srcs_xi_stubs,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -10,7 +10,7 @@ hdrs_composite = [
|
||||||
'compositeext.h',
|
'compositeext.h',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_composite = static_library('libxserver_composite',
|
libxserver_composite = static_library('xserver_composite',
|
||||||
srcs_composite,
|
srcs_composite,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -28,7 +28,7 @@ if build_xorg
|
||||||
install_dir: join_paths(get_option('datadir'), 'X11/xorg.conf.d'))
|
install_dir: join_paths(get_option('datadir'), 'X11/xorg.conf.d'))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libxserver_config = static_library('libxserver_config',
|
libxserver_config = static_library('xserver_config',
|
||||||
srcs_config,
|
srcs_config,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: config_dep,
|
dependencies: config_dep,
|
||||||
|
|
|
@ -2,7 +2,7 @@ srcs_damageext = [
|
||||||
'damageext.c',
|
'damageext.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_damageext = static_library('libxserver_damageext',
|
libxserver_damageext = static_library('xserver_damageext',
|
||||||
srcs_damageext,
|
srcs_damageext,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -3,7 +3,7 @@ srcs_dbe = [
|
||||||
'midbe.c',
|
'midbe.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_dbe = static_library('libxserver_dbe',
|
libxserver_dbe = static_library('xserver_dbe',
|
||||||
srcs_dbe,
|
srcs_dbe,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -57,13 +57,13 @@ endif
|
||||||
|
|
||||||
dtrace_dep = declare_dependency(sources: [dtrace_src, dtrace_hdr])
|
dtrace_dep = declare_dependency(sources: [dtrace_src, dtrace_hdr])
|
||||||
|
|
||||||
libxserver_dix = static_library('libxserver_dix',
|
libxserver_dix = static_library('xserver_dix',
|
||||||
[ srcs_dix, builtinatoms_src ],
|
[ srcs_dix, builtinatoms_src ],
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [ dtrace_dep, common_dep, ]
|
dependencies: [ dtrace_dep, common_dep, ]
|
||||||
)
|
)
|
||||||
|
|
||||||
libxserver_main = static_library('libxserver_main',
|
libxserver_main = static_library('xserver_main',
|
||||||
'stubmain.c',
|
'stubmain.c',
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -23,6 +23,7 @@ void dixFreeScreen(ScreenPtr pScreen)
|
||||||
DeleteCallbackList(&pScreen->hookWindowDestroy);
|
DeleteCallbackList(&pScreen->hookWindowDestroy);
|
||||||
DeleteCallbackList(&pScreen->hookWindowPosition);
|
DeleteCallbackList(&pScreen->hookWindowPosition);
|
||||||
DeleteCallbackList(&pScreen->hookClose);
|
DeleteCallbackList(&pScreen->hookClose);
|
||||||
|
DeleteCallbackList(&pScreen->hookPostClose);
|
||||||
DeleteCallbackList(&pScreen->hookPixmapDestroy);
|
DeleteCallbackList(&pScreen->hookPixmapDestroy);
|
||||||
free(pScreen);
|
free(pScreen);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
DECLARE_HOOK_PROC(WindowDestroy, hookWindowDestroy, XorgScreenWindowDestroyProcPtr);
|
DECLARE_HOOK_PROC(WindowDestroy, hookWindowDestroy, XorgScreenWindowDestroyProcPtr);
|
||||||
DECLARE_HOOK_PROC(WindowPosition, hookWindowPosition, XorgScreenWindowPositionProcPtr);
|
DECLARE_HOOK_PROC(WindowPosition, hookWindowPosition, XorgScreenWindowPositionProcPtr);
|
||||||
DECLARE_HOOK_PROC(Close, hookClose, XorgScreenCloseProcPtr);
|
DECLARE_HOOK_PROC(Close, hookClose, XorgScreenCloseProcPtr);
|
||||||
|
DECLARE_HOOK_PROC(PostClose, hookPostClose, XorgScreenCloseProcPtr);
|
||||||
DECLARE_HOOK_PROC(PixmapDestroy, hookPixmapDestroy, XorgScreenPixmapDestroyProcPtr);
|
DECLARE_HOOK_PROC(PixmapDestroy, hookPixmapDestroy, XorgScreenPixmapDestroyProcPtr);
|
||||||
DECLARE_HOOK_PROC(PostCreateResources, hookPostCreateResources,
|
DECLARE_HOOK_PROC(PostCreateResources, hookPostCreateResources,
|
||||||
XorgScreenPostCreateResourcesProcPtr);
|
XorgScreenPostCreateResourcesProcPtr);
|
||||||
|
@ -71,6 +72,8 @@ void dixScreenRaiseClose(ScreenPtr pScreen) {
|
||||||
|
|
||||||
if (pScreen->CloseScreen)
|
if (pScreen->CloseScreen)
|
||||||
pScreen->CloseScreen(pScreen);
|
pScreen->CloseScreen(pScreen);
|
||||||
|
|
||||||
|
CallCallbacks(&pScreen->hookPostClose, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dixScreenRaisePixmapDestroy(PixmapPtr pPixmap)
|
void dixScreenRaisePixmapDestroy(PixmapPtr pPixmap)
|
||||||
|
|
|
@ -147,6 +147,37 @@ _X_EXPORT
|
||||||
void dixScreenUnhookClose(ScreenPtr pScreen,
|
void dixScreenUnhookClose(ScreenPtr pScreen,
|
||||||
XorgScreenCloseProcPtr func);
|
XorgScreenCloseProcPtr func);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief register a screen post close notify hook on the given screen
|
||||||
|
*
|
||||||
|
* @param pScreen pointer to the screen to register the notify hook into
|
||||||
|
* @param func pointer to the hook function
|
||||||
|
*
|
||||||
|
* In contrast to Close hook, it's called *after* the driver's CloseScreen()
|
||||||
|
* proc had been called.
|
||||||
|
*
|
||||||
|
* When registration fails, the server aborts.
|
||||||
|
**/
|
||||||
|
void dixScreenHookPostClose(ScreenPtr pScreen,
|
||||||
|
XorgScreenCloseProcPtr func);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief unregister a screen close notify hook on the given screen
|
||||||
|
*
|
||||||
|
* @param pScreen pointer to the screen to unregister the hook from
|
||||||
|
* @param func pointer to the hook function
|
||||||
|
* @param arg opaque pointer passed to the destructor
|
||||||
|
*
|
||||||
|
* @see dixScreenHookPostClose
|
||||||
|
*
|
||||||
|
* Unregister a screen close notify hook registered via @ref dixScreenHookPostClose
|
||||||
|
*
|
||||||
|
* In contrast to Close hook, it's called *after* the driver's CloseScreen()
|
||||||
|
* proc had been called.
|
||||||
|
**/
|
||||||
|
void dixScreenUnhookPostClose(ScreenPtr pScreen,
|
||||||
|
XorgScreenCloseProcPtr func);
|
||||||
|
|
||||||
/* prototype of pixmap destroy notification handler */
|
/* prototype of pixmap destroy notification handler */
|
||||||
typedef void (*XorgScreenPixmapDestroyProcPtr)(CallbackListPtr *pcbl,
|
typedef void (*XorgScreenPixmapDestroyProcPtr)(CallbackListPtr *pcbl,
|
||||||
ScreenPtr pScreen,
|
ScreenPtr pScreen,
|
||||||
|
|
|
@ -10,7 +10,7 @@ hdrs_dri3 = [
|
||||||
|
|
||||||
libxserver_dri3 = []
|
libxserver_dri3 = []
|
||||||
if build_dri3
|
if build_dri3
|
||||||
libxserver_dri3 = static_library('libxserver_dri3',
|
libxserver_dri3 = static_library('xserver_dri3',
|
||||||
srcs_dri3,
|
srcs_dri3,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [ common_dep, libdrm_dep ],
|
dependencies: [ common_dep, libdrm_dep ],
|
||||||
|
|
|
@ -12,7 +12,7 @@ srcs_exa = [
|
||||||
'exa_unaccel.c',
|
'exa_unaccel.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_exa = static_library('libxserver_exa',
|
libxserver_exa = static_library('xserver_exa',
|
||||||
srcs_exa,
|
srcs_exa,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -37,7 +37,7 @@ hdrs_fb = [
|
||||||
'wfbrename.h'
|
'wfbrename.h'
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_fb = static_library('libxserver_fb',
|
libxserver_fb = static_library('xserver_fb',
|
||||||
srcs_fb,
|
srcs_fb,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
@ -46,7 +46,7 @@ libxserver_fb = static_library('libxserver_fb',
|
||||||
|
|
||||||
wfb_args = '-DFB_ACCESS_WRAPPER'
|
wfb_args = '-DFB_ACCESS_WRAPPER'
|
||||||
|
|
||||||
libxserver_wfb = static_library('libxserver_wfb',
|
libxserver_wfb = static_library('xserver_wfb',
|
||||||
srcs_fb,
|
srcs_fb,
|
||||||
c_args: wfb_args,
|
c_args: wfb_args,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
|
|
|
@ -128,13 +128,10 @@ __glXSendReply(ClientPtr client, const void *data, size_t elements,
|
||||||
.retval = retval,
|
.retval = retval,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* It is faster on almost always every architecture to just copy the 8
|
/* Single element goes in reply padding; don't leak uninitialized data. */
|
||||||
* bytes, even when not necessary, than check to see of the value of
|
if (elements == 1) {
|
||||||
* elements requires it. Copying the data when not needed will do no
|
(void) memcpy(&reply.pad3, data, element_size);
|
||||||
* harm.
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
(void) memcpy(&reply.pad3, data, 8);
|
|
||||||
WriteToClient(client, sizeof(xGLXSingleReply), &reply);
|
WriteToClient(client, sizeof(xGLXSingleReply), &reply);
|
||||||
|
|
||||||
if (reply_ints != 0) {
|
if (reply_ints != 0) {
|
||||||
|
@ -176,13 +173,10 @@ __glXSendReplySwap(ClientPtr client, const void *data, size_t elements,
|
||||||
.retval = bswap_32(retval),
|
.retval = bswap_32(retval),
|
||||||
};
|
};
|
||||||
|
|
||||||
/* It is faster on almost always every architecture to just copy the 8
|
/* Single element goes in reply padding; don't leak uninitialized data. */
|
||||||
* bytes, even when not necessary, than check to see of the value of
|
if (elements == 1) {
|
||||||
* elements requires it. Copying the data when not needed will do no
|
(void) memcpy(&reply.pad3, data, element_size);
|
||||||
* harm.
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
(void) memcpy(&reply.pad3, data, 8);
|
|
||||||
WriteToClient(client, sizeof(xGLXSingleReply), &reply);
|
WriteToClient(client, sizeof(xGLXSingleReply), &reply);
|
||||||
|
|
||||||
if (reply_ints != 0) {
|
if (reply_ints != 0) {
|
||||||
|
|
|
@ -32,7 +32,7 @@ srcs_glx = [
|
||||||
|
|
||||||
libxserver_glx = []
|
libxserver_glx = []
|
||||||
if build_glx
|
if build_glx
|
||||||
libxserver_glx = static_library('libxserver_glx',
|
libxserver_glx = static_library('xserver_glx',
|
||||||
srcs_glx,
|
srcs_glx,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
|
@ -68,7 +68,7 @@ hdrs_vnd = [
|
||||||
|
|
||||||
libglxvnd = []
|
libglxvnd = []
|
||||||
if build_glx
|
if build_glx
|
||||||
libglxvnd = static_library('libglxvnd',
|
libglxvnd = static_library('glxvnd',
|
||||||
srcs_vnd,
|
srcs_vnd,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
|
|
|
@ -105,7 +105,7 @@ __glGetMap_size(GLenum target, GLenum query)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return -1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
GLint
|
GLint
|
||||||
|
@ -164,7 +164,7 @@ __glGetPixelMap_size(GLenum map)
|
||||||
query = GL_PIXEL_MAP_A_TO_A_SIZE;
|
query = GL_PIXEL_MAP_A_TO_A_SIZE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -1;
|
return 0;
|
||||||
}
|
}
|
||||||
glGetIntegerv(query, &size);
|
glGetIntegerv(query, &size);
|
||||||
return size;
|
return size;
|
||||||
|
|
|
@ -1435,12 +1435,11 @@ MouseFini(KdPointerInfo * pi)
|
||||||
}
|
}
|
||||||
|
|
||||||
KdPointerDriver EphyrMouseDriver = {
|
KdPointerDriver EphyrMouseDriver = {
|
||||||
"ephyr",
|
.name = "ephyr",
|
||||||
MouseInit,
|
.Init = MouseInit,
|
||||||
MouseEnable,
|
.Enable = MouseEnable,
|
||||||
MouseDisable,
|
.Disable = MouseDisable,
|
||||||
MouseFini,
|
.Fini = MouseFini,
|
||||||
NULL,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Keyboard */
|
/* Keyboard */
|
||||||
|
@ -1509,12 +1508,11 @@ EphyrKeyboardBell(KdKeyboardInfo * ki, int volume, int frequency, int duration)
|
||||||
}
|
}
|
||||||
|
|
||||||
KdKeyboardDriver EphyrKeyboardDriver = {
|
KdKeyboardDriver EphyrKeyboardDriver = {
|
||||||
"ephyr",
|
.name = "ephyr",
|
||||||
EphyrKeyboardInit,
|
.Init = EphyrKeyboardInit,
|
||||||
EphyrKeyboardEnable,
|
.Enable = EphyrKeyboardEnable,
|
||||||
EphyrKeyboardLeds,
|
.Leds = EphyrKeyboardLeds,
|
||||||
EphyrKeyboardBell,
|
.Bell = EphyrKeyboardBell,
|
||||||
EphyrKeyboardDisable,
|
.Disable = EphyrKeyboardDisable,
|
||||||
EphyrKeyboardFini,
|
.Fini = EphyrKeyboardFini,
|
||||||
NULL,
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -370,6 +370,23 @@ ddxProcessArgument(int argc, char **argv, int i)
|
||||||
return KdProcessArgument(argc, argv, i);
|
return KdProcessArgument(argc, argv, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
EphyrInit(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* make sure at least one screen
|
||||||
|
* has been added to the system.
|
||||||
|
*/
|
||||||
|
if (!KdCardInfoLast()) {
|
||||||
|
processScreenArg("640x480", NULL);
|
||||||
|
}
|
||||||
|
return hostx_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
KdOsFuncs EphyrOsFuncs = {
|
||||||
|
.Init = EphyrInit,
|
||||||
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
OsVendorInit(void)
|
OsVendorInit(void)
|
||||||
{
|
{
|
||||||
|
@ -381,32 +398,23 @@ OsVendorInit(void)
|
||||||
if (hostx_want_host_cursor())
|
if (hostx_want_host_cursor())
|
||||||
ephyrFuncs.initCursor = &ephyrCursorInit;
|
ephyrFuncs.initCursor = &ephyrCursorInit;
|
||||||
|
|
||||||
if (serverGeneration == 1) {
|
KdOsInit(&EphyrOsFuncs);
|
||||||
if (!KdCardInfoLast()) {
|
|
||||||
processScreenArg("640x480", NULL);
|
|
||||||
}
|
|
||||||
hostx_init();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
KdCardFuncs ephyrFuncs = {
|
KdCardFuncs ephyrFuncs = {
|
||||||
ephyrCardInit, /* cardinit */
|
.cardinit = ephyrCardInit,
|
||||||
ephyrScreenInitialize, /* scrinit */
|
.scrinit = ephyrScreenInitialize,
|
||||||
ephyrInitScreen, /* initScreen */
|
.initScreen = ephyrInitScreen,
|
||||||
ephyrFinishInitScreen, /* finishInitScreen */
|
.finishInitScreen = ephyrFinishInitScreen,
|
||||||
ephyrCreateResources, /* createRes */
|
.createRes = ephyrCreateResources,
|
||||||
ephyrScreenFini, /* scrfini */
|
|
||||||
ephyrCardFini, /* cardfini */
|
|
||||||
|
|
||||||
0, /* initCursor */
|
.scrfini = ephyrScreenFini,
|
||||||
|
.cardfini = ephyrCardFini,
|
||||||
|
|
||||||
0, /* initAccel */
|
/* no cursor or accel funcs here */
|
||||||
0, /* enableAccel */
|
|
||||||
0, /* disableAccel */
|
|
||||||
0, /* finiAccel */
|
|
||||||
|
|
||||||
ephyrGetColors, /* getColors */
|
.getColors = ephyrGetColors,
|
||||||
ephyrPutColors, /* putColors */
|
.putColors = ephyrPutColors,
|
||||||
|
|
||||||
ephyrCloseScreen, /* closeScreen */
|
.closeScreen = ephyrCloseScreen,
|
||||||
};
|
};
|
||||||
|
|
|
@ -91,6 +91,14 @@ const char *kdGlobalXkbLayout = NULL;
|
||||||
const char *kdGlobalXkbVariant = NULL;
|
const char *kdGlobalXkbVariant = NULL;
|
||||||
const char *kdGlobalXkbOptions = NULL;
|
const char *kdGlobalXkbOptions = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Carry arguments from InitOutput through driver initialization
|
||||||
|
* to KdScreenInit
|
||||||
|
*/
|
||||||
|
|
||||||
|
KdOsFuncs *kdOsFuncs = NULL;
|
||||||
|
|
||||||
void
|
void
|
||||||
KdDisableScreen(ScreenPtr pScreen)
|
KdDisableScreen(ScreenPtr pScreen)
|
||||||
{
|
{
|
||||||
|
@ -517,6 +525,19 @@ KdProcessArgument(int argc, char **argv, int i)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
KdOsInit(KdOsFuncs * pOsFuncs)
|
||||||
|
{
|
||||||
|
kdOsFuncs = pOsFuncs;
|
||||||
|
if (pOsFuncs) {
|
||||||
|
if (serverGeneration == 1) {
|
||||||
|
KdDoSwitchCmd("start");
|
||||||
|
if (pOsFuncs->Init)
|
||||||
|
(*pOsFuncs->Init) ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
KdAllocatePrivates(ScreenPtr pScreen)
|
KdAllocatePrivates(ScreenPtr pScreen)
|
||||||
{
|
{
|
||||||
|
|
|
@ -278,6 +278,16 @@ int KdAddConfigKeyboard(char *pointer);
|
||||||
int KdAddKeyboard(KdKeyboardInfo * ki);
|
int KdAddKeyboard(KdKeyboardInfo * ki);
|
||||||
void KdRemoveKeyboard(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 {
|
typedef struct _KdPointerMatrix {
|
||||||
int matrix[2][3];
|
int matrix[2][3];
|
||||||
} KdPointerMatrix;
|
} KdPointerMatrix;
|
||||||
|
@ -289,6 +299,8 @@ extern DevPrivateKeyRec kdScreenPrivateKeyRec;
|
||||||
extern Bool kdEmulateMiddleButton;
|
extern Bool kdEmulateMiddleButton;
|
||||||
extern Bool kdDisableZaphod;
|
extern Bool kdDisableZaphod;
|
||||||
|
|
||||||
|
extern KdOsFuncs *kdOsFuncs;
|
||||||
|
|
||||||
#define KdGetScreenPriv(pScreen) ((KdPrivScreenPtr) \
|
#define KdGetScreenPriv(pScreen) ((KdPrivScreenPtr) \
|
||||||
dixLookupPrivate(&(pScreen)->devPrivates, kdScreenPrivateKey))
|
dixLookupPrivate(&(pScreen)->devPrivates, kdScreenPrivateKey))
|
||||||
#define KdSetScreenPriv(pScreen,v) \
|
#define KdSetScreenPriv(pScreen,v) \
|
||||||
|
@ -345,6 +357,9 @@ void
|
||||||
int
|
int
|
||||||
KdProcessArgument(int argc, char **argv, int i);
|
KdProcessArgument(int argc, char **argv, int i);
|
||||||
|
|
||||||
|
void
|
||||||
|
KdOsInit(KdOsFuncs * pOsFuncs);
|
||||||
|
|
||||||
void
|
void
|
||||||
KdOsAddInputDrivers(void);
|
KdOsAddInputDrivers(void);
|
||||||
|
|
||||||
|
|
|
@ -259,13 +259,6 @@ ddxGiveUp(enum ExitCode error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
void
|
|
||||||
DarwinHandleGUI(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
OsVendorInit(void)
|
OsVendorInit(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1 +1,5 @@
|
||||||
special compat code for legacy drivers, namely Nvidia proprietary
|
special compat code for legacy drivers, namely Nvidia proprietary
|
||||||
|
|
||||||
|
NVidia is lacking behind for at least a year and don't actually clean up
|
||||||
|
their spaghetti code. That's why we need to keep several special compat
|
||||||
|
functions to emulate prehistoric behaviour.
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
|
|
||||||
#include "dix/dix_priv.h"
|
#include "dix/dix_priv.h"
|
||||||
|
|
||||||
|
#include "xf86_compat.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* this is specifically for NVidia proprietary driver: they're again lagging
|
* this is specifically for NVidia proprietary driver: they're again lagging
|
||||||
* behind a year, doing at least some minimal cleanup of their code base.
|
* behind a year, doing at least some minimal cleanup of their code base.
|
||||||
|
@ -13,12 +15,7 @@ _X_EXPORT void MarkClientException(ClientPtr pClient);
|
||||||
|
|
||||||
void MarkClientException(ClientPtr pClient)
|
void MarkClientException(ClientPtr pClient)
|
||||||
{
|
{
|
||||||
LogMessageVerb(X_WARNING, 0, "Bogus driver calling DIX-internal function MarkClientException() !\n");
|
xf86NVidiaBugInternalFunc("MarkClientException()");
|
||||||
LogMessageVerb(X_WARNING, 0, "External drivers really should never ever call this function.\n");
|
|
||||||
LogMessageVerb(X_WARNING, 0, "Nor should they ever DIX-internal fields like ClientRec->noClientException\n");
|
|
||||||
LogMessageVerb(X_WARNING, 0, "File a bug report to driver vendor or use a FOSS driver.\n");
|
|
||||||
LogMessageVerb(X_WARNING, 0, "Proprietary drivers are inherently unstable, they just can't be done right.\n");
|
|
||||||
LogMessageVerb(X_WARNING, 0, "And just don't buy Nvidia hardware, ever.\n");
|
|
||||||
|
|
||||||
dixMarkClientException(pClient);
|
dixMarkClientException(pClient);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
|
|
||||||
#include "include/os.h"
|
#include "include/os.h"
|
||||||
|
|
||||||
|
#include "xf86_compat.h"
|
||||||
|
|
||||||
#undef xf86Msg
|
#undef xf86Msg
|
||||||
#undef xf86MsgVerb
|
#undef xf86MsgVerb
|
||||||
|
|
||||||
|
@ -17,9 +19,7 @@ _X_EXPORT void xf86Msg(MessageType type, const char *format, ...)
|
||||||
|
|
||||||
void xf86Msg(MessageType type, const char *format, ...)
|
void xf86Msg(MessageType type, const char *format, ...)
|
||||||
{
|
{
|
||||||
LogMessageVerb(X_WARNING, 0, "Outdated driver still using xf86Msg() !\n");
|
xf86NVidiaBugInternalFunc("xf86Msg()");
|
||||||
LogMessageVerb(X_WARNING, 0, "File a bug report to driver vendor or use a FOSS driver.\n");
|
|
||||||
LogMessageVerb(X_WARNING, 0, "Proprietary drivers are inherently unstable, they just can't be done right.\n");
|
|
||||||
|
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
||||||
|
@ -39,9 +39,12 @@ _X_EXPORT void xf86MsgVerb(MessageType type, int verb, const char *format, ...)
|
||||||
void
|
void
|
||||||
xf86MsgVerb(MessageType type, int verb, const char *format, ...)
|
xf86MsgVerb(MessageType type, int verb, const char *format, ...)
|
||||||
{
|
{
|
||||||
LogMessageVerb(X_WARNING, 0, "Outdated driver still using xf86MsgVerb() !\n");
|
static char reportxf86MsgVerb = 1;
|
||||||
LogMessageVerb(X_WARNING, 0, "File a bug report to driver vendor or use a FOSS driver.\n");
|
|
||||||
LogMessageVerb(X_WARNING, 0, "Proprietary drivers are inherently unstable, they just can't be done right.\n");
|
if (reportxf86MsgVerb) {
|
||||||
|
xf86NVidiaBugInternalFunc("xf86MsgVerb()");
|
||||||
|
reportxf86MsgVerb = 0;
|
||||||
|
}
|
||||||
|
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, format);
|
va_start(ap, format);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
srcs_xorg_compat = [
|
srcs_xorg_compat = [
|
||||||
'clientexception.c',
|
'clientexception.c',
|
||||||
'log.c',
|
'log.c',
|
||||||
|
'nvidiabug.c',
|
||||||
'ones.c',
|
'ones.c',
|
||||||
'xf86Helper.c',
|
'xf86Helper.c',
|
||||||
]
|
]
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
/* SPDX-License-Identifier: MIT OR X11
|
||||||
|
*
|
||||||
|
* Copyright © 2024 Enrico Weigelt, metux IT consult <info@metux.net>
|
||||||
|
*/
|
||||||
|
#include <dix-config.h>
|
||||||
|
|
||||||
|
#include "include/os.h"
|
||||||
|
|
||||||
|
#include "xf86_compat.h"
|
||||||
|
|
||||||
|
void xf86NVidiaBug(void)
|
||||||
|
{
|
||||||
|
LogMessageVerb(X_WARNING, 0, "[DRIVER BUG] file a bug report to driver vendor or use a free Xlibre driver.\n");
|
||||||
|
LogMessageVerb(X_WARNING, 0, "[DRIVER BUG] Proprietary drivers are inherently unstable, they just can't be done right.\n");
|
||||||
|
LogMessageVerb(X_WARNING, 0, "[DRIVER BUG] For NVidia report here: https://forums.developer.nvidia.com/c/gpu-graphics/linux/148\n");
|
||||||
|
LogMessageVerb(X_WARNING, 0, "[DRIVER BUG] And better don't buy NVidia HW until they've fixed their mess.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void xf86NVidiaBugInternalFunc(const char* name)
|
||||||
|
{
|
||||||
|
LogMessageVerb(X_WARNING, 0, "[DRIVER BUG] calling internal function: %s\n", name);
|
||||||
|
LogMessageVerb(X_WARNING, 0, "[DRIVER BUG] this function is not supposed to be by drivers ever\n");
|
||||||
|
xf86NVidiaBug();
|
||||||
|
}
|
||||||
|
|
||||||
|
void xf86NVidiaBugObsoleteFunc(const char* name)
|
||||||
|
{
|
||||||
|
LogMessageVerb(X_WARNING, 0, "[DRIVER BUG] calling obsolete function: %s\n", name);
|
||||||
|
LogMessageVerb(X_WARNING, 0, "[DRIVER BUG] this function is not supposed to be by drivers ever\n");
|
||||||
|
xf86NVidiaBug();
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
/* SPDX-License-Identifier: MIT OR X11
|
||||||
|
*
|
||||||
|
* Copyright © 2024 Enrico Weigelt, metux IT consult <info@metux.net>
|
||||||
|
*/
|
||||||
|
#ifndef __XFREE86_COMPAT_XF86_COMPAT_H
|
||||||
|
#define __XFREE86_COMPAT_XF86_COMPAT_H
|
||||||
|
|
||||||
|
void xf86NVidiaBug(void);
|
||||||
|
void xf86NVidiaBugInternalFunc(const char* name);
|
||||||
|
void xf86NVidiaBugObsoleteFunc(const char* name);
|
||||||
|
|
||||||
|
#endif /* __XFREE86_COMPAT_XF86_COMPAT_H */
|
|
@ -417,7 +417,6 @@ CheckVersion(const char *module, XF86ModuleVersionInfo * data,
|
||||||
{
|
{
|
||||||
int vercode[4];
|
int vercode[4];
|
||||||
long ver = data->xf86version;
|
long ver = data->xf86version;
|
||||||
MessageType errtype;
|
|
||||||
|
|
||||||
LogMessage(X_INFO, "Module %s: vendor=\"%s\"\n",
|
LogMessage(X_INFO, "Module %s: vendor=\"%s\"\n",
|
||||||
data->modname ? data->modname : "UNKNOWN!",
|
data->modname ? data->modname : "UNKNOWN!",
|
||||||
|
@ -458,6 +457,7 @@ CheckVersion(const char *module, XF86ModuleVersionInfo * data,
|
||||||
vermaj = GET_ABI_MAJOR(ver);
|
vermaj = GET_ABI_MAJOR(ver);
|
||||||
vermin = GET_ABI_MINOR(ver);
|
vermin = GET_ABI_MINOR(ver);
|
||||||
if (abimaj != vermaj) {
|
if (abimaj != vermaj) {
|
||||||
|
MessageType errtype;
|
||||||
if (LoaderOptions & LDR_OPT_ABI_MISMATCH_NONFATAL)
|
if (LoaderOptions & LDR_OPT_ABI_MISMATCH_NONFATAL)
|
||||||
errtype = X_WARNING;
|
errtype = X_WARNING;
|
||||||
else
|
else
|
||||||
|
@ -469,6 +469,7 @@ CheckVersion(const char *module, XF86ModuleVersionInfo * data,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else if (abimin > vermin) {
|
else if (abimin > vermin) {
|
||||||
|
MessageType errtype;
|
||||||
if (LoaderOptions & LDR_OPT_ABI_MISMATCH_NONFATAL)
|
if (LoaderOptions & LDR_OPT_ABI_MISMATCH_NONFATAL)
|
||||||
errtype = X_WARNING;
|
errtype = X_WARNING;
|
||||||
else
|
else
|
||||||
|
|
|
@ -154,13 +154,6 @@ ddxGiveUp(enum ExitCode error)
|
||||||
xnestCloseDisplay();
|
xnestCloseDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
void
|
|
||||||
DarwinHandleGUI(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
OsVendorInit(void)
|
OsVendorInit(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -164,7 +164,7 @@ Bool
|
||||||
xnestOpenScreen(ScreenPtr pScreen, int argc, char *argv[])
|
xnestOpenScreen(ScreenPtr pScreen, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
unsigned long valuemask;
|
unsigned long valuemask;
|
||||||
VisualID defaultVisual;
|
VisualID defaultVisual = 0;
|
||||||
int rootDepth;
|
int rootDepth;
|
||||||
miPointerScreenPtr PointPriv;
|
miPointerScreenPtr PointPriv;
|
||||||
|
|
||||||
|
|
|
@ -690,7 +690,6 @@ SNotifyEvent(xAppleWMNotifyEvent *from, xAppleWMNotifyEvent *to)
|
||||||
static int
|
static int
|
||||||
SProcAppleWMQueryVersion(register ClientPtr client)
|
SProcAppleWMQueryVersion(register ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xAppleWMQueryVersionReq);
|
|
||||||
return ProcAppleWMQueryVersion(client);
|
return ProcAppleWMQueryVersion(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
* needs and simply execs the startup script which then execs the main binary.
|
* needs and simply execs the startup script which then execs the main binary.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static char *executable_path() {
|
static char *executable_path(void) {
|
||||||
uint32_t bufsize = PATH_MAX;
|
uint32_t bufsize = PATH_MAX;
|
||||||
char *buf = calloc(1, bufsize);
|
char *buf = calloc(1, bufsize);
|
||||||
|
|
||||||
|
|
|
@ -394,7 +394,6 @@ SNotifyEvent(xAppleDRINotifyEvent *from,
|
||||||
static int
|
static int
|
||||||
SProcAppleDRIQueryVersion(register ClientPtr client)
|
SProcAppleDRIQueryVersion(register ClientPtr client)
|
||||||
{
|
{
|
||||||
REQUEST(xAppleDRIQueryVersionReq);
|
|
||||||
return ProcAppleDRIQueryVersion(client);
|
return ProcAppleDRIQueryVersion(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -696,6 +696,10 @@ typedef struct _Screen {
|
||||||
CallbackListPtr hookPostCreateResources;
|
CallbackListPtr hookPostCreateResources;
|
||||||
|
|
||||||
SetWindowVRRModeProcPtr SetWindowVRRMode;
|
SetWindowVRRModeProcPtr SetWindowVRRMode;
|
||||||
|
|
||||||
|
/* additional screen post-close notify hooks (replaces wrapping CloseScreen)
|
||||||
|
should NOT be touched outside of DIX core */
|
||||||
|
CallbackListPtr hookPostClose;
|
||||||
} ScreenRec;
|
} ScreenRec;
|
||||||
|
|
||||||
static inline RegionPtr
|
static inline RegionPtr
|
||||||
|
|
|
@ -3,10 +3,10 @@ project('xserver', 'c',
|
||||||
'buildtype=debugoptimized',
|
'buildtype=debugoptimized',
|
||||||
'c_std=gnu99',
|
'c_std=gnu99',
|
||||||
],
|
],
|
||||||
version: '25.0.0.2',
|
version: '25.0.0.4',
|
||||||
meson_version: '>= 0.58.0',
|
meson_version: '>= 0.58.0',
|
||||||
)
|
)
|
||||||
release_date = '2025-06-30'
|
release_date = '2025-07-04'
|
||||||
|
|
||||||
add_project_arguments('-DHAVE_DIX_CONFIG_H', language: ['c', 'objc'])
|
add_project_arguments('-DHAVE_DIX_CONFIG_H', language: ['c', 'objc'])
|
||||||
cc = meson.get_compiler('c')
|
cc = meson.get_compiler('c')
|
||||||
|
@ -777,7 +777,8 @@ endif
|
||||||
|
|
||||||
subdir('hw')
|
subdir('hw')
|
||||||
|
|
||||||
if host_machine.system() != 'windows'
|
build_tests = get_option('tests') and host_machine.system() != 'windows'
|
||||||
|
if build_tests
|
||||||
subdir('test')
|
subdir('test')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -110,6 +110,8 @@ option('sha1', type: 'combo', choices: ['libc', 'CommonCrypto', 'CryptoAPI', 'li
|
||||||
description: 'SHA1 implementation')
|
description: 'SHA1 implementation')
|
||||||
option('xf86-input-inputtest', type: 'boolean', value: true,
|
option('xf86-input-inputtest', type: 'boolean', value: true,
|
||||||
description: 'Test input driver support on Xorg')
|
description: 'Test input driver support on Xorg')
|
||||||
|
option('tests', type: 'boolean', value: true,
|
||||||
|
description: 'Build tests for the X server on platforms that support it')
|
||||||
|
|
||||||
option('dri1', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', description: 'Build DRI1 extension (default: auto)')
|
option('dri1', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', description: 'Build DRI1 extension (default: auto)')
|
||||||
option('dri2', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', description: 'Build DRI2 extension (default: auto)')
|
option('dri2', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', description: 'Build DRI2 extension (default: auto)')
|
||||||
|
|
|
@ -40,7 +40,7 @@ hdrs_mi = [
|
||||||
'mizerarc.h',
|
'mizerarc.h',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_mi = static_library('libxserver_mi',
|
libxserver_mi = static_library('xserver_mi',
|
||||||
srcs_mi,
|
srcs_mi,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
|
|
|
@ -141,7 +141,7 @@ miPointerInitialize(ScreenPtr pScreen,
|
||||||
pScreenPriv->screenFuncs = screenFuncs;
|
pScreenPriv->screenFuncs = screenFuncs;
|
||||||
pScreenPriv->waitForUpdate = waitForUpdate;
|
pScreenPriv->waitForUpdate = waitForUpdate;
|
||||||
pScreenPriv->showTransparent = FALSE;
|
pScreenPriv->showTransparent = FALSE;
|
||||||
dixScreenHookClose(pScreen, miPointerCloseScreen);
|
dixScreenHookPostClose(pScreen, miPointerCloseScreen);
|
||||||
dixSetPrivate(&pScreen->devPrivates, miPointerScreenKey, pScreenPriv);
|
dixSetPrivate(&pScreen->devPrivates, miPointerScreenKey, pScreenPriv);
|
||||||
/*
|
/*
|
||||||
* set up screen cursor method table
|
* set up screen cursor method table
|
||||||
|
@ -169,7 +169,7 @@ static void miPointerCloseScreen(CallbackListPtr *pcbl, ScreenPtr pScreen, void
|
||||||
{
|
{
|
||||||
SetupScreen(pScreen);
|
SetupScreen(pScreen);
|
||||||
|
|
||||||
dixScreenUnhookClose(pScreen, miPointerCloseScreen);
|
dixScreenUnhookPostClose(pScreen, miPointerCloseScreen);
|
||||||
free((void *) pScreenPriv);
|
free((void *) pScreenPriv);
|
||||||
dixSetPrivate(&pScreen->devPrivates, miPointerScreenKey, NULL);
|
dixSetPrivate(&pScreen->devPrivates, miPointerScreenKey, NULL);
|
||||||
FreeEventList(mipointermove_events, GetMaximumEventsNum());
|
FreeEventList(mipointermove_events, GetMaximumEventsNum());
|
||||||
|
|
|
@ -1569,7 +1569,7 @@ damageWindowDestroy(CallbackListPtr *pcbl, ScreenPtr pScreen, WindowPtr pWindow)
|
||||||
|
|
||||||
static void damageCloseScreen(CallbackListPtr *pcbl, ScreenPtr pScreen, void *unused)
|
static void damageCloseScreen(CallbackListPtr *pcbl, ScreenPtr pScreen, void *unused)
|
||||||
{
|
{
|
||||||
dixScreenUnhookClose(pScreen, damageCloseScreen);
|
dixScreenUnhookPostClose(pScreen, damageCloseScreen);
|
||||||
dixScreenUnhookWindowDestroy(pScreen, damageWindowDestroy);
|
dixScreenUnhookWindowDestroy(pScreen, damageWindowDestroy);
|
||||||
dixScreenUnhookPixmapDestroy(pScreen, damagePixmapDestroy);
|
dixScreenUnhookPixmapDestroy(pScreen, damagePixmapDestroy);
|
||||||
|
|
||||||
|
@ -1667,7 +1667,7 @@ DamageSetup(ScreenPtr pScreen)
|
||||||
pScrPriv->internalLevel = 0;
|
pScrPriv->internalLevel = 0;
|
||||||
pScrPriv->pScreenDamage = 0;
|
pScrPriv->pScreenDamage = 0;
|
||||||
|
|
||||||
dixScreenHookClose(pScreen, damageCloseScreen);
|
dixScreenHookPostClose(pScreen, damageCloseScreen);
|
||||||
dixScreenHookWindowDestroy(pScreen, damageWindowDestroy);
|
dixScreenHookWindowDestroy(pScreen, damageWindowDestroy);
|
||||||
dixScreenHookPixmapDestroy(pScreen, damagePixmapDestroy);
|
dixScreenHookPixmapDestroy(pScreen, damagePixmapDestroy);
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ hdrs_miext_damage = [
|
||||||
'damagestr.h',
|
'damagestr.h',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_miext_damage = static_library('libxserver_miext_damage',
|
libxserver_miext_damage = static_library('xserver_miext_damage',
|
||||||
srcs_miext_damage,
|
srcs_miext_damage,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -6,7 +6,7 @@ srcs_miext_rootless = [
|
||||||
'rootlessWindow.c',
|
'rootlessWindow.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_miext_rootless = static_library('libxserver_miext_rootless',
|
libxserver_miext_rootless = static_library('xserver_miext_rootless',
|
||||||
srcs_miext_rootless,
|
srcs_miext_rootless,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -29,7 +29,7 @@ hdrs_miext_shadow = [
|
||||||
'shadow.h',
|
'shadow.h',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_miext_shadow = static_library('libxserver_miext_shadow',
|
libxserver_miext_shadow = static_library('xserver_miext_shadow',
|
||||||
srcs_miext_shadow,
|
srcs_miext_shadow,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -14,7 +14,7 @@ if build_dri3
|
||||||
srcs_miext_sync += 'misyncshm.c'
|
srcs_miext_sync += 'misyncshm.c'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libxserver_miext_sync = static_library('libxserver_miext_sync',
|
libxserver_miext_sync = static_library('xserver_miext_sync',
|
||||||
srcs_miext_sync,
|
srcs_miext_sync,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
|
|
4
os/log.c
4
os/log.c
|
@ -410,6 +410,10 @@ vpnprintf(char *string, int size_in, const char *f, va_list args)
|
||||||
|
|
||||||
f_idx++;
|
f_idx++;
|
||||||
|
|
||||||
|
/* silently ignore reverse justification */
|
||||||
|
if (f[f_idx] == '-')
|
||||||
|
f_idx++;
|
||||||
|
|
||||||
/* silently swallow minimum field width */
|
/* silently swallow minimum field width */
|
||||||
if (f[f_idx] == '*') {
|
if (f[f_idx] == '*') {
|
||||||
f_idx++;
|
f_idx++;
|
||||||
|
|
|
@ -79,7 +79,7 @@ endif
|
||||||
|
|
||||||
libxlibc = []
|
libxlibc = []
|
||||||
if srcs_libc.length() > 0
|
if srcs_libc.length() > 0
|
||||||
libxlibc = static_library('libxlibc',
|
libxlibc = static_library('xlibc',
|
||||||
srcs_libc,
|
srcs_libc,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
|
@ -92,7 +92,7 @@ if enable_input_thread
|
||||||
os_dep += cc.find_library('pthread')
|
os_dep += cc.find_library('pthread')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libxserver_os = static_library('libxserver_os',
|
libxserver_os = static_library('xserver_os',
|
||||||
srcs_os,
|
srcs_os,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
|
|
|
@ -15,7 +15,7 @@ hdrs_present = [
|
||||||
'present.h',
|
'present.h',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_present = static_library('libxserver_present',
|
libxserver_present = static_library('xserver_present',
|
||||||
srcs_present,
|
srcs_present,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: [
|
dependencies: [
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
libxserver_pseudoramix = static_library('libxserver_pseudoramiX',
|
libxserver_pseudoramix = static_library('xserver_pseudoramiX',
|
||||||
'pseudoramiX.c',
|
'pseudoramiX.c',
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -25,7 +25,7 @@ if build_xinerama
|
||||||
srcs_randr += 'rrxinerama.c'
|
srcs_randr += 'rrxinerama.c'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libxserver_randr = static_library('libxserver_randr',
|
libxserver_randr = static_library('xserver_randr',
|
||||||
srcs_randr,
|
srcs_randr,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -3,7 +3,7 @@ srcs_record = [
|
||||||
'set.c',
|
'set.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_record = static_library('libxserver_record',
|
libxserver_record = static_library('xserver_record',
|
||||||
srcs_record,
|
srcs_record,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -19,7 +19,7 @@ hdrs_render = [
|
||||||
'picturestr.h',
|
'picturestr.h',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_render = static_library('libxserver_render',
|
libxserver_render = static_library('xserver_render',
|
||||||
srcs_render,
|
srcs_render,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -7,7 +7,7 @@ srcs_xfixes = [
|
||||||
'xfixes.c',
|
'xfixes.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_xfixes = static_library('libxserver_xfixes',
|
libxserver_xfixes = static_library('xserver_xfixes',
|
||||||
srcs_xfixes,
|
srcs_xfixes,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
|
@ -23,7 +23,7 @@ srcs_xkb = [
|
||||||
'XKBMAlloc.c',
|
'XKBMAlloc.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_xkb = static_library('libxserver_xkb',
|
libxserver_xkb = static_library('xserver_xkb',
|
||||||
srcs_xkb,
|
srcs_xkb,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
@ -35,7 +35,7 @@ srcs_xkb_stubs = [
|
||||||
'ddxVT.c',
|
'ddxVT.c',
|
||||||
]
|
]
|
||||||
|
|
||||||
libxserver_xkb_stubs = static_library('libxserver_xkb_stubs',
|
libxserver_xkb_stubs = static_library('xserver_xkb_stubs',
|
||||||
srcs_xkb_stubs,
|
srcs_xkb_stubs,
|
||||||
include_directories: inc,
|
include_directories: inc,
|
||||||
dependencies: common_dep,
|
dependencies: common_dep,
|
||||||
|
|
Loading…
Reference in New Issue