aboutsummaryrefslogtreecommitdiff
path: root/xorg-server
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2014-08-11 21:14:48 +0200
committermarha <marha@users.sourceforge.net>2014-08-11 21:14:48 +0200
commitfdbedba4d50e1b28b0249c83ba11c029f096e400 (patch)
treea80ccb6275fd99644c79c67856e9c1bf1b323d62 /xorg-server
parentb33b8d8ae86876b50df96881b96074b3fe177cce (diff)
downloadvcxsrv-fdbedba4d50e1b28b0249c83ba11c029f096e400.tar.gz
vcxsrv-fdbedba4d50e1b28b0249c83ba11c029f096e400.tar.bz2
vcxsrv-fdbedba4d50e1b28b0249c83ba11c029f096e400.zip
fontconfig libX11 libxcb libxcb/xcb-proto mesa xserver xkeyboard-config git update 11 Aug 2014
xserver commit 3714f5401690b288045090c4bcd9cb01c6e4860e libxcb commit 966fba6ba4838949d0727dfa45eeb9392d1f85d9 libxcb/xcb-proto commit 4b384d2a015c50d0e93dcacda4b8260a3fd37640 xkeyboard-config commit 651a00ab656a1754b9183a383970a735209bbb50 libX11 commit 368a6401c6a3275d3497fec38a3dcbc38cd9df60 libXdmcp commit fe8eab93e9bcdbe8bb8052434bb5e676e3a0ee8f libXext commit efdcbb7634501e1117d422636a0a75d7ea84b16b libfontenc commit 0037a42107b952c9d903719615747e760e4e7247 libXinerama commit edd95182b26eb5d576d4878c559e0f17dddaa909 libXau commit 1e4635be11154dd8262f37b379511bd627defa2a xkbcomp commit d4e02a09258063c6d024c3ccd42d6b22212e6e18 pixman commit 6d2cf40166d81bfc63108504c8022dc4fec37ff5 xextproto commit 66afec3f49e8eb0d4c2e9af7088fc3116d4bafd7 randrproto commit a4a6694c059d74247c16527eef4a0ec9f56bbef6 glproto commit f84853d97d5749308992412a215fa518b6536eb3 mkfontscale commit 47908fd7a0d061fdcd21e3498da4e223ca9136d9 xwininfo commit 017b3736489985999d8dcf4d9e473e1fd6dd3647 libXft commit 214f9b5306d833e2787c75fe41dfdc9228fcb738 libXmu commit 22d9c590901e121936f50dee97dc60c4f7defb63 libxtrans commit a57a7f62242e1ea972b81414741729bf3dbae0a4 fontconfig commit 841753a93f0e5698663b7931b8456e7b96259f54 mesa commit f24be7340162c6a831b392d46d6637e9656e7a8a
Diffstat (limited to 'xorg-server')
-rw-r--r--xorg-server/Xext/saver.c16
-rw-r--r--xorg-server/Xext/xvdisp.c98
-rw-r--r--xorg-server/Xext/xvdix.h31
-rw-r--r--xorg-server/Xext/xvmain.c144
-rw-r--r--xorg-server/dix/devices.c2
-rw-r--r--xorg-server/dix/dispatch.c4
-rw-r--r--xorg-server/doc/Xserver-spec.xml6
-rw-r--r--xorg-server/dri3/dri3.h2
-rw-r--r--xorg-server/glamor/glamor_egl.c1
-rw-r--r--xorg-server/glamor/glamor_eglmodule.c1
-rw-r--r--xorg-server/glamor/glamor_priv.h1
-rw-r--r--xorg-server/glamor/glamor_xv.c13
-rw-r--r--xorg-server/hw/kdrive/Xkdrive.man7
-rw-r--r--xorg-server/hw/kdrive/src/kxv.c270
-rw-r--r--xorg-server/hw/kdrive/src/kxv.h16
-rw-r--r--xorg-server/hw/xfree86/common/compiler.h659
-rw-r--r--xorg-server/hw/xfree86/common/xf86.h8
-rw-r--r--xorg-server/hw/xfree86/common/xf86Cursor.c19
-rw-r--r--xorg-server/hw/xfree86/common/xf86Events.c1
-rw-r--r--xorg-server/hw/xfree86/common/xf86Init.c2
-rw-r--r--xorg-server/hw/xfree86/common/xf86RandR.c32
-rw-r--r--xorg-server/hw/xfree86/common/xf86pciBus.c39
-rw-r--r--xorg-server/hw/xfree86/common/xf86platformBus.c7
-rw-r--r--xorg-server/hw/xfree86/common/xf86xv.c237
-rw-r--r--xorg-server/hw/xfree86/common/xf86xv.h2
-rw-r--r--xorg-server/hw/xfree86/common/xf86xvpriv.h1
-rw-r--r--xorg-server/hw/xfree86/doc/ddxDesign.xml35
-rw-r--r--xorg-server/hw/xfree86/dri/dri.c73
-rw-r--r--xorg-server/hw/xfree86/dri/dri.h8
-rw-r--r--xorg-server/hw/xfree86/int10/generic.c36
-rw-r--r--xorg-server/hw/xfree86/loader/loader.c1
-rw-r--r--xorg-server/hw/xfree86/modes/xf86Rotate.c3
-rw-r--r--xorg-server/hw/xfree86/os-support/bsd/alpha_video.c12
-rw-r--r--xorg-server/hw/xfree86/os-support/bsd/arm_video.c139
-rw-r--r--xorg-server/hw/xfree86/os-support/bsd/bsd_ev56.c24
-rw-r--r--xorg-server/hw/xfree86/os-support/bus/xf86Pci.h21
-rw-r--r--xorg-server/hw/xfree86/os-support/linux/lnx_ev56.c24
-rw-r--r--xorg-server/hw/xfree86/os-support/linux/lnx_video.c12
-rw-r--r--xorg-server/hw/xfree86/os-support/xf86OSpriv.h2
-rw-r--r--xorg-server/hw/xfree86/os-support/xf86_OSlib.h4
-rw-r--r--xorg-server/hw/xfree86/ramdac/xf86RamDacCmap.c1
-rw-r--r--xorg-server/hw/xfree86/vgahw/Makefile.am2
-rw-r--r--xorg-server/hw/xfree86/vgahw/vgaCmap.c276
-rw-r--r--xorg-server/hw/xquartz/xpr/dri.c51
-rw-r--r--xorg-server/hw/xquartz/xpr/dri.h8
-rw-r--r--xorg-server/hw/xwayland/xwayland.h1
-rw-r--r--xorg-server/include/os.h40
-rw-r--r--xorg-server/include/servermd.h5
-rw-r--r--xorg-server/include/xorg-server.h.in7
-rw-r--r--xorg-server/mi/mi.h3
-rw-r--r--xorg-server/mi/micoord.h20
-rw-r--r--xorg-server/mi/miwindow.c14
-rw-r--r--xorg-server/miext/shadow/shadow.c54
-rw-r--r--xorg-server/miext/shadow/shadow.h6
-rw-r--r--xorg-server/os/access.c27
-rw-r--r--xorg-server/os/utils.c48
-rw-r--r--xorg-server/present/present.c21
-rw-r--r--xorg-server/present/present_priv.h2
-rw-r--r--xorg-server/present/present_screen.c1
-rw-r--r--xorg-server/randr/rrpointer.c11
-rw-r--r--xorg-server/render/picture.c81
-rw-r--r--xorg-server/render/picturestr.h3
-rw-r--r--xorg-server/xkb/xkbEvents.c9
-rw-r--r--xorg-server/xkeyboard-config/rules/base.extras.xml.in15
-rw-r--r--xorg-server/xkeyboard-config/symbols/cm125
-rw-r--r--xorg-server/xkeyboard-config/symbols/md6
66 files changed, 440 insertions, 2410 deletions
diff --git a/xorg-server/Xext/saver.c b/xorg-server/Xext/saver.c
index 8e92fdf2f..2c14ea00e 100644
--- a/xorg-server/Xext/saver.c
+++ b/xorg-server/Xext/saver.c
@@ -467,9 +467,6 @@ CreateSaverWindow(ScreenPtr pScreen)
WindowPtr pWin;
int result;
unsigned long mask;
- Colormap *installedMaps;
- int numInstalled;
- int i;
Colormap wantMap;
ColormapPtr pCmap;
@@ -545,18 +542,7 @@ CreateSaverWindow(ScreenPtr pScreen)
/* check and install our own colormap if it isn't installed now */
wantMap = wColormap(pWin);
- if (wantMap == None)
- return TRUE;
- installedMaps = malloc(pScreen->maxInstalledCmaps * sizeof(Colormap));
- numInstalled = (*pWin->drawable.pScreen->ListInstalledColormaps)
- (pScreen, installedMaps);
- for (i = 0; i < numInstalled; i++)
- if (installedMaps[i] == wantMap)
- break;
-
- free((char *) installedMaps);
-
- if (i < numInstalled)
+ if (wantMap == None || IsMapInstalled(wantMap, pWin))
return TRUE;
result = dixLookupResourceByType((void **) &pCmap, wantMap, RT_COLORMAP,
diff --git a/xorg-server/Xext/xvdisp.c b/xorg-server/Xext/xvdisp.c
index f2d49a2b8..0bdfed370 100644
--- a/xorg-server/Xext/xvdisp.c
+++ b/xorg-server/Xext/xvdisp.c
@@ -297,9 +297,6 @@ SWriteListImageFormatsReply(ClientPtr client, xvListImageFormatsReply * rep)
if ((_c)->swapped) SWriteImageFormatInfo(_c, _d); \
else WriteToClient(_c, sz_xvImageFormatInfo, _d)
-#define _AllocatePort(_i,_p) \
- ((_p)->id != _i) ? (* (_p)->pAdaptor->ddAllocatePort)(_i,_p,&_p) : Success
-
static int
ProcXvQueryExtension(ClientPtr client)
{
@@ -356,8 +353,6 @@ ProcXvQueryAdaptors(ClientPtr client)
return Success;
}
- (*pxvs->ddQueryAdaptors) (pScreen, &pxvs->pAdaptors, &pxvs->nAdaptors);
-
rep = (xvQueryAdaptorsReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
@@ -422,18 +417,12 @@ ProcXvQueryEncodings(ClientPtr client)
XvPortPtr pPort;
int ne;
XvEncodingPtr pe;
- int status;
REQUEST(xvQueryEncodingsReq);
REQUEST_SIZE_MATCH(xvQueryEncodingsReq);
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
rep = (xvQueryEncodingsReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
@@ -485,11 +474,6 @@ ProcXvPutVideo(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
if (!(pPort->pAdaptor->type & XvInputMask) ||
!(pPort->pAdaptor->type & XvVideoMask)) {
client->errorValue = stuff->port;
@@ -520,11 +504,6 @@ ProcXvPutStill(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
if (!(pPort->pAdaptor->type & XvInputMask) ||
!(pPort->pAdaptor->type & XvStillMask)) {
client->errorValue = stuff->port;
@@ -555,11 +534,6 @@ ProcXvGetVideo(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixReadAccess);
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
if (!(pPort->pAdaptor->type & XvOutputMask) ||
!(pPort->pAdaptor->type & XvVideoMask)) {
client->errorValue = stuff->port;
@@ -590,11 +564,6 @@ ProcXvGetStill(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixReadAccess);
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
if (!(pPort->pAdaptor->type & XvOutputMask) ||
!(pPort->pAdaptor->type & XvStillMask)) {
client->errorValue = stuff->port;
@@ -631,7 +600,6 @@ ProcXvSelectVideoNotify(ClientPtr client)
static int
ProcXvSelectPortNotify(ClientPtr client)
{
- int status;
XvPortPtr pPort;
REQUEST(xvSelectPortNotifyReq);
@@ -639,11 +607,6 @@ ProcXvSelectPortNotify(ClientPtr client)
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
return XvdiSelectPortNotify(client, pPort, stuff->onoff);
}
@@ -659,11 +622,6 @@ ProcXvGrabPort(ClientPtr client)
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
status = XvdiGrabPort(client, pPort, stuff->time, &result);
if (status != Success) {
@@ -684,7 +642,6 @@ ProcXvGrabPort(ClientPtr client)
static int
ProcXvUngrabPort(ClientPtr client)
{
- int status;
XvPortPtr pPort;
REQUEST(xvGrabPortReq);
@@ -692,18 +649,13 @@ ProcXvUngrabPort(ClientPtr client)
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
return XvdiUngrabPort(client, pPort, stuff->time);
}
static int
ProcXvStopVideo(ClientPtr client)
{
- int status, ret;
+ int ret;
DrawablePtr pDraw;
XvPortPtr pPort;
@@ -712,11 +664,6 @@ ProcXvStopVideo(ClientPtr client)
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
ret = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixWriteAccess);
if (ret != Success)
return ret;
@@ -735,11 +682,6 @@ ProcXvSetPortAttribute(ClientPtr client)
VALIDATE_XV_PORT(stuff->port, pPort, DixSetAttrAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
if (!ValidAtom(stuff->attribute)) {
client->errorValue = stuff->attribute;
return BadAtom;
@@ -769,11 +711,6 @@ ProcXvGetPortAttribute(ClientPtr client)
VALIDATE_XV_PORT(stuff->port, pPort, DixGetAttrAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
if (!ValidAtom(stuff->attribute)) {
client->errorValue = stuff->attribute;
return BadAtom;
@@ -800,7 +737,6 @@ ProcXvGetPortAttribute(ClientPtr client)
static int
ProcXvQueryBestSize(ClientPtr client)
{
- int status;
unsigned int actual_width, actual_height;
XvPortPtr pPort;
xvQueryBestSizeReply rep;
@@ -810,12 +746,7 @@ ProcXvQueryBestSize(ClientPtr client)
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
- (*pPort->pAdaptor->ddQueryBestSize) (client, pPort, stuff->motion,
+ (*pPort->pAdaptor->ddQueryBestSize) (pPort, stuff->motion,
stuff->vid_w, stuff->vid_h,
stuff->drw_w, stuff->drw_h,
&actual_width, &actual_height);
@@ -836,7 +767,7 @@ ProcXvQueryBestSize(ClientPtr client)
static int
ProcXvQueryPortAttributes(ClientPtr client)
{
- int status, size, i;
+ int size, i;
XvPortPtr pPort;
XvAttributePtr pAtt;
xvQueryPortAttributesReply rep;
@@ -847,11 +778,6 @@ ProcXvQueryPortAttributes(ClientPtr client)
VALIDATE_XV_PORT(stuff->port, pPort, DixGetAttrAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
rep = (xvQueryPortAttributesReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
@@ -902,11 +828,6 @@ ProcXvPutImage(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
if (!(pPort->pAdaptor->type & XvImageMask) ||
!(pPort->pAdaptor->type & XvInputMask)) {
client->errorValue = stuff->port;
@@ -930,8 +851,7 @@ ProcXvPutImage(ClientPtr client)
width = stuff->width;
height = stuff->height;
- size = (*pPort->pAdaptor->ddQueryImageAttributes) (client,
- pPort, pImage, &width,
+ size = (*pPort->pAdaptor->ddQueryImageAttributes) (pPort, pImage, &width,
&height, NULL, NULL);
size += sizeof(xvPutImageReq);
size = bytes_to_int32(size);
@@ -968,11 +888,6 @@ ProcXvShmPutImage(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
VALIDATE_XV_PORT(stuff->port, pPort, DixReadAccess);
- if ((status = _AllocatePort(stuff->port, pPort)) != Success) {
- client->errorValue = stuff->port;
- return status;
- }
-
if (!(pPort->pAdaptor->type & XvImageMask) ||
!(pPort->pAdaptor->type & XvInputMask)) {
client->errorValue = stuff->port;
@@ -1001,8 +916,7 @@ ProcXvShmPutImage(ClientPtr client)
width = stuff->width;
height = stuff->height;
- size_needed = (*pPort->pAdaptor->ddQueryImageAttributes) (client,
- pPort, pImage,
+ size_needed = (*pPort->pAdaptor->ddQueryImageAttributes) (pPort, pImage,
&width, &height,
NULL, NULL);
if ((size_needed + stuff->offset) > shmdesc->size)
@@ -1086,7 +1000,7 @@ ProcXvQueryImageAttributes(ClientPtr client)
width = stuff->width;
height = stuff->height;
- size = (*pPort->pAdaptor->ddQueryImageAttributes) (client, pPort, pImage,
+ size = (*pPort->pAdaptor->ddQueryImageAttributes) (pPort, pImage,
&width, &height, offsets,
pitches);
diff --git a/xorg-server/Xext/xvdix.h b/xorg-server/Xext/xvdix.h
index bb08cf4c7..e67a3c766 100644
--- a/xorg-server/Xext/xvdix.h
+++ b/xorg-server/Xext/xvdix.h
@@ -157,32 +157,29 @@ typedef struct {
int nPorts;
struct _XvPortRec *pPorts;
ScreenPtr pScreen;
- int (*ddAllocatePort) (unsigned long, struct _XvPortRec *,
- struct _XvPortRec **);
- int (*ddFreePort) (struct _XvPortRec *);
- int (*ddPutVideo) (ClientPtr, DrawablePtr, struct _XvPortRec *, GCPtr,
+ int (*ddPutVideo) (DrawablePtr, struct _XvPortRec *, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
- int (*ddPutStill) (ClientPtr, DrawablePtr, struct _XvPortRec *, GCPtr,
+ int (*ddPutStill) (DrawablePtr, struct _XvPortRec *, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
- int (*ddGetVideo) (ClientPtr, DrawablePtr, struct _XvPortRec *, GCPtr,
+ int (*ddGetVideo) (DrawablePtr, struct _XvPortRec *, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
- int (*ddGetStill) (ClientPtr, DrawablePtr, struct _XvPortRec *, GCPtr,
+ int (*ddGetStill) (DrawablePtr, struct _XvPortRec *, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
- int (*ddStopVideo) (ClientPtr, struct _XvPortRec *, DrawablePtr);
- int (*ddSetPortAttribute) (ClientPtr, struct _XvPortRec *, Atom, INT32);
- int (*ddGetPortAttribute) (ClientPtr, struct _XvPortRec *, Atom, INT32 *);
- int (*ddQueryBestSize) (ClientPtr, struct _XvPortRec *, CARD8,
+ int (*ddStopVideo) (struct _XvPortRec *, DrawablePtr);
+ int (*ddSetPortAttribute) (struct _XvPortRec *, Atom, INT32);
+ int (*ddGetPortAttribute) (struct _XvPortRec *, Atom, INT32 *);
+ int (*ddQueryBestSize) (struct _XvPortRec *, CARD8,
CARD16, CARD16, CARD16, CARD16,
unsigned int *, unsigned int *);
- int (*ddPutImage) (ClientPtr, DrawablePtr, struct _XvPortRec *, GCPtr,
+ int (*ddPutImage) (DrawablePtr, struct _XvPortRec *, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16,
XvImagePtr, unsigned char *, Bool, CARD16, CARD16);
- int (*ddQueryImageAttributes) (ClientPtr, struct _XvPortRec *, XvImagePtr,
+ int (*ddQueryImageAttributes) (struct _XvPortRec *, XvImagePtr,
CARD16 *, CARD16 *, int *, int *);
DevUnion devPriv;
} XvAdaptorRec, *XvAdaptorPtr;
@@ -213,9 +210,6 @@ typedef struct {
DestroyWindowProcPtr DestroyWindow;
DestroyPixmapProcPtr DestroyPixmap;
CloseScreenProcPtr CloseScreen;
- Bool (*ddCloseScreen) (ScreenPtr);
- int (*ddQueryAdaptors) (ScreenPtr, XvAdaptorPtr *, int *);
- DevUnion devPriv;
} XvScreenRec, *XvScreenPtr;
#define SCREEN_PROLOGUE(pScreen, field) ((pScreen)->field = ((XvScreenPtr) \
@@ -235,8 +229,10 @@ extern _X_EXPORT int SProcXvDispatch(ClientPtr);
extern _X_EXPORT int XvScreenInit(ScreenPtr);
extern _X_EXPORT DevPrivateKey XvGetScreenKey(void);
extern _X_EXPORT unsigned long XvGetRTPort(void);
+extern _X_EXPORT void XvFreeAdaptor(XvAdaptorPtr pAdaptor);
+extern void _X_EXPORT XvFillColorKey(DrawablePtr pDraw, CARD32 key,
+ RegionPtr region);
extern _X_EXPORT int XvdiSendPortNotify(XvPortPtr, Atom, INT32);
-extern _X_EXPORT int XvdiVideoStopped(XvPortPtr, int);
extern _X_EXPORT int XvdiPutVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
@@ -260,7 +256,6 @@ extern _X_EXPORT int XvdiSelectPortNotify(ClientPtr, XvPortPtr, BOOL);
extern _X_EXPORT int XvdiSetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32);
extern _X_EXPORT int XvdiGetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32 *);
extern _X_EXPORT int XvdiStopVideo(ClientPtr, XvPortPtr, DrawablePtr);
-extern _X_EXPORT int XvdiPreemptVideo(ClientPtr, XvPortPtr, DrawablePtr);
extern _X_EXPORT int XvdiMatchPort(XvPortPtr, DrawablePtr);
extern _X_EXPORT int XvdiGrabPort(ClientPtr, XvPortPtr, Time, int *);
extern _X_EXPORT int XvdiUngrabPort(ClientPtr, XvPortPtr, Time);
diff --git a/xorg-server/Xext/xvmain.c b/xorg-server/Xext/xvmain.c
index 00b5179bd..bc176c852 100644
--- a/xorg-server/Xext/xvmain.c
+++ b/xorg-server/Xext/xvmain.c
@@ -302,8 +302,6 @@ XvCloseScreen(ScreenPtr pScreen)
pScreen->DestroyWindow = pxvs->DestroyWindow;
pScreen->CloseScreen = pxvs->CloseScreen;
- (*pxvs->ddCloseScreen) (pScreen);
-
free(pxvs);
dixSetPrivate(&pScreen->devPrivates, XvScreenKey, NULL);
@@ -358,7 +356,7 @@ XvDestroyPixmap(PixmapPtr pPix)
if (pp->pDraw == (DrawablePtr) pPix) {
XvdiSendVideoNotify(pp, pp->pDraw, XvPreempted);
- (void) (*pp->pAdaptor->ddStopVideo) (NULL, pp, pp->pDraw);
+ (void) (*pp->pAdaptor->ddStopVideo) (pp, pp->pDraw);
pp->pDraw = NULL;
pp->client = NULL;
@@ -406,7 +404,7 @@ XvDestroyWindow(WindowPtr pWin)
if (pp->pDraw == (DrawablePtr) pWin) {
XvdiSendVideoNotify(pp, pp->pDraw, XvPreempted);
- (void) (*pp->pAdaptor->ddStopVideo) (NULL, pp, pp->pDraw);
+ (void) (*pp->pAdaptor->ddStopVideo) (pp, pp->pDraw);
pp->pDraw = NULL;
pp->client = NULL;
@@ -425,34 +423,10 @@ XvDestroyWindow(WindowPtr pWin)
}
-/* The XvdiVideoStopped procedure is a hook for the device dependent layer.
- It provides a way for the dd layer to inform the di layer that video has
- stopped in a port for reasons that the di layer had no control over; note
- that it doesn't call back into the dd layer */
-
-int
-XvdiVideoStopped(XvPortPtr pPort, int reason)
-{
-
- /* IF PORT ISN'T ACTIVE THEN WE'RE DONE */
-
- if (!pPort->pDraw)
- return Success;
-
- XvdiSendVideoNotify(pPort, pPort->pDraw, reason);
-
- pPort->pDraw = NULL;
- pPort->client = NULL;
- pPort->time = currentTime;
-
- return Success;
-
-}
-
static int
XvdiDestroyPort(void *pPort, XID id)
{
- return (*((XvPortPtr) pPort)->pAdaptor->ddFreePort) (pPort);
+ return Success;
}
static int
@@ -592,7 +566,7 @@ XvdiPutVideo(ClientPtr client,
XvdiSendVideoNotify(pPort, pPort->pDraw, XvPreempted);
}
- (void) (*pPort->pAdaptor->ddPutVideo) (client, pDraw, pPort, pGC,
+ (void) (*pPort->pAdaptor->ddPutVideo) (pDraw, pPort, pGC,
vid_x, vid_y, vid_w, vid_h,
drw_x, drw_y, drw_w, drw_h);
@@ -634,7 +608,7 @@ XvdiPutStill(ClientPtr client,
pPort->time = currentTime;
- status = (*pPort->pAdaptor->ddPutStill) (client, pDraw, pPort, pGC,
+ status = (*pPort->pAdaptor->ddPutStill) (pDraw, pPort, pGC,
vid_x, vid_y, vid_w, vid_h,
drw_x, drw_y, drw_w, drw_h);
@@ -670,7 +644,7 @@ XvdiPutImage(ClientPtr client,
pPort->time = currentTime;
- return (*pPort->pAdaptor->ddPutImage) (client, pDraw, pPort, pGC,
+ return (*pPort->pAdaptor->ddPutImage) (pDraw, pPort, pGC,
src_x, src_y, src_w, src_h,
drw_x, drw_y, drw_w, drw_h,
image, data, sync, width, height);
@@ -709,7 +683,7 @@ XvdiGetVideo(ClientPtr client,
XvdiSendVideoNotify(pPort, pPort->pDraw, XvPreempted);
}
- (void) (*pPort->pAdaptor->ddGetVideo) (client, pDraw, pPort, pGC,
+ (void) (*pPort->pAdaptor->ddGetVideo) (pDraw, pPort, pGC,
vid_x, vid_y, vid_w, vid_h,
drw_x, drw_y, drw_w, drw_h);
@@ -749,7 +723,7 @@ XvdiGetStill(ClientPtr client,
return Success;
}
- status = (*pPort->pAdaptor->ddGetStill) (client, pDraw, pPort, pGC,
+ status = (*pPort->pAdaptor->ddGetStill) (pDraw, pPort, pGC,
vid_x, vid_y, vid_w, vid_h,
drw_x, drw_y, drw_w, drw_h);
@@ -981,29 +955,7 @@ XvdiStopVideo(ClientPtr client, XvPortPtr pPort, DrawablePtr pDraw)
XvdiSendVideoNotify(pPort, pDraw, XvStopped);
- status = (*pPort->pAdaptor->ddStopVideo) (client, pPort, pDraw);
-
- pPort->pDraw = NULL;
- pPort->client = (ClientPtr) client;
- pPort->time = currentTime;
-
- return status;
-
-}
-
-int
-XvdiPreemptVideo(ClientPtr client, XvPortPtr pPort, DrawablePtr pDraw)
-{
- int status;
-
- /* IF PORT ISN'T ACTIVE THEN WE'RE DONE */
-
- if (!pPort->pDraw || (pPort->pDraw != pDraw))
- return Success;
-
- XvdiSendVideoNotify(pPort, pPort->pDraw, XvPreempted);
-
- status = (*pPort->pAdaptor->ddStopVideo) (client, pPort, pPort->pDraw);
+ status = (*pPort->pAdaptor->ddStopVideo) (pPort, pDraw);
pPort->pDraw = NULL;
pPort->client = (ClientPtr) client;
@@ -1046,7 +998,7 @@ XvdiSetPortAttribute(ClientPtr client,
int status;
status =
- (*pPort->pAdaptor->ddSetPortAttribute) (client, pPort, attribute,
+ (*pPort->pAdaptor->ddSetPortAttribute) (pPort, attribute,
value);
if (status == Success)
XvdiSendPortNotify(pPort, attribute, value);
@@ -1060,7 +1012,7 @@ XvdiGetPortAttribute(ClientPtr client,
{
return
- (*pPort->pAdaptor->ddGetPortAttribute) (client, pPort, attribute,
+ (*pPort->pAdaptor->ddGetPortAttribute) (pPort, attribute,
p_value);
}
@@ -1091,3 +1043,77 @@ WriteSwappedPortNotifyEvent(xvEvent * from, xvEvent * to)
cpswapl(from->u.portNotify.value, to->u.portNotify.value);
}
+
+void
+XvFreeAdaptor(XvAdaptorPtr pAdaptor)
+{
+ int i;
+
+ free(pAdaptor->name);
+ pAdaptor->name = NULL;
+
+ if (pAdaptor->pEncodings) {
+ XvEncodingPtr pEncode = pAdaptor->pEncodings;
+
+ for (i = 0; i < pAdaptor->nEncodings; i++, pEncode++)
+ free(pEncode->name);
+ free(pAdaptor->pEncodings);
+ pAdaptor->pEncodings = NULL;
+ }
+
+ free(pAdaptor->pFormats);
+ pAdaptor->pFormats = NULL;
+
+ free(pAdaptor->pPorts);
+ pAdaptor->pPorts = NULL;
+
+ if (pAdaptor->pAttributes) {
+ XvAttributePtr pAttribute = pAdaptor->pAttributes;
+
+ for (i = 0; i < pAdaptor->nAttributes; i++, pAttribute++)
+ free(pAttribute->name);
+ free(pAdaptor->pAttributes);
+ pAdaptor->pAttributes = NULL;
+ }
+
+ free(pAdaptor->pImages);
+ pAdaptor->pImages = NULL;
+
+ free(pAdaptor->devPriv.ptr);
+ pAdaptor->devPriv.ptr = NULL;
+}
+
+void
+XvFillColorKey(DrawablePtr pDraw, CARD32 key, RegionPtr region)
+{
+ ScreenPtr pScreen = pDraw->pScreen;
+ ChangeGCVal pval[2];
+ BoxPtr pbox = RegionRects(region);
+ int i, nbox = RegionNumRects(region);
+ xRectangle *rects;
+ GCPtr gc;
+
+ gc = GetScratchGC(pDraw->depth, pScreen);
+ if (!gc)
+ return;
+
+ pval[0].val = key;
+ pval[1].val = IncludeInferiors;
+ (void) ChangeGC(NullClient, gc, GCForeground | GCSubwindowMode, pval);
+ ValidateGC(pDraw, gc);
+
+ rects = malloc(nbox * sizeof(xRectangle));
+ if (rects) {
+ for (i = 0; i < nbox; i++, pbox++) {
+ rects[i].x = pbox->x1 - pDraw->x;
+ rects[i].y = pbox->y1 - pDraw->y;
+ rects[i].width = pbox->x2 - pbox->x1;
+ rects[i].height = pbox->y2 - pbox->y1;
+ }
+
+ (*gc->ops->PolyFillRect) (pDraw, gc, nbox, rects);
+
+ free(rects);
+ }
+ FreeScratchGC(gc);
+}
diff --git a/xorg-server/dix/devices.c b/xorg-server/dix/devices.c
index 7f079ffa1..5d26fae21 100644
--- a/xorg-server/dix/devices.c
+++ b/xorg-server/dix/devices.c
@@ -2257,7 +2257,7 @@ ProcBell(ClientPtr client)
for (dev = inputInfo.devices; dev; dev = dev->next) {
if ((dev == keybd ||
(!IsMaster(dev) && GetMaster(dev, MASTER_KEYBOARD) == keybd)) &&
- dev->kbdfeed && dev->kbdfeed->BellProc) {
+ ((dev->kbdfeed && dev->kbdfeed->BellProc) || dev->xkb_interest)) {
rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixBellAccess);
if (rc != Success)
diff --git a/xorg-server/dix/dispatch.c b/xorg-server/dix/dispatch.c
index 4f830f7f4..f7a08f82e 100644
--- a/xorg-server/dix/dispatch.c
+++ b/xorg-server/dix/dispatch.c
@@ -3188,13 +3188,11 @@ ProcKillClient(ClientPtr client)
rc = dixLookupClient(&killclient, stuff->id, client, DixDestroyAccess);
if (rc == Success) {
CloseDownClient(killclient);
- /* if an LBX proxy gets killed, isItTimeToYield will be set */
- if (isItTimeToYield || (client == killclient)) {
+ if (client == killclient) {
/* force yield and return Success, so that Dispatch()
* doesn't try to touch client
*/
isItTimeToYield = TRUE;
- return Success;
}
return Success;
}
diff --git a/xorg-server/doc/Xserver-spec.xml b/xorg-server/doc/Xserver-spec.xml
index cd1a9d07a..4c344194d 100644
--- a/xorg-server/doc/Xserver-spec.xml
+++ b/xorg-server/doc/Xserver-spec.xml
@@ -1217,11 +1217,9 @@ library is contained in dix/dixfonts.c
<section>
<title>Memory Management</title>
<para>
-Memory management is based on functions in the C runtime library.
-Xalloc(), Xrealloc(), and Xfree() are deprecated aliases for malloc(),
+Memory management is based on functions in the C runtime library, malloc(),
realloc(), and free(), and you should simply call the C library functions
-directly. Consult a C runtime library reference
-manual for more details.
+directly. Consult a C runtime library reference manual for more details.
</para>
<para>
Treat memory allocation carefully in your implementation. Memory
diff --git a/xorg-server/dri3/dri3.h b/xorg-server/dri3/dri3.h
index edc7fa267..7562352ff 100644
--- a/xorg-server/dri3/dri3.h
+++ b/xorg-server/dri3/dri3.h
@@ -23,8 +23,6 @@
#ifndef _DRI3_H_
#define _DRI3_H_
-#include <xorg-server.h>
-
#ifdef DRI3
#include <X11/extensions/dri3proto.h>
diff --git a/xorg-server/glamor/glamor_egl.c b/xorg-server/glamor/glamor_egl.c
index 54af2753e..182e2e8c9 100644
--- a/xorg-server/glamor/glamor_egl.c
+++ b/xorg-server/glamor/glamor_egl.c
@@ -30,7 +30,6 @@
#include "dix-config.h"
#define GLAMOR_FOR_XORG
-#include <xorg-server.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
diff --git a/xorg-server/glamor/glamor_eglmodule.c b/xorg-server/glamor/glamor_eglmodule.c
index d7e183649..dd4664b22 100644
--- a/xorg-server/glamor/glamor_eglmodule.c
+++ b/xorg-server/glamor/glamor_eglmodule.c
@@ -29,7 +29,6 @@
#include "dix-config.h"
-#include <xorg-server.h>
#include <xf86.h>
#define GLAMOR_FOR_XORG
#include <xf86Module.h>
diff --git a/xorg-server/glamor/glamor_priv.h b/xorg-server/glamor/glamor_priv.h
index 57a46873c..385c0279d 100644
--- a/xorg-server/glamor/glamor_priv.h
+++ b/xorg-server/glamor/glamor_priv.h
@@ -29,7 +29,6 @@
#include "dix-config.h"
-#include <xorg-server.h>
#include "glamor.h"
#include "xvdix.h"
diff --git a/xorg-server/glamor/glamor_xv.c b/xorg-server/glamor/glamor_xv.c
index 68a06a413..3f3e064d5 100644
--- a/xorg-server/glamor/glamor_xv.c
+++ b/xorg-server/glamor/glamor_xv.c
@@ -336,6 +336,7 @@ glamor_xv_render(glamor_port_private *port_priv)
GL_FALSE, 2 * sizeof(float), vertices);
glEnableVertexAttribArray(GLAMOR_VERTEX_POS);
+ glEnable(GL_SCISSOR_TEST);
for (i = 0; i < nBox; i++) {
float off_x = box[i].x1 - port_priv->drw_x;
float off_y = box[i].y1 - port_priv->drw_y;
@@ -356,23 +357,25 @@ glamor_xv_render(glamor_port_private *port_priv)
glamor_set_normalize_vcoords(pixmap_priv,
dst_xscale, dst_yscale,
- dstx,
+ dstx - dstw,
dsty,
dstx + dstw,
- dsty + dsth,
+ dsty + dsth * 2,
vertices);
glamor_set_normalize_tcoords(src_pixmap_priv[0],
src_xscale[0],
src_yscale[0],
- srcx,
+ srcx - srcw,
srcy,
srcx + srcw,
- srcy + srch,
+ srcy + srch * 2,
texcoords);
- glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
+ glScissor(dstx, dsty, dstw, dsth);
+ glDrawArrays(GL_TRIANGLE_FAN, 0, 3);
}
+ glDisable(GL_SCISSOR_TEST);
glDisableVertexAttribArray(GLAMOR_VERTEX_POS);
glDisableVertexAttribArray(GLAMOR_VERTEX_SOURCE);
diff --git a/xorg-server/hw/kdrive/Xkdrive.man b/xorg-server/hw/kdrive/Xkdrive.man
index b37f9f10a..c3e2089bc 100644
--- a/xorg-server/hw/kdrive/Xkdrive.man
+++ b/xorg-server/hw/kdrive/Xkdrive.man
@@ -4,10 +4,6 @@
.SH NAME
Xkdrive \- tiny X server
.SH SYNOPSIS
-.B Xvesa
-.RI [ :display ]
-.RI [ option ...]
-
.B Xfbdev
.RI [ :display ]
.RI [ option ...]
@@ -24,9 +20,6 @@ Xserver(1)), all the
.B Xkdrive
servers accept the following options:
.TP 8
-.B -card \fIpcmcia\fP
-use pcmcia card as additional screen.
-.TP 8
.B -dumb
disable hardware acceleration.
.TP 8
diff --git a/xorg-server/hw/kdrive/src/kxv.c b/xorg-server/hw/kdrive/src/kxv.c
index 60a83458c..f979e1fbd 100644
--- a/xorg-server/hw/kdrive/src/kxv.c
+++ b/xorg-server/hw/kdrive/src/kxv.c
@@ -56,46 +56,39 @@ of the copyright holder.
#include "kxv.h"
#include "fourcc.h"
-/* XvScreenRec fields */
-
-static Bool KdXVCloseScreen(ScreenPtr);
-static int KdXVQueryAdaptors(ScreenPtr, XvAdaptorPtr *, int *);
-
/* XvAdaptorRec fields */
-static int KdXVAllocatePort(unsigned long, XvPortPtr, XvPortPtr *);
-static int KdXVFreePort(XvPortPtr);
-static int KdXVPutVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+static int KdXVPutVideo(DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
-static int KdXVPutStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+static int KdXVPutStill(DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
-static int KdXVGetVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+static int KdXVGetVideo(DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
-static int KdXVGetStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+static int KdXVGetStill(DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
-static int KdXVStopVideo(ClientPtr, XvPortPtr, DrawablePtr);
-static int KdXVSetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32);
-static int KdXVGetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32 *);
-static int KdXVQueryBestSize(ClientPtr, XvPortPtr, CARD8,
+static int KdXVStopVideo(XvPortPtr, DrawablePtr);
+static int KdXVSetPortAttribute(XvPortPtr, Atom, INT32);
+static int KdXVGetPortAttribute(XvPortPtr, Atom, INT32 *);
+static int KdXVQueryBestSize(XvPortPtr, CARD8,
CARD16, CARD16, CARD16, CARD16,
unsigned int *, unsigned int *);
-static int KdXVPutImage(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+static int KdXVPutImage(DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16,
XvImagePtr, unsigned char *, Bool, CARD16, CARD16);
-static int KdXVQueryImageAttributes(ClientPtr, XvPortPtr, XvImagePtr,
+static int KdXVQueryImageAttributes(XvPortPtr, XvImagePtr,
CARD16 *, CARD16 *, int *, int *);
/* ScreenRec fields */
-static Bool KdXVCreateWindow(WindowPtr pWin);
static Bool KdXVDestroyWindow(WindowPtr pWin);
static void KdXVWindowExposures(WindowPtr pWin, RegionPtr r1, RegionPtr r2);
static void KdXVClipNotify(WindowPtr pWin, int dx, int dy);
+static Bool KdXVCloseScreen(ScreenPtr);
/* misc */
static Bool KdXVInitAdaptors(ScreenPtr, KdVideoAdaptorPtr, int);
@@ -104,6 +97,7 @@ static DevPrivateKeyRec KdXVWindowKeyRec;
#define KdXVWindowKey (&KdXVWindowKeyRec)
static DevPrivateKey KdXvScreenKey;
+static DevPrivateKeyRec KdXVScreenPrivateKey;
static unsigned long KdXVGeneration = 0;
static unsigned long PortResource = 0;
@@ -111,7 +105,7 @@ static unsigned long PortResource = 0;
dixLookupPrivate(&(pScreen)->devPrivates, KdXvScreenKey))
#define GET_KDXV_SCREEN(pScreen) \
- ((KdXVScreenPtr)(GET_XV_SCREEN(pScreen)->devPriv.ptr))
+ ((KdXVScreenPtr)(dixGetPrivate(&pScreen->devPrivates, &KdXVScreenPrivateKey)))
#define GET_KDXV_WINDOW(pWin) ((KdXVWindowPtr) \
dixLookupPrivate(&(pWin)->devPrivates, KdXVWindowKey))
@@ -132,7 +126,6 @@ Bool
KdXVScreenInit(ScreenPtr pScreen, KdVideoAdaptorPtr adaptors, int num)
{
KdXVScreenPtr ScreenPriv;
- XvScreenPtr pxvs;
/* fprintf(stderr,"KdXVScreenInit initializing %d adaptors\n",num); */
@@ -144,6 +137,8 @@ KdXVScreenInit(ScreenPtr pScreen, KdVideoAdaptorPtr adaptors, int num)
if (!dixRegisterPrivateKey(&KdXVWindowKeyRec, PRIVATE_WINDOW, 0))
return FALSE;
+ if (!dixRegisterPrivateKey(&KdXVScreenPrivateKey, PRIVATE_SCREEN, 0))
+ return FALSE;
if (Success != XvScreenInit(pScreen))
return FALSE;
@@ -151,36 +146,23 @@ KdXVScreenInit(ScreenPtr pScreen, KdVideoAdaptorPtr adaptors, int num)
KdXvScreenKey = XvGetScreenKey();
PortResource = XvGetRTPort();
- pxvs = GET_XV_SCREEN(pScreen);
-
- /* Anyone initializing the Xv layer must provide these two.
- The Xv di layer calls them without even checking if they exist! */
-
- pxvs->ddCloseScreen = KdXVCloseScreen;
- pxvs->ddQueryAdaptors = KdXVQueryAdaptors;
-
- /* The Xv di layer provides us with a private hook so that we don't
- have to allocate our own screen private. They also provide
- a CloseScreen hook so that we don't have to wrap it. I'm not
- sure that I appreciate that. */
-
ScreenPriv = malloc(sizeof(KdXVScreenRec));
- pxvs->devPriv.ptr = (void *) ScreenPriv;
+ dixSetPrivate(&pScreen->devPrivates, &KdXVScreenPrivateKey, ScreenPriv);
if (!ScreenPriv)
return FALSE;
- ScreenPriv->CreateWindow = pScreen->CreateWindow;
ScreenPriv->DestroyWindow = pScreen->DestroyWindow;
ScreenPriv->WindowExposures = pScreen->WindowExposures;
ScreenPriv->ClipNotify = pScreen->ClipNotify;
+ ScreenPriv->CloseScreen = pScreen->CloseScreen;
/* fprintf(stderr,"XV: Wrapping screen funcs\n"); */
- pScreen->CreateWindow = KdXVCreateWindow;
pScreen->DestroyWindow = KdXVDestroyWindow;
pScreen->WindowExposures = KdXVWindowExposures;
pScreen->ClipNotify = KdXVClipNotify;
+ pScreen->CloseScreen = KdXVCloseScreen;
if (!KdXVInitAdaptors(pScreen, adaptors, num))
return FALSE;
@@ -193,19 +175,6 @@ KdXVFreeAdaptor(XvAdaptorPtr pAdaptor)
{
int i;
- free(pAdaptor->name);
-
- if (pAdaptor->pEncodings) {
- XvEncodingPtr pEncode = pAdaptor->pEncodings;
-
- for (i = 0; i < pAdaptor->nEncodings; i++, pEncode++) {
- free(pEncode->name);
- }
- free(pAdaptor->pEncodings);
- }
-
- free(pAdaptor->pFormats);
-
if (pAdaptor->pPorts) {
XvPortPtr pPort = pAdaptor->pPorts;
XvPortRecPrivatePtr pPriv;
@@ -220,22 +189,9 @@ KdXVFreeAdaptor(XvAdaptorPtr pAdaptor)
free(pPriv);
}
}
- free(pAdaptor->pPorts);
}
- if (pAdaptor->nAttributes) {
- XvAttributePtr pAttribute = pAdaptor->pAttributes;
-
- for (i = 0; i < pAdaptor->nAttributes; i++, pAttribute++) {
- free(pAttribute->name);
- }
-
- free(pAdaptor->pAttributes);
- }
-
- free(pAdaptor->pImages);
-
- free(pAdaptor->devPriv.ptr);
+ XvFreeAdaptor(pAdaptor);
}
static Bool
@@ -302,8 +258,6 @@ KdXVInitAdaptors(ScreenPtr pScreen, KdVideoAdaptorPtr infoPtr, int number)
continue;
pa->pScreen = pScreen;
- pa->ddAllocatePort = KdXVAllocatePort;
- pa->ddFreePort = KdXVFreePort;
pa->ddPutVideo = KdXVPutVideo;
pa->ddPutStill = KdXVPutStill;
pa->ddGetVideo = KdXVGetVideo;
@@ -588,10 +542,6 @@ KdXVRegetVideo(XvPortRecPrivatePtr portPriv)
goto CLIP_VIDEO_BAILOUT;
}
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->GetVideo) (portPriv->screen, portPriv->pDraw,
portPriv->vid_x, portPriv->vid_y,
WinBox.x1, WinBox.y1,
@@ -668,22 +618,6 @@ KdXVReputVideo(XvPortRecPrivatePtr portPriv)
goto CLIP_VIDEO_BAILOUT;
}
- /* bailout if we have to clip but the hardware doesn't support it */
- if (portPriv->AdaptorRec->flags & VIDEO_NO_CLIPPING) {
- BoxPtr clipBox = RegionRects(&ClipRegion);
-
- if ((RegionNumRects(&ClipRegion) != 1) ||
- (clipBox->x1 != WinBox.x1) || (clipBox->x2 != WinBox.x2) ||
- (clipBox->y1 != WinBox.y1) || (clipBox->y2 != WinBox.y2)) {
- clippedAway = TRUE;
- goto CLIP_VIDEO_BAILOUT;
- }
- }
-
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->PutVideo) (portPriv->screen, portPriv->pDraw,
portPriv->vid_x, portPriv->vid_y,
WinBox.x1, WinBox.y1,
@@ -760,22 +694,6 @@ KdXVReputImage(XvPortRecPrivatePtr portPriv)
goto CLIP_VIDEO_BAILOUT;
}
- /* bailout if we have to clip but the hardware doesn't support it */
- if (portPriv->AdaptorRec->flags & VIDEO_NO_CLIPPING) {
- BoxPtr clipBox = RegionRects(&ClipRegion);
-
- if ((RegionNumRects(&ClipRegion) != 1) ||
- (clipBox->x1 != WinBox.x1) || (clipBox->x2 != WinBox.x2) ||
- (clipBox->y1 != WinBox.y1) || (clipBox->y2 != WinBox.y2)) {
- clippedAway = TRUE;
- goto CLIP_VIDEO_BAILOUT;
- }
- }
-
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret =
(*portPriv->AdaptorRec->ReputImage) (portPriv->screen, portPriv->pDraw,
WinBox.x1, WinBox.y1, &ClipRegion,
@@ -872,23 +790,6 @@ KdXVRemovePortFromWindow(WindowPtr pWin, XvPortRecPrivatePtr portPriv)
/**** ScreenRec fields ****/
static Bool
-KdXVCreateWindow(WindowPtr pWin)
-{
- ScreenPtr pScreen = pWin->drawable.pScreen;
- KdXVScreenPtr ScreenPriv = GET_KDXV_SCREEN(pScreen);
- int ret;
-
- pScreen->CreateWindow = ScreenPriv->CreateWindow;
- ret = (*pScreen->CreateWindow) (pWin);
- pScreen->CreateWindow = KdXVCreateWindow;
-
- if (ret)
- dixSetPrivate(&pWin->devPrivates, KdXVWindowKey, NULL);
-
- return ret;
-}
-
-static Bool
KdXVDestroyWindow(WindowPtr pWin)
{
ScreenPtr pScreen = pWin->drawable.pScreen;
@@ -1052,10 +953,10 @@ KdXVCloseScreen(ScreenPtr pScreen)
if (!ScreenPriv)
return TRUE;
- pScreen->CreateWindow = ScreenPriv->CreateWindow;
pScreen->DestroyWindow = ScreenPriv->DestroyWindow;
pScreen->WindowExposures = ScreenPriv->WindowExposures;
pScreen->ClipNotify = ScreenPriv->ClipNotify;
+ pScreen->CloseScreen = ScreenPriv->CloseScreen;
/* fprintf(stderr,"XV: Unwrapping screen funcs\n"); */
@@ -1066,19 +967,7 @@ KdXVCloseScreen(ScreenPtr pScreen)
free(pxvs->pAdaptors);
free(ScreenPriv);
- return TRUE;
-}
-
-static int
-KdXVQueryAdaptors(ScreenPtr pScreen,
- XvAdaptorPtr * p_pAdaptors, int *p_nAdaptors)
-{
- XvScreenPtr pxvs = GET_XV_SCREEN(pScreen);
-
- *p_nAdaptors = pxvs->nAdaptors;
- *p_pAdaptors = pxvs->pAdaptors;
-
- return Success;
+ return pScreen->CloseScreen(pScreen);
}
static Bool
@@ -1139,21 +1028,7 @@ KdXVDisable(ScreenPtr pScreen)
/**** XvAdaptorRec fields ****/
static int
-KdXVAllocatePort(unsigned long port, XvPortPtr pPort, XvPortPtr * ppPort)
-{
- *ppPort = pPort;
- return Success;
-}
-
-static int
-KdXVFreePort(XvPortPtr pPort)
-{
- return Success;
-}
-
-static int
-KdXVPutVideo(ClientPtr client,
- DrawablePtr pDraw,
+KdXVPutVideo(DrawablePtr pDraw,
XvPortPtr pPort,
GCPtr pGC,
INT16 vid_x, INT16 vid_y,
@@ -1206,8 +1081,7 @@ KdXVPutVideo(ClientPtr client,
}
static int
-KdXVPutStill(ClientPtr client,
- DrawablePtr pDraw,
+KdXVPutStill(DrawablePtr pDraw,
XvPortPtr pPort,
GCPtr pGC,
INT16 vid_x, INT16 vid_y,
@@ -1263,21 +1137,6 @@ KdXVPutStill(ClientPtr client,
goto PUT_STILL_BAILOUT;
}
- if (portPriv->AdaptorRec->flags & VIDEO_NO_CLIPPING) {
- BoxPtr clipBox = RegionRects(&ClipRegion);
-
- if ((RegionNumRects(&ClipRegion) != 1) ||
- (clipBox->x1 != WinBox.x1) || (clipBox->x2 != WinBox.x2) ||
- (clipBox->y1 != WinBox.y1) || (clipBox->y2 != WinBox.y2)) {
- clippedAway = TRUE;
- goto PUT_STILL_BAILOUT;
- }
- }
-
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->PutStill) (portPriv->screen, pDraw,
vid_x, vid_y, WinBox.x1, WinBox.y1,
vid_w, vid_h, drw_w, drw_h,
@@ -1314,8 +1173,7 @@ KdXVPutStill(ClientPtr client,
}
static int
-KdXVGetVideo(ClientPtr client,
- DrawablePtr pDraw,
+KdXVGetVideo(DrawablePtr pDraw,
XvPortPtr pPort,
GCPtr pGC,
INT16 vid_x, INT16 vid_y,
@@ -1368,8 +1226,7 @@ KdXVGetVideo(ClientPtr client,
}
static int
-KdXVGetStill(ClientPtr client,
- DrawablePtr pDraw,
+KdXVGetStill(DrawablePtr pDraw,
XvPortPtr pPort,
GCPtr pGC,
INT16 vid_x, INT16 vid_y,
@@ -1410,10 +1267,6 @@ KdXVGetStill(ClientPtr client,
goto GET_STILL_BAILOUT;
}
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->GetStill) (portPriv->screen, pDraw,
vid_x, vid_y, WinBox.x1, WinBox.y1,
vid_w, vid_h, drw_w, drw_h,
@@ -1435,7 +1288,7 @@ KdXVGetStill(ClientPtr client,
}
static int
-KdXVStopVideo(ClientPtr client, XvPortPtr pPort, DrawablePtr pDraw)
+KdXVStopVideo(XvPortPtr pPort, DrawablePtr pDraw)
{
XvPortRecPrivatePtr portPriv = (XvPortRecPrivatePtr) (pPort->devPriv.ptr);
@@ -1461,8 +1314,7 @@ KdXVStopVideo(ClientPtr client, XvPortPtr pPort, DrawablePtr pDraw)
}
static int
-KdXVSetPortAttribute(ClientPtr client,
- XvPortPtr pPort, Atom attribute, INT32 value)
+KdXVSetPortAttribute(XvPortPtr pPort, Atom attribute, INT32 value)
{
XvPortRecPrivatePtr portPriv = (XvPortRecPrivatePtr) (pPort->devPriv.ptr);
@@ -1472,8 +1324,7 @@ KdXVSetPortAttribute(ClientPtr client,
}
static int
-KdXVGetPortAttribute(ClientPtr client,
- XvPortPtr pPort, Atom attribute, INT32 *p_value)
+KdXVGetPortAttribute(XvPortPtr pPort, Atom attribute, INT32 *p_value)
{
XvPortRecPrivatePtr portPriv = (XvPortRecPrivatePtr) (pPort->devPriv.ptr);
@@ -1484,8 +1335,7 @@ KdXVGetPortAttribute(ClientPtr client,
}
static int
-KdXVQueryBestSize(ClientPtr client,
- XvPortPtr pPort,
+KdXVQueryBestSize(XvPortPtr pPort,
CARD8 motion,
CARD16 vid_w, CARD16 vid_h,
CARD16 drw_w, CARD16 drw_h,
@@ -1502,8 +1352,7 @@ KdXVQueryBestSize(ClientPtr client,
}
static int
-KdXVPutImage(ClientPtr client,
- DrawablePtr pDraw,
+KdXVPutImage(DrawablePtr pDraw,
XvPortPtr pPort,
GCPtr pGC,
INT16 src_x, INT16 src_y,
@@ -1561,21 +1410,6 @@ KdXVPutImage(ClientPtr client,
goto PUT_IMAGE_BAILOUT;
}
- if (portPriv->AdaptorRec->flags & VIDEO_NO_CLIPPING) {
- BoxPtr clipBox = RegionRects(&ClipRegion);
-
- if ((RegionNumRects(&ClipRegion) != 1) ||
- (clipBox->x1 != WinBox.x1) || (clipBox->x2 != WinBox.x2) ||
- (clipBox->y1 != WinBox.y1) || (clipBox->y2 != WinBox.y2)) {
- clippedAway = TRUE;
- goto PUT_IMAGE_BAILOUT;
- }
- }
-
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->PutImage) (portPriv->screen, pDraw,
src_x, src_y, WinBox.x1, WinBox.y1,
src_w, src_h, drw_w, drw_h,
@@ -1613,8 +1447,7 @@ KdXVPutImage(ClientPtr client,
}
static int
-KdXVQueryImageAttributes(ClientPtr client,
- XvPortPtr pPort,
+KdXVQueryImageAttributes(XvPortPtr pPort,
XvImagePtr format,
CARD16 *width,
CARD16 *height, int *pitches, int *offsets)
@@ -1770,44 +1603,3 @@ KdXVCopyPlanarData(KdScreenInfo * screen, CARD8 *src, CARD8 *dst, int randr,
}
}
}
-
-void
-KXVPaintRegion(DrawablePtr pDraw, RegionPtr pRgn, Pixel fg)
-{
- GCPtr pGC;
- ChangeGCVal val[2];
- xRectangle *rects, *r;
- BoxPtr pBox = RegionRects(pRgn);
- int nBox = RegionNumRects(pRgn);
-
- rects = malloc(nBox * sizeof(xRectangle));
- if (!rects)
- goto bail0;
- r = rects;
- while (nBox--) {
- r->x = pBox->x1 - pDraw->x;
- r->y = pBox->y1 - pDraw->y;
- r->width = pBox->x2 - pBox->x1;
- r->height = pBox->y2 - pBox->y1;
- r++;
- pBox++;
- }
-
- pGC = GetScratchGC(pDraw->depth, pDraw->pScreen);
- if (!pGC)
- goto bail1;
-
- val[0].val = fg;
- val[1].val = IncludeInferiors;
- ChangeGC(NullClient, pGC, GCForeground | GCSubwindowMode, val);
-
- ValidateGC(pDraw, pGC);
-
- (*pGC->ops->PolyFillRect) (pDraw, pGC, RegionNumRects(pRgn), rects);
-
- FreeScratchGC(pGC);
- bail1:
- free(rects);
- bail0:
- ;
-}
diff --git a/xorg-server/hw/kdrive/src/kxv.h b/xorg-server/hw/kdrive/src/kxv.h
index 3a49a659f..b99729922 100644
--- a/xorg-server/hw/kdrive/src/kxv.h
+++ b/xorg-server/hw/kdrive/src/kxv.h
@@ -50,21 +50,10 @@ of the copyright holder.
#include "../../Xext/xvdix.h"
-#define VIDEO_NO_CLIPPING 0x00000001
-#define VIDEO_INVERT_CLIPLIST 0x00000002
#define VIDEO_OVERLAID_IMAGES 0x00000004
#define VIDEO_OVERLAID_STILLS 0x00000008
#define VIDEO_CLIP_TO_VIEWPORT 0x00000010
-typedef struct {
- KdScreenInfo *screen;
- int id;
- unsigned short width, height;
- int *pitches; /* bytes */
- int *offsets; /* in bytes from start of framebuffer */
- DevUnion devPrivate;
-} KdSurfaceRec, *KdSurfacePtr;
-
typedef int (*PutVideoFuncPtr) (KdScreenInfo * screen, DrawablePtr pDraw,
short vid_x, short vid_y, short drw_x,
short drw_y, short vid_w, short vid_h,
@@ -172,9 +161,6 @@ KdXVCopyPlanarData(KdScreenInfo * screen, CARD8 *src, CARD8 *dst, int randr,
int srcH, int height, int top, int left, int h, int w,
int id);
-void
- KXVPaintRegion(DrawablePtr pDraw, RegionPtr pRgn, Pixel fg);
-
KdVideoAdaptorPtr KdXVAllocateVideoAdaptorRec(KdScreenInfo * screen);
void KdXVFreeVideoAdaptorRec(KdVideoAdaptorPtr ptr);
@@ -186,10 +172,10 @@ void KdXVDisable(ScreenPtr);
/*** These are DDX layer privates ***/
typedef struct {
- CreateWindowProcPtr CreateWindow;
DestroyWindowProcPtr DestroyWindow;
ClipNotifyProcPtr ClipNotify;
WindowExposuresProcPtr WindowExposures;
+ CloseScreenProcPtr CloseScreen;
} KdXVScreenRec, *KdXVScreenPtr;
typedef struct {
diff --git a/xorg-server/hw/xfree86/common/compiler.h b/xorg-server/hw/xfree86/common/compiler.h
index 1bd8def5e..53251298a 100644
--- a/xorg-server/hw/xfree86/common/compiler.h
+++ b/xorg-server/hw/xfree86/common/compiler.h
@@ -79,8 +79,6 @@
#ifndef __inline__
#if defined(__GNUC__)
/* gcc has __inline__ */
-#elif defined(__HIGHC__)
-#define __inline__ _Inline
#else
#define __inline__ /**/
#endif
@@ -88,8 +86,6 @@
#ifndef __inline
#if defined(__GNUC__)
/* gcc has __inline */
-#elif defined(__HIGHC__)
-#define __inline _Inline
#else
#define __inline /**/
#endif
@@ -98,9 +94,10 @@
#if !defined(__GNUC__) && !defined(__FUNCTION__)
#define __FUNCTION__ __func__ /* C99 */
#endif
-#if defined(NO_INLINE) || defined(DO_PROTOTYPES)
+
+#if defined(DO_PROTOTYPES)
#if !defined(__arm__)
-#if !defined(__sparc__) && !defined(__sparc) && !defined(__arm32__) && !defined(__nds32__) \
+#if !defined(__sparc__) && !defined(__arm32__) && !defined(__nds32__) \
&& !(defined(__alpha__) && defined(linux)) \
&& !(defined(__ia64__) && defined(linux)) \
&& !(defined(__mips64) && defined(linux)) \
@@ -131,33 +128,12 @@ extern _X_EXPORT void xf86WriteMmio16Be (void *, unsigned long, unsigned int);
extern _X_EXPORT void xf86WriteMmio16Le (void *, unsigned long, unsigned int);
extern _X_EXPORT void xf86WriteMmio32Be (void *, unsigned long, unsigned int);
extern _X_EXPORT void xf86WriteMmio32Le (void *, unsigned long, unsigned int);
-extern _X_EXPORT void xf86WriteMmio8NB (void *, unsigned long, unsigned int);
-extern _X_EXPORT void xf86WriteMmio16BeNB (void *, unsigned long, unsigned int);
-extern _X_EXPORT void xf86WriteMmio16LeNB (void *, unsigned long, unsigned int);
-extern _X_EXPORT void xf86WriteMmio32BeNB (void *, unsigned long, unsigned int);
-extern _X_EXPORT void xf86WriteMmio32LeNB (void *, unsigned long, unsigned int);
#endif /* _SUNPRO_C */
#endif /* __sparc__, __arm32__, __alpha__, __nds32__ */
#endif /* __arm__ */
-#if defined(__powerpc__) && !defined(__OpenBSD__)
-extern unsigned long ldq_u(unsigned long *);
-extern unsigned long ldl_u(unsigned int *);
-extern unsigned long ldw_u(unsigned short *);
-extern void stq_u(unsigned long, unsigned long *);
-extern void stl_u(unsigned long, unsigned int *);
-extern void stw_u(unsigned long, unsigned short *);
-extern void mem_barrier(void);
-extern void write_mem_barrier(void);
-extern void stl_brx(unsigned long, volatile unsigned char *, int);
-extern void stw_brx(unsigned short, volatile unsigned char *, int);
-extern unsigned long ldl_brx(volatile unsigned char *, int);
-extern unsigned short ldw_brx(volatile unsigned char *, int);
-#endif /* __powerpc__ && !__OpenBSD */
-
#endif /* NO_INLINE || DO_PROTOTYPES */
-#ifndef NO_INLINE
#ifdef __GNUC__
#ifdef __i386__
@@ -210,14 +186,7 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
#elif defined __powerpc__
-#if defined(linux) && defined(__powerpc64__)
-#include <linux/version.h>
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
-#include <asm/memory.h>
-#endif
-#endif /* defined(linux) && defined(__powerpc64__) */
-
-#ifndef eieio /* We deal with arch-specific eieio() routines above... */
+#ifndef eieio
#define eieio() __asm__ __volatile__ ("eieio" ::: "memory")
#endif /* eieio */
#define mem_barrier() eieio()
@@ -230,7 +199,10 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
#define write_mem_barrier() /* XXX: nop for now */
#endif
#endif /* __GNUC__ */
-#endif /* NO_INLINE */
+
+#ifndef barrier
+#define barrier()
+#endif
#ifndef mem_barrier
#define mem_barrier() /* NOP */
@@ -240,133 +212,8 @@ extern unsigned short ldw_brx(volatile unsigned char *, int);
#define write_mem_barrier() /* NOP */
#endif
-#ifndef NO_INLINE
-#ifdef __GNUC__
-
-/* Define some packed structures to use with unaligned accesses */
-
-struct __una_u64 {
- uint64_t x __attribute__ ((packed));
-};
-struct __una_u32 {
- uint32_t x __attribute__ ((packed));
-};
-struct __una_u16 {
- uint16_t x __attribute__ ((packed));
-};
-
-/* Elemental unaligned loads */
-
-static __inline__ uint64_t
-ldq_u(uint64_t * p)
-{
- const struct __una_u64 *ptr = (const struct __una_u64 *) p;
-
- return ptr->x;
-}
-
-static __inline__ uint32_t
-ldl_u(uint32_t * p)
-{
- const struct __una_u32 *ptr = (const struct __una_u32 *) p;
-
- return ptr->x;
-}
-
-static __inline__ uint16_t
-ldw_u(uint16_t * p)
-{
- const struct __una_u16 *ptr = (const struct __una_u16 *) p;
-
- return ptr->x;
-}
-
-/* Elemental unaligned stores */
-
-static __inline__ void
-stq_u(uint64_t val, uint64_t * p)
-{
- struct __una_u64 *ptr = (struct __una_u64 *) p;
-
- ptr->x = val;
-}
-
-static __inline__ void
-stl_u(uint32_t val, uint32_t * p)
-{
- struct __una_u32 *ptr = (struct __una_u32 *) p;
-
- ptr->x = val;
-}
-
-static __inline__ void
-stw_u(uint16_t val, uint16_t * p)
-{
- struct __una_u16 *ptr = (struct __una_u16 *) p;
-
- ptr->x = val;
-}
-#else /* !__GNUC__ */
-
-#include <string.h> /* needed for memmove */
-
-static __inline__ uint64_t
-ldq_u(uint64_t * p)
-{
- uint64_t ret;
-
- memmove(&ret, p, sizeof(*p));
- return ret;
-}
-
-static __inline__ uint32_t
-ldl_u(uint32_t * p)
-{
- uint32_t ret;
-
- memmove(&ret, p, sizeof(*p));
- return ret;
-}
-
-static __inline__ uint16_t
-ldw_u(uint16_t * p)
-{
- uint16_t ret;
-
- memmove(&ret, p, sizeof(*p));
- return ret;
-}
-
-static __inline__ void
-stq_u(uint64_t val, uint64_t * p)
-{
- uint64_t tmp = val;
-
- memmove(p, &tmp, sizeof(*p));
-}
-
-static __inline__ void
-stl_u(uint32_t val, uint32_t * p)
-{
- uint32_t tmp = val;
-
- memmove(p, &tmp, sizeof(*p));
-}
-
-static __inline__ void
-stw_u(uint16_t val, uint16_t * p)
-{
- uint16_t tmp = val;
-
- memmove(p, &tmp, sizeof(*p));
-}
-
-#endif /* __GNUC__ */
-#endif /* NO_INLINE */
-
-#ifndef NO_INLINE
#ifdef __GNUC__
-#if (defined(linux) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)) && (defined(__alpha__))
+#if defined(__alpha__)
#ifdef linux
/* for Linux on Alpha, we use the LIBC _inx/_outx routines */
@@ -439,7 +286,7 @@ extern _X_EXPORT unsigned int inl(unsigned int port);
#include <machine/pio.h>
#endif /* __NetBSD__ */
-#elif (defined(linux) || defined(__FreeBSD__)) && defined(__amd64__)
+#elif defined(__amd64__)
#include <inttypes.h>
@@ -488,7 +335,7 @@ inl(unsigned short port)
return ret;
}
-#elif (defined(linux) || defined(sun) || defined(__OpenBSD__) || defined(__FreeBSD__)) && defined(__sparc__)
+#elif defined(__sparc__)
#ifndef ASI_PL
#define ASI_PL 0x88
@@ -671,56 +518,6 @@ xf86WriteMmio32Le(__volatile__ void *base, const unsigned long offset,
barrier();
}
-static __inline__ void
-xf86WriteMmio8NB(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- unsigned long addr = ((unsigned long) base) + offset;
-
- __asm__ __volatile__("stba %0, [%1] %2": /* No outputs */
- :"r"(val), "r"(addr), "i"(ASI_PL));
-}
-
-static __inline__ void
-xf86WriteMmio16BeNB(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- unsigned long addr = ((unsigned long) base) + offset;
-
- __asm__ __volatile__("sth %0, [%1]": /* No outputs */
- :"r"(val), "r"(addr));
-}
-
-static __inline__ void
-xf86WriteMmio16LeNB(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- unsigned long addr = ((unsigned long) base) + offset;
-
- __asm__ __volatile__("stha %0, [%1] %2": /* No outputs */
- :"r"(val), "r"(addr), "i"(ASI_PL));
-}
-
-static __inline__ void
-xf86WriteMmio32BeNB(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- unsigned long addr = ((unsigned long) base) + offset;
-
- __asm__ __volatile__("st %0, [%1]": /* No outputs */
- :"r"(val), "r"(addr));
-}
-
-static __inline__ void
-xf86WriteMmio32LeNB(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- unsigned long addr = ((unsigned long) base) + offset;
-
- __asm__ __volatile__("sta %0, [%1] %2": /* No outputs */
- :"r"(val), "r"(addr), "i"(ASI_PL));
-}
-
#elif defined(__mips__) || (defined(__arm32__) && !defined(__linux__))
#if defined(__arm32__) || defined(__mips64)
#define PORT_SIZE long
@@ -800,7 +597,7 @@ xf86WriteMmio32Be(__volatile__ void *base, const unsigned long offset,
#endif /* !linux */
#endif /* __mips__ */
-#elif (defined(linux) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__)) && defined(__powerpc__)
+#elif defined(__powerpc__)
#ifndef MAP_FAILED
#define MAP_FAILED ((void *)-1)
@@ -859,92 +656,57 @@ xf86ReadMmio32Le(__volatile__ void *base, const unsigned long offset)
}
static __inline__ void
-xf86WriteMmioNB8(__volatile__ void *base, const unsigned long offset,
- const unsigned char val)
+xf86WriteMmio8(__volatile__ void *base, const unsigned long offset,
+ const unsigned char val)
{
__asm__
__volatile__("stbx %1,%2,%3\n\t":"=m"
(*((volatile unsigned char *) base + offset))
:"r"(val), "b"(base), "r"(offset));
+ eieio();
}
static __inline__ void
-xf86WriteMmioNB16Le(__volatile__ void *base, const unsigned long offset,
- const unsigned short val)
+xf86WriteMmio16Le(__volatile__ void *base, const unsigned long offset,
+ const unsigned short val)
{
__asm__
__volatile__("sthbrx %1,%2,%3\n\t":"=m"
(*((volatile unsigned char *) base + offset))
:"r"(val), "b"(base), "r"(offset));
+ eieio();
}
static __inline__ void
-xf86WriteMmioNB16Be(__volatile__ void *base, const unsigned long offset,
- const unsigned short val)
+xf86WriteMmio16Be(__volatile__ void *base, const unsigned long offset,
+ const unsigned short val)
{
__asm__
__volatile__("sthx %1,%2,%3\n\t":"=m"
(*((volatile unsigned char *) base + offset))
:"r"(val), "b"(base), "r"(offset));
+ eieio();
}
static __inline__ void
-xf86WriteMmioNB32Le(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
+xf86WriteMmio32Le(__volatile__ void *base, const unsigned long offset,
+ const unsigned int val)
{
__asm__
__volatile__("stwbrx %1,%2,%3\n\t":"=m"
(*((volatile unsigned char *) base + offset))
:"r"(val), "b"(base), "r"(offset));
+ eieio();
}
static __inline__ void
-xf86WriteMmioNB32Be(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
+xf86WriteMmio32Be(__volatile__ void *base, const unsigned long offset,
+ const unsigned int val)
{
__asm__
__volatile__("stwx %1,%2,%3\n\t":"=m"
(*((volatile unsigned char *) base + offset))
:"r"(val), "b"(base), "r"(offset));
-}
-
-static __inline__ void
-xf86WriteMmio8(__volatile__ void *base, const unsigned long offset,
- const unsigned char val)
-{
- xf86WriteMmioNB8(base, offset, val);
- eieio();
-}
-
-static __inline__ void
-xf86WriteMmio16Le(__volatile__ void *base, const unsigned long offset,
- const unsigned short val)
-{
- xf86WriteMmioNB16Le(base, offset, val);
- eieio();
-}
-
-static __inline__ void
-xf86WriteMmio16Be(__volatile__ void *base, const unsigned long offset,
- const unsigned short val)
-{
- xf86WriteMmioNB16Be(base, offset, val);
- eieio();
-}
-
-static __inline__ void
-xf86WriteMmio32Le(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- xf86WriteMmioNB32Le(base, offset, val);
- eieio();
-}
-
-static __inline__ void
-xf86WriteMmio32Be(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- xf86WriteMmioNB32Be(base, offset, val);
eieio();
}
@@ -1030,12 +792,9 @@ xf_outl(unsigned short port, unsigned int val)
/*
* Assume all port access are aligned. We need to revise this implementation
- * if there is unaligned port access. For ldq_u, ldl_u, ldw_u, stq_u, stl_u and
- * stw_u, they are assumed unaligned.
+ * if there is unaligned port access.
*/
-#define barrier() /* no barrier */
-
#define PORT_SIZE long
static __inline__ unsigned char
@@ -1052,13 +811,6 @@ xf86WriteMmio8(__volatile__ void *base, const unsigned long offset,
barrier();
}
-static __inline__ void
-xf86WriteMmio8NB(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- *(volatile unsigned char *) ((unsigned char *) base + offset) = val;
-}
-
static __inline__ unsigned short
xf86ReadMmio16Swap(__volatile__ void *base, const unsigned long offset)
{
@@ -1097,23 +849,6 @@ xf86WriteMmio16(__volatile__ void *base, const unsigned long offset,
barrier();
}
-static __inline__ void
-xf86WriteMmio16SwapNB(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- unsigned long addr = ((unsigned long) base) + offset;
-
- __asm__ __volatile__("wsbh %0, %0;\n\t" "shi %0, [%1];\n\t": /* No outputs */
- :"r"(val), "r"(addr));
-}
-
-static __inline__ void
-xf86WriteMmio16NB(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- *(volatile unsigned short *) ((unsigned char *) base + offset) = val;
-}
-
static __inline__ unsigned int
xf86ReadMmio32Swap(__volatile__ void *base, const unsigned long offset)
{
@@ -1153,23 +888,6 @@ xf86WriteMmio32(__volatile__ void *base, const unsigned long offset,
barrier();
}
-static __inline__ void
-xf86WriteMmio32SwapNB(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- unsigned long addr = ((unsigned long) base) + offset;
-
- __asm__ __volatile__("wsbh %0, %0;\n\t" "rotri %0, %0, 16;\n\t" "swi %0, [%1];\n\t": /* No outputs */
- :"r"(val), "r"(addr));
-}
-
-static __inline__ void
-xf86WriteMmio32NB(__volatile__ void *base, const unsigned long offset,
- const unsigned int val)
-{
- *(volatile unsigned int *) ((unsigned char *) base + offset) = val;
-}
-
#if defined(NDS32_MMIO_SWAP)
static __inline__ void
outb(unsigned PORT_SIZE port, unsigned char val)
@@ -1207,50 +925,6 @@ inl(unsigned PORT_SIZE port)
return xf86ReadMmio32Swap(IOPortBase, port);
}
-static __inline__ unsigned long
-ldq_u(unsigned long *p)
-{
- unsigned long addr = (unsigned long) p;
- unsigned int ret;
-
- __asm__ __volatile__("lmw.bi %0, [%1], %0, 0;\n\t"
- "wsbh %0, %0;\n\t" "rotri %0, %0, 16;\n\t":"=r"(ret)
- :"r"(addr));
-
- return ret;
-}
-
-static __inline__ unsigned long
-ldl_u(unsigned int *p)
-{
- unsigned long addr = (unsigned long) p;
- unsigned int ret;
-
- __asm__ __volatile__("lmw.bi %0, [%1], %0, 0;\n\t"
- "wsbh %0, %0;\n\t" "rotri %0, %0, 16;\n\t":"=r"(ret)
- :"r"(addr));
-
- return ret;
-}
-
-static __inline__ void
-stq_u(unsigned long val, unsigned long *p)
-{
- unsigned long addr = (unsigned long) p;
-
- __asm__ __volatile__("wsbh %0, %0;\n\t" "rotri %0, %0, 16;\n\t" "smw.bi %0, [%1], %0, 0;\n\t": /* No outputs */
- :"r"(val), "r"(addr));
-}
-
-static __inline__ void
-stl_u(unsigned long val, unsigned int *p)
-{
- unsigned long addr = (unsigned long) p;
-
- __asm__ __volatile__("wsbh %0, %0;\n\t" "rotri %0, %0, 16;\n\t" "smw.bi %0, [%1], %0, 0;\n\t": /* No outputs */
- :"r"(val), "r"(addr));
-}
-
#else /* !NDS32_MMIO_SWAP */
static __inline__ void
outb(unsigned PORT_SIZE port, unsigned char val)
@@ -1291,124 +965,9 @@ inl(unsigned PORT_SIZE port)
return *(volatile unsigned int *) (((unsigned PORT_SIZE) (port)));
}
-static __inline__ unsigned long
-ldq_u(unsigned long *p)
-{
- unsigned long addr = (unsigned long) p;
- unsigned int ret;
-
- __asm__ __volatile__("lmw.bi %0, [%1], %0, 0;\n\t":"=r"(ret)
- :"r"(addr));
-
- return ret;
-}
-
-static __inline__ unsigned long
-ldl_u(unsigned int *p)
-{
- unsigned long addr = (unsigned long) p;
- unsigned int ret;
-
- __asm__ __volatile__("lmw.bi %0, [%1], %0, 0;\n\t":"=r"(ret)
- :"r"(addr));
-
- return ret;
-}
-
-static __inline__ void
-stq_u(unsigned long val, unsigned long *p)
-{
- unsigned long addr = (unsigned long) p;
-
- __asm__ __volatile__("smw.bi %0, [%1], %0, 0;\n\t": /* No outputs */
- :"r"(val), "r"(addr));
-}
-
-static __inline__ void
-stl_u(unsigned long val, unsigned int *p)
-{
- unsigned long addr = (unsigned long) p;
-
- __asm__ __volatile__("smw.bi %0, [%1], %0, 0;\n\t": /* No outputs */
- :"r"(val), "r"(addr));
-}
#endif /* NDS32_MMIO_SWAP */
-#if (((X_BYTE_ORDER == X_BIG_ENDIAN) && !defined(NDS32_MMIO_SWAP)) || ((X_BYTE_ORDER != X_BIG_ENDIAN) && defined(NDS32_MMIO_SWAP)))
-#define ldw_u(p) ((*(unsigned char *)(p)) << 8 | \
- (*((unsigned char *)(p)+1)))
-#define stw_u(v,p) (*(unsigned char *)(p)) = ((v) >> 8); \
- (*((unsigned char *)(p)+1)) = (v)
-#else
-#define ldw_u(p) ((*(unsigned char *)(p)) | \
- (*((unsigned char *)(p)+1)<<8))
-#define stw_u(v,p) (*(unsigned char *)(p)) = (v); \
- (*((unsigned char *)(p)+1)) = ((v) >> 8)
-#endif
-
-#define mem_barrier() /* XXX: nop for now */
-#define write_mem_barrier() /* XXX: nop for now */
-
-#else /* ix86 */
-
-#if !defined(__SUNPRO_C)
-#if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && \
- !defined(__sh__) && !defined(__hppa__) && !defined(__s390__) && \
- !defined(__m32r__) && !defined(__aarch64__) && !defined(__arc__) && \
- !defined(__xtensa__)
-#ifdef GCCUSESGAS
-
-/*
- * If gcc uses gas rather than the native assembler, the syntax of these
- * inlines has to be different. DHD
- */
-
-static __inline__ void
-outb(unsigned short port, unsigned char val)
-{
- __asm__ __volatile__("outb %0,%1"::"a"(val), "d"(port));
-}
-
-static __inline__ void
-outw(unsigned short port, unsigned short val)
-{
- __asm__ __volatile__("outw %0,%1"::"a"(val), "d"(port));
-}
-
-static __inline__ void
-outl(unsigned short port, unsigned int val)
-{
- __asm__ __volatile__("outl %0,%1"::"a"(val), "d"(port));
-}
-
-static __inline__ unsigned int
-inb(unsigned short port)
-{
- unsigned char ret;
- __asm__ __volatile__("inb %1,%0":"=a"(ret):"d"(port));
-
- return ret;
-}
-
-static __inline__ unsigned int
-inw(unsigned short port)
-{
- unsigned short ret;
- __asm__ __volatile__("inw %1,%0":"=a"(ret):"d"(port));
-
- return ret;
-}
-
-static __inline__ unsigned int
-inl(unsigned short port)
-{
- unsigned int ret;
- __asm__ __volatile__("inl %1,%0":"=a"(ret):"d"(port));
-
- return ret;
-}
-
-#else /* GCCUSESGAS */
+#elif defined(__i386__) || defined(__ia64__)
static __inline__ void
outb(unsigned short port, unsigned char val)
@@ -1455,47 +1014,7 @@ inl(unsigned short port)
return ret;
}
-#endif /* GCCUSESGAS */
-
-#else /* !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__) && !defined(__m32r__) && !defined(__arc__) */
-
-static __inline__ void
-outb(unsigned short port, unsigned char val)
-{
-}
-
-static __inline__ void
-outw(unsigned short port, unsigned short val)
-{
-}
-
-static __inline__ void
-outl(unsigned short port, unsigned int val)
-{
-}
-
-static __inline__ unsigned int
-inb(unsigned short port)
-{
- return 0;
-}
-
-static __inline__ unsigned int
-inw(unsigned short port)
-{
- return 0;
-}
-
-static __inline__ unsigned int
-inl(unsigned short port)
-{
- return 0;
-}
-
-#endif /* FAKEIT */
-#endif /* __SUNPRO_C */
-
-#endif /* ix86 */
+#endif /* arch madness */
#else /* !GNUC */
#if defined(__STDC__) && (__STDC__ == 1)
@@ -1506,18 +1025,12 @@ inl(unsigned short port)
#if !defined(__SUNPRO_C)
#include <sys/inline.h>
#endif
-#if !defined(__HIGHC__) && !defined(__SUNPRO_C) || \
- defined(__USLC__)
-#pragma asm partial_optimization outl
-#pragma asm partial_optimization outw
-#pragma asm partial_optimization outb
-#pragma asm partial_optimization inl
-#pragma asm partial_optimization inw
-#pragma asm partial_optimization inb
-#endif
#endif /* __GNUC__ */
-#endif /* NO_INLINE */
+#if !defined(MMIO_IS_BE) && \
+ (defined(SPARC_MMIO_IS_BE) || defined(PPC_MMIO_IS_BE))
+#define MMIO_IS_BE
+#endif
#ifdef __alpha__
/* entry points for Mmio memory access routines */
@@ -1538,9 +1051,6 @@ xf86ReadMmio32(void *Base, unsigned long Offset)
extern _X_EXPORT void (*xf86WriteMmio8) (int, void *, unsigned long);
extern _X_EXPORT void (*xf86WriteMmio16) (int, void *, unsigned long);
extern _X_EXPORT void (*xf86WriteMmio32) (int, void *, unsigned long);
-extern _X_EXPORT void (*xf86WriteMmioNB8) (int, void *, unsigned long);
-extern _X_EXPORT void (*xf86WriteMmioNB16) (int, void *, unsigned long);
-extern _X_EXPORT void (*xf86WriteMmioNB32) (int, void *, unsigned long);
extern _X_EXPORT void xf86SlowBCopyFromBus(unsigned char *, unsigned char *,
int);
extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
@@ -1560,84 +1070,29 @@ extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
write_mem_barrier(); \
*(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) = (val); \
} while (0)
-#define MMIO_ONB32(base, offset, val) \
- *(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) = (val)
#define MMIO_OUT8(base, offset, val) \
(*xf86WriteMmio8)((CARD8)(val), base, offset)
#define MMIO_OUT16(base, offset, val) \
(*xf86WriteMmio16)((CARD16)(val), base, offset)
-#define MMIO_ONB8(base, offset, val) \
- (*xf86WriteMmioNB8)((CARD8)(val), base, offset)
-#define MMIO_ONB16(base, offset, val) \
- (*xf86WriteMmioNB16)((CARD16)(val), base, offset)
-#define MMIO_MOVE32(base, offset, val) \
- MMIO_OUT32(base, offset, val)
-#elif defined(__powerpc__)
+#elif defined(__powerpc__) || defined(__sparc__)
/*
* we provide byteswapping and no byteswapping functions here
* with byteswapping as default,
- * drivers that don't need byteswapping should define PPC_MMIO_IS_BE
+ * drivers that don't need byteswapping should define MMIO_IS_BE
*/
#define MMIO_IN8(base, offset) xf86ReadMmio8(base, offset)
#define MMIO_OUT8(base, offset, val) \
xf86WriteMmio8(base, offset, (CARD8)(val))
-#define MMIO_ONB8(base, offset, val) \
- xf86WriteMmioNB8(base, offset, (CARD8)(val))
-#if defined(PPC_MMIO_IS_BE) /* No byteswapping */
+#if defined(MMIO_IS_BE) /* No byteswapping */
#define MMIO_IN16(base, offset) xf86ReadMmio16Be(base, offset)
#define MMIO_IN32(base, offset) xf86ReadMmio32Be(base, offset)
#define MMIO_OUT16(base, offset, val) \
xf86WriteMmio16Be(base, offset, (CARD16)(val))
#define MMIO_OUT32(base, offset, val) \
xf86WriteMmio32Be(base, offset, (CARD32)(val))
-#define MMIO_ONB16(base, offset, val) \
- xf86WriteMmioNB16Be(base, offset, (CARD16)(val))
-#define MMIO_ONB32(base, offset, val) \
- xf86WriteMmioNB32Be(base, offset, (CARD32)(val))
-#else /* byteswapping is the default */
-#define MMIO_IN16(base, offset) xf86ReadMmio16Le(base, offset)
-#define MMIO_IN32(base, offset) xf86ReadMmio32Le(base, offset)
-#define MMIO_OUT16(base, offset, val) \
- xf86WriteMmio16Le(base, offset, (CARD16)(val))
-#define MMIO_OUT32(base, offset, val) \
- xf86WriteMmio32Le(base, offset, (CARD32)(val))
-#define MMIO_ONB16(base, offset, val) \
- xf86WriteMmioNB16Le(base, offset, (CARD16)(val))
-#define MMIO_ONB32(base, offset, val) \
- xf86WriteMmioNB32Le(base, offset, (CARD32)(val))
-#endif
-
-#define MMIO_MOVE32(base, offset, val) \
- xf86WriteMmio32Be(base, offset, (CARD32)(val))
-
-#elif defined(__sparc__) || defined(sparc) || defined(__sparc)
- /*
- * Like powerpc, we provide byteswapping and no byteswapping functions
- * here with byteswapping as default, drivers that don't need byteswapping
- * should define SPARC_MMIO_IS_BE (perhaps create a generic macro so that we
- * do not need to use PPC_MMIO_IS_BE and the sparc one in all the same places
- * of drivers?).
- */
-#define MMIO_IN8(base, offset) xf86ReadMmio8(base, offset)
-#define MMIO_OUT8(base, offset, val) \
- xf86WriteMmio8(base, offset, (CARD8)(val))
-#define MMIO_ONB8(base, offset, val) \
- xf86WriteMmio8NB(base, offset, (CARD8)(val))
-
-#if defined(SPARC_MMIO_IS_BE) /* No byteswapping */
-#define MMIO_IN16(base, offset) xf86ReadMmio16Be(base, offset)
-#define MMIO_IN32(base, offset) xf86ReadMmio32Be(base, offset)
-#define MMIO_OUT16(base, offset, val) \
- xf86WriteMmio16Be(base, offset, (CARD16)(val))
-#define MMIO_OUT32(base, offset, val) \
- xf86WriteMmio32Be(base, offset, (CARD32)(val))
-#define MMIO_ONB16(base, offset, val) \
- xf86WriteMmio16BeNB(base, offset, (CARD16)(val))
-#define MMIO_ONB32(base, offset, val) \
- xf86WriteMmio32BeNB(base, offset, (CARD32)(val))
#else /* byteswapping is the default */
#define MMIO_IN16(base, offset) xf86ReadMmio16Le(base, offset)
#define MMIO_IN32(base, offset) xf86ReadMmio32Le(base, offset)
@@ -1645,15 +1100,8 @@ extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
xf86WriteMmio16Le(base, offset, (CARD16)(val))
#define MMIO_OUT32(base, offset, val) \
xf86WriteMmio32Le(base, offset, (CARD32)(val))
-#define MMIO_ONB16(base, offset, val) \
- xf86WriteMmio16LeNB(base, offset, (CARD16)(val))
-#define MMIO_ONB32(base, offset, val) \
- xf86WriteMmio32LeNB(base, offset, (CARD32)(val))
#endif
-#define MMIO_MOVE32(base, offset, val) \
- xf86WriteMmio32Be(base, offset, (CARD32)(val))
-
#elif defined(__nds32__)
/*
* we provide byteswapping and no byteswapping functions here
@@ -1664,8 +1112,6 @@ extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
#define MMIO_IN8(base, offset) xf86ReadMmio8(base, offset)
#define MMIO_OUT8(base, offset, val) \
xf86WriteMmio8(base, offset, (CARD8)(val))
-#define MMIO_ONB8(base, offset, val) \
- xf86WriteMmioNB8(base, offset, (CARD8)(val))
#if defined(NDS32_MMIO_SWAP) /* byteswapping */
#define MMIO_IN16(base, offset) xf86ReadMmio16Swap(base, offset)
@@ -1674,10 +1120,6 @@ extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
xf86WriteMmio16Swap(base, offset, (CARD16)(val))
#define MMIO_OUT32(base, offset, val) \
xf86WriteMmio32Swap(base, offset, (CARD32)(val))
-#define MMIO_ONB16(base, offset, val) \
- xf86WriteMmioNB16Swap(base, offset, (CARD16)(val))
-#define MMIO_ONB32(base, offset, val) \
- xf86WriteMmioNB32Swap(base, offset, (CARD32)(val))
#else /* no byteswapping is the default */
#define MMIO_IN16(base, offset) xf86ReadMmio16(base, offset)
#define MMIO_IN32(base, offset) xf86ReadMmio32(base, offset)
@@ -1685,30 +1127,6 @@ extern _X_EXPORT void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int);
xf86WriteMmio16(base, offset, (CARD16)(val))
#define MMIO_OUT32(base, offset, val) \
xf86WriteMmio32(base, offset, (CARD32)(val))
-#define MMIO_ONB16(base, offset, val) \
- xf86WriteMmioNB16(base, offset, (CARD16)(val))
-#define MMIO_ONB32(base, offset, val) \
- xf86WriteMmioNB32(base, offset, (CARD32)(val))
-#endif
-
-#define MMIO_MOVE32(base, offset, val) \
- xf86WriteMmio32(base, offset, (CARD32)(val))
-
-#ifdef N1213_HC /* for NDS32 N1213 hardcore */
-static __inline__ void
-nds32_flush_icache(char *addr)
-{
- __asm__ volatile ("isync %0;"
- "msync;"
- "isb;"
- "cctl %0,L1I_VA_INVAL;" "isb;"::"r" (addr):"memory");
-}
-#else
-static __inline__ void
-nds32_flush_icache(char *addr)
-{
- __asm__ volatile ("isync %0;" "isb;"::"r" (addr):"memory");
-}
#endif
#else /* !__alpha__ && !__powerpc__ && !__sparc__ */
@@ -1725,11 +1143,6 @@ nds32_flush_icache(char *addr)
*(volatile CARD16 *)(void *)(((CARD8*)(base)) + (offset)) = (val)
#define MMIO_OUT32(base, offset, val) \
*(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) = (val)
-#define MMIO_ONB8(base, offset, val) MMIO_OUT8(base, offset, val)
-#define MMIO_ONB16(base, offset, val) MMIO_OUT16(base, offset, val)
-#define MMIO_ONB32(base, offset, val) MMIO_OUT32(base, offset, val)
-
-#define MMIO_MOVE32(base, offset, val) MMIO_OUT32(base, offset, val)
#endif /* __alpha__ */
diff --git a/xorg-server/hw/xfree86/common/xf86.h b/xorg-server/hw/xfree86/common/xf86.h
index cec31354e..49ff35b86 100644
--- a/xorg-server/hw/xfree86/common/xf86.h
+++ b/xorg-server/hw/xfree86/common/xf86.h
@@ -129,14 +129,6 @@ extern _X_EXPORT ScrnInfoPtr xf86ConfigPciEntity(ScrnInfoPtr pScrn,
EntityProc enter,
EntityProc leave,
void *private);
-/* Obsolete! don't use */
-extern _X_EXPORT Bool xf86ConfigActivePciEntity(ScrnInfoPtr pScrn,
- int entityIndex,
- PciChipsets * p_chip,
- void *dummy, EntityProc init,
- EntityProc enter,
- EntityProc leave,
- void *private);
#else
#define xf86VGAarbiterInit() do {} while (0)
#define xf86VGAarbiterFini() do {} while (0)
diff --git a/xorg-server/hw/xfree86/common/xf86Cursor.c b/xorg-server/hw/xfree86/common/xf86Cursor.c
index 7d0776eaa..92c08af9e 100644
--- a/xorg-server/hw/xfree86/common/xf86Cursor.c
+++ b/xorg-server/hw/xfree86/common/xf86Cursor.c
@@ -37,8 +37,6 @@
#include "scrnintstr.h"
#include "globals.h"
-#include "compiler.h"
-
#include "xf86.h"
#include "xf86Priv.h"
#include "xf86_OSproc.h"
@@ -76,8 +74,6 @@ static miPointerScreenFuncRec xf86PointerScreenFuncs = {
static xf86ScreenLayoutRec xf86ScreenLayout[MAXSCREENS];
-static Bool HardEdges;
-
/*
* xf86InitViewport --
* Initialize paning & zooming parameters, so that a driver must only
@@ -431,16 +427,6 @@ xf86CursorOffScreen(ScreenPtr *pScreen, int *x, int *y)
}
}
-#if 0
- /* This presents problems for overlapping screens when
- HardEdges is used. Have to think about the logic more */
- if ((*x < 0) || (*x >= (*pScreen)->width) ||
- (*y < 0) || (*y >= (*pScreen)->height)) {
- /* We may have crossed more than one screen */
- xf86CursorOffScreen(pScreen, x, y);
- }
-#endif
-
return TRUE;
}
@@ -584,9 +570,6 @@ xf86InitOrigins(void)
xf86ScreenLayoutPtr pLayout;
Bool OldStyleConfig = FALSE;
- /* need to have this set up with a config file option */
- HardEdges = FALSE;
-
memset(xf86ScreenLayout, 0, MAXSCREENS * sizeof(xf86ScreenLayoutRec));
screensLeft = prevScreensLeft = (1 << xf86NumScreens) - 1;
@@ -838,7 +821,7 @@ xf86InitOrigins(void)
}
}
- if (!HardEdges && !OldStyleConfig) {
+ if (!OldStyleConfig) {
for (i = 0; i < xf86NumScreens; i++) {
pLayout = &xf86ScreenLayout[i];
pScreen = xf86Screens[i]->pScreen;
diff --git a/xorg-server/hw/xfree86/common/xf86Events.c b/xorg-server/hw/xfree86/common/xf86Events.c
index 35a673d15..16b3e2821 100644
--- a/xorg-server/hw/xfree86/common/xf86Events.c
+++ b/xorg-server/hw/xfree86/common/xf86Events.c
@@ -58,7 +58,6 @@
#include <X11/Xproto.h>
#include <X11/Xatom.h>
#include "misc.h"
-#include "compiler.h"
#include "xf86.h"
#include "xf86Priv.h"
#define XF86_OS_PRIVS
diff --git a/xorg-server/hw/xfree86/common/xf86Init.c b/xorg-server/hw/xfree86/common/xf86Init.c
index 5a45004f5..b197c1c38 100644
--- a/xorg-server/hw/xfree86/common/xf86Init.c
+++ b/xorg-server/hw/xfree86/common/xf86Init.c
@@ -56,8 +56,6 @@
#include "dbus-core.h"
#include "systemd-logind.h"
-#include "compiler.h"
-
#include "loaderProcs.h"
#ifdef XFreeXDGA
#include "dgaproc.h"
diff --git a/xorg-server/hw/xfree86/common/xf86RandR.c b/xorg-server/hw/xfree86/common/xf86RandR.c
index 2418731dc..08f656b30 100644
--- a/xorg-server/hw/xfree86/common/xf86RandR.c
+++ b/xorg-server/hw/xfree86/common/xf86RandR.c
@@ -37,7 +37,6 @@
#include "inputstr.h"
typedef struct _xf86RandRInfo {
- CreateScreenResourcesProcPtr CreateScreenResources;
CloseScreenProcPtr CloseScreen;
int virtualX;
int virtualY;
@@ -336,34 +335,6 @@ xf86RandRSetConfig(ScreenPtr pScreen,
}
/*
- * Wait until the screen is initialized before whacking the
- * sizes around; otherwise the screen pixmap will be allocated
- * at the current mode size rather than the maximum size
- */
-static Bool
-xf86RandRCreateScreenResources(ScreenPtr pScreen)
-{
- XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen);
-
-#if 0
- ScrnInfoPtr scrp = xf86ScreenToScrn(pScreen);
- DisplayModePtr mode;
-#endif
-
- pScreen->CreateScreenResources = randrp->CreateScreenResources;
- if (!(*pScreen->CreateScreenResources) (pScreen))
- return FALSE;
-
-#if 0
- mode = scrp->currentMode;
- if (mode)
- xf86RandRSetMode(pScreen, mode, TRUE);
-#endif
-
- return TRUE;
-}
-
-/*
* Reset size back to original
*/
static Bool
@@ -463,9 +434,6 @@ xf86RandRInit(ScreenPtr pScreen)
randrp->mmWidth = pScreen->mmWidth;
randrp->mmHeight = pScreen->mmHeight;
- randrp->CreateScreenResources = pScreen->CreateScreenResources;
- pScreen->CreateScreenResources = xf86RandRCreateScreenResources;
-
randrp->CloseScreen = pScreen->CloseScreen;
pScreen->CloseScreen = xf86RandRCloseScreen;
diff --git a/xorg-server/hw/xfree86/common/xf86pciBus.c b/xorg-server/hw/xfree86/common/xf86pciBus.c
index c06b04033..e86ecb9d4 100644
--- a/xorg-server/hw/xfree86/common/xf86pciBus.c
+++ b/xorg-server/hw/xfree86/common/xf86pciBus.c
@@ -1061,33 +1061,6 @@ xf86ConfigPciEntity(ScrnInfoPtr pScrn, int scrnFlag, int entityIndex,
return pScrn;
}
-/*
- * OBSOLETE ! xf86ConfigActivePciEntity() is an obsolete function.
- * It is likely to be removed. Don't use!
- */
-Bool
-xf86ConfigActivePciEntity(ScrnInfoPtr pScrn, int entityIndex,
- PciChipsets * p_chip, void *dummy, EntityProc init,
- EntityProc enter, EntityProc leave, void *private)
-{
- EntityInfoPtr pEnt = xf86GetEntityInfo(entityIndex);
-
- if (!pEnt)
- return FALSE;
-
- if (!pEnt->active || !(pEnt->location.type == BUS_PCI)) {
- free(pEnt);
- return FALSE;
- }
- xf86AddEntityToScreen(pScrn, entityIndex);
-
- free(pEnt);
- if (!xf86SetEntityFuncs(entityIndex, init, enter, leave, private))
- return FALSE;
-
- return TRUE;
-}
-
int
xf86VideoPtrToDriverList(struct pci_device *dev,
char *returnList[], int returnListMax)
@@ -1500,15 +1473,3 @@ xf86PciConfigureNewDev(void *busData, struct pci_device *pVideo,
if (*chipset < 0)
*chipset = (pVideo->vendor_id << 16) | pVideo->device_id;
}
-
-struct pci_io_handle *
-xf86MapLegacyIO(struct pci_device *dev)
-{
- return pci_legacy_open_io(dev, 0, 64 * 1024);
-}
-
-void
-xf86UnmapLegacyIO(struct pci_device *dev, struct pci_io_handle *handle)
-{
- pci_device_close_io(dev, handle);
-}
diff --git a/xorg-server/hw/xfree86/common/xf86platformBus.c b/xorg-server/hw/xfree86/common/xf86platformBus.c
index 22e4603e6..946039940 100644
--- a/xorg-server/hw/xfree86/common/xf86platformBus.c
+++ b/xorg-server/hw/xfree86/common/xf86platformBus.c
@@ -348,7 +348,7 @@ static Bool doPlatformProbe(struct xf86_platform_device *dev, DriverPtr drvp,
GDevPtr gdev, int flags, intptr_t match_data)
{
Bool foundScreen = FALSE;
- int entity, fd, major, minor;
+ int entity;
if (gdev && gdev->screen == 0 && !xf86_check_platform_slot(dev))
return FALSE;
@@ -374,10 +374,7 @@ static Bool doPlatformProbe(struct xf86_platform_device *dev, DriverPtr drvp,
if (entity != -1) {
if ((dev->flags & XF86_PDEV_SERVER_FD) && (!drvp->driverFunc ||
!drvp->driverFunc(NULL, SUPPORTS_SERVER_FDS, NULL))) {
- fd = dev->attribs->fd;
- major = dev->attribs->major;
- minor = dev->attribs->minor;
- systemd_logind_release_fd(major, minor, fd);
+ systemd_logind_release_fd(dev->attribs->major, dev->attribs->minor, dev->attribs->fd);
dev->attribs->fd = -1;
dev->flags &= ~XF86_PDEV_SERVER_FD;
}
diff --git a/xorg-server/hw/xfree86/common/xf86xv.c b/xorg-server/hw/xfree86/common/xf86xv.c
index e212a7387..d342bdecc 100644
--- a/xorg-server/hw/xfree86/common/xf86xv.c
+++ b/xorg-server/hw/xfree86/common/xf86xv.c
@@ -54,38 +54,31 @@
#include "xf86xvpriv.h"
-/* XvScreenRec fields */
-
-static Bool xf86XVCloseScreen(ScreenPtr);
-static int xf86XVQueryAdaptors(ScreenPtr, XvAdaptorPtr *, int *);
-
/* XvAdaptorRec fields */
-static int xf86XVAllocatePort(unsigned long, XvPortPtr, XvPortPtr *);
-static int xf86XVFreePort(XvPortPtr);
-static int xf86XVPutVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+static int xf86XVPutVideo(DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
-static int xf86XVPutStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+static int xf86XVPutStill(DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
-static int xf86XVGetVideo(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+static int xf86XVGetVideo(DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
-static int xf86XVGetStill(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+static int xf86XVGetStill(DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16);
-static int xf86XVStopVideo(ClientPtr, XvPortPtr, DrawablePtr);
-static int xf86XVSetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32);
-static int xf86XVGetPortAttribute(ClientPtr, XvPortPtr, Atom, INT32 *);
-static int xf86XVQueryBestSize(ClientPtr, XvPortPtr, CARD8,
+static int xf86XVStopVideo(XvPortPtr, DrawablePtr);
+static int xf86XVSetPortAttribute(XvPortPtr, Atom, INT32);
+static int xf86XVGetPortAttribute(XvPortPtr, Atom, INT32 *);
+static int xf86XVQueryBestSize(XvPortPtr, CARD8,
CARD16, CARD16, CARD16, CARD16,
unsigned int *, unsigned int *);
-static int xf86XVPutImage(ClientPtr, DrawablePtr, XvPortPtr, GCPtr,
+static int xf86XVPutImage(DrawablePtr, XvPortPtr, GCPtr,
INT16, INT16, CARD16, CARD16,
INT16, INT16, CARD16, CARD16,
XvImagePtr, unsigned char *, Bool, CARD16, CARD16);
-static int xf86XVQueryImageAttributes(ClientPtr, XvPortPtr, XvImagePtr,
+static int xf86XVQueryImageAttributes(XvPortPtr, XvImagePtr,
CARD16 *, CARD16 *, int *, int *);
/* ScreenRec fields */
@@ -95,6 +88,7 @@ static void xf86XVWindowExposures(WindowPtr pWin, RegionPtr r1, RegionPtr r2);
static void xf86XVPostValidateTree(WindowPtr pWin, WindowPtr pLayerWin,
VTKind kind);
static void xf86XVClipNotify(WindowPtr pWin, int dx, int dy);
+static Bool xf86XVCloseScreen(ScreenPtr);
#define PostValidateTreeUndefined ((PostValidateTreeProcPtr)-1)
@@ -113,7 +107,10 @@ static DevPrivateKeyRec XF86XVWindowKeyRec;
#define XF86XVWindowKey (&XF86XVWindowKeyRec)
+/* dixmain.c XvScreenPtr screen private */
DevPrivateKey XF86XvScreenKey;
+/** xf86xv.c XF86XVScreenPtr screen private */
+static DevPrivateKeyRec XF86XVScreenPrivateKey;
static unsigned long PortResource = 0;
@@ -121,7 +118,7 @@ static unsigned long PortResource = 0;
((XvScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, XF86XvScreenKey))
#define GET_XF86XV_SCREEN(pScreen) \
- ((XF86XVScreenPtr)(GET_XV_SCREEN(pScreen)->devPriv.ptr))
+ ((XF86XVScreenPtr)(dixGetPrivate(&pScreen->devPrivates, &XF86XVScreenPrivateKey)))
#define GET_XF86XV_WINDOW(pWin) \
((XF86XVWindowPtr)dixLookupPrivate(&(pWin)->devPrivates, XF86XVWindowKey))
@@ -232,7 +229,6 @@ xf86XVScreenInit(ScreenPtr pScreen, XF86VideoAdaptorPtr * adaptors, int num)
{
ScrnInfoPtr pScrn;
XF86XVScreenPtr ScreenPriv;
- XvScreenPtr pxvs;
if (num <= 0 || noXvExtension)
return FALSE;
@@ -242,26 +238,15 @@ xf86XVScreenInit(ScreenPtr pScreen, XF86VideoAdaptorPtr * adaptors, int num)
if (!dixRegisterPrivateKey(&XF86XVWindowKeyRec, PRIVATE_WINDOW, 0))
return FALSE;
+ if (!dixRegisterPrivateKey(&XF86XVScreenPrivateKey, PRIVATE_SCREEN, 0))
+ return FALSE;
XF86XvScreenKey = XvGetScreenKey();
PortResource = XvGetRTPort();
- pxvs = GET_XV_SCREEN(pScreen);
-
- /* Anyone initializing the Xv layer must provide these two.
- The Xv di layer calls them without even checking if they exist! */
-
- pxvs->ddCloseScreen = xf86XVCloseScreen;
- pxvs->ddQueryAdaptors = xf86XVQueryAdaptors;
-
- /* The Xv di layer provides us with a private hook so that we don't
- have to allocate our own screen private. They also provide
- a CloseScreen hook so that we don't have to wrap it. I'm not
- sure that I appreciate that. */
-
ScreenPriv = malloc(sizeof(XF86XVScreenRec));
- pxvs->devPriv.ptr = (void *) ScreenPriv;
+ dixSetPrivate(&pScreen->devPrivates, &XF86XVScreenPrivateKey, ScreenPriv);
if (!ScreenPriv)
return FALSE;
@@ -272,6 +257,7 @@ xf86XVScreenInit(ScreenPtr pScreen, XF86VideoAdaptorPtr * adaptors, int num)
ScreenPriv->WindowExposures = pScreen->WindowExposures;
ScreenPriv->PostValidateTree = PostValidateTreeUndefined;
ScreenPriv->ClipNotify = pScreen->ClipNotify;
+ ScreenPriv->CloseScreen = pScreen->CloseScreen;
ScreenPriv->EnterVT = pScrn->EnterVT;
ScreenPriv->LeaveVT = pScrn->LeaveVT;
ScreenPriv->AdjustFrame = pScrn->AdjustFrame;
@@ -280,6 +266,7 @@ xf86XVScreenInit(ScreenPtr pScreen, XF86VideoAdaptorPtr * adaptors, int num)
pScreen->DestroyWindow = xf86XVDestroyWindow;
pScreen->WindowExposures = xf86XVWindowExposures;
pScreen->ClipNotify = xf86XVClipNotify;
+ pScreen->CloseScreen = xf86XVCloseScreen;
pScrn->EnterVT = xf86XVEnterVT;
pScrn->LeaveVT = xf86XVLeaveVT;
if (pScrn->AdjustFrame)
@@ -297,21 +284,6 @@ xf86XVFreeAdaptor(XvAdaptorPtr pAdaptor)
{
int i;
- free(pAdaptor->name);
- pAdaptor->name = NULL;
-
- if (pAdaptor->pEncodings) {
- XvEncodingPtr pEncode = pAdaptor->pEncodings;
-
- for (i = 0; i < pAdaptor->nEncodings; i++, pEncode++)
- free(pEncode->name);
- free(pAdaptor->pEncodings);
- pAdaptor->pEncodings = NULL;
- }
-
- free(pAdaptor->pFormats);
- pAdaptor->pFormats = NULL;
-
if (pAdaptor->pPorts) {
XvPortPtr pPort = pAdaptor->pPorts;
XvPortRecPrivatePtr pPriv;
@@ -328,23 +300,9 @@ xf86XVFreeAdaptor(XvAdaptorPtr pAdaptor)
free(pPriv);
}
}
- free(pAdaptor->pPorts);
- pAdaptor->pPorts = NULL;
- }
-
- if (pAdaptor->pAttributes) {
- XvAttributePtr pAttribute = pAdaptor->pAttributes;
-
- for (i = 0; i < pAdaptor->nAttributes; i++, pAttribute++)
- free(pAttribute->name);
- free(pAdaptor->pAttributes);
- pAdaptor->pAttributes = NULL;
}
- free(pAdaptor->pImages);
- free(pAdaptor->devPriv.ptr);
- pAdaptor->pImages = NULL;
- pAdaptor->devPriv.ptr = NULL;
+ XvFreeAdaptor(pAdaptor);
}
static Bool
@@ -409,8 +367,6 @@ xf86XVInitAdaptors(ScreenPtr pScreen, XF86VideoAdaptorPtr * infoPtr, int number)
continue;
pa->pScreen = pScreen;
- pa->ddAllocatePort = xf86XVAllocatePort;
- pa->ddFreePort = xf86XVFreePort;
pa->ddPutVideo = xf86XVPutVideo;
pa->ddPutStill = xf86XVPutStill;
pa->ddGetVideo = xf86XVGetVideo;
@@ -712,10 +668,6 @@ xf86XVRegetVideo(XvPortRecPrivatePtr portPriv)
goto CLIP_VIDEO_BAILOUT;
}
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->GetVideo) (portPriv->pScrn,
portPriv->vid_x, portPriv->vid_y,
WinBox.x1, WinBox.y1,
@@ -788,22 +740,6 @@ xf86XVReputVideo(XvPortRecPrivatePtr portPriv)
goto CLIP_VIDEO_BAILOUT;
}
- /* bailout if we have to clip but the hardware doesn't support it */
- if (portPriv->AdaptorRec->flags & VIDEO_NO_CLIPPING) {
- BoxPtr clipBox = RegionRects(&ClipRegion);
-
- if ((RegionNumRects(&ClipRegion) != 1) ||
- (clipBox->x1 != WinBox.x1) || (clipBox->x2 != WinBox.x2) ||
- (clipBox->y1 != WinBox.y1) || (clipBox->y2 != WinBox.y2)) {
- clippedAway = TRUE;
- goto CLIP_VIDEO_BAILOUT;
- }
- }
-
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->PutVideo) (portPriv->pScrn,
portPriv->vid_x, portPriv->vid_y,
WinBox.x1, WinBox.y1,
@@ -882,22 +818,6 @@ xf86XVReputImage(XvPortRecPrivatePtr portPriv)
goto CLIP_VIDEO_BAILOUT;
}
- /* bailout if we have to clip but the hardware doesn't support it */
- if (portPriv->AdaptorRec->flags & VIDEO_NO_CLIPPING) {
- BoxPtr clipBox = RegionRects(&ClipRegion);
-
- if ((RegionNumRects(&ClipRegion) != 1) ||
- (clipBox->x1 != WinBox.x1) || (clipBox->x2 != WinBox.x2) ||
- (clipBox->y1 != WinBox.y1) || (clipBox->y2 != WinBox.y2)) {
- clippedAway = TRUE;
- goto CLIP_VIDEO_BAILOUT;
- }
- }
-
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->ReputImage) (portPriv->pScrn,
portPriv->vid_x, portPriv->vid_y,
WinBox.x1, WinBox.y1,
@@ -1235,6 +1155,7 @@ xf86XVCloseScreen(ScreenPtr pScreen)
pScreen->DestroyWindow = ScreenPriv->DestroyWindow;
pScreen->WindowExposures = ScreenPriv->WindowExposures;
pScreen->ClipNotify = ScreenPriv->ClipNotify;
+ pScreen->CloseScreen = ScreenPriv->CloseScreen;
pScrn->EnterVT = ScreenPriv->EnterVT;
pScrn->LeaveVT = ScreenPriv->LeaveVT;
@@ -1247,19 +1168,8 @@ xf86XVCloseScreen(ScreenPtr pScreen)
free(pxvs->pAdaptors);
free(ScreenPriv);
- return TRUE;
-}
-
-static int
-xf86XVQueryAdaptors(ScreenPtr pScreen,
- XvAdaptorPtr * p_pAdaptors, int *p_nAdaptors)
-{
- XvScreenPtr pxvs = GET_XV_SCREEN(pScreen);
- *p_nAdaptors = pxvs->nAdaptors;
- *p_pAdaptors = pxvs->pAdaptors;
-
- return Success;
+ return pScreen->CloseScreen(pScreen);
}
/**** ScrnInfoRec fields ****/
@@ -1361,21 +1271,7 @@ xf86XVModeSet(ScrnInfoPtr pScrn)
/**** XvAdaptorRec fields ****/
static int
-xf86XVAllocatePort(unsigned long port, XvPortPtr pPort, XvPortPtr * ppPort)
-{
- *ppPort = pPort;
- return Success;
-}
-
-static int
-xf86XVFreePort(XvPortPtr pPort)
-{
- return Success;
-}
-
-static int
-xf86XVPutVideo(ClientPtr client,
- DrawablePtr pDraw,
+xf86XVPutVideo(DrawablePtr pDraw,
XvPortPtr pPort,
GCPtr pGC,
INT16 vid_x, INT16 vid_y,
@@ -1425,8 +1321,7 @@ xf86XVPutVideo(ClientPtr client,
}
static int
-xf86XVPutStill(ClientPtr client,
- DrawablePtr pDraw,
+xf86XVPutStill(DrawablePtr pDraw,
XvPortPtr pPort,
GCPtr pGC,
INT16 vid_x, INT16 vid_y,
@@ -1480,21 +1375,6 @@ xf86XVPutStill(ClientPtr client,
goto PUT_STILL_BAILOUT;
}
- if (portPriv->AdaptorRec->flags & VIDEO_NO_CLIPPING) {
- BoxPtr clipBox = RegionRects(&ClipRegion);
-
- if ((RegionNumRects(&ClipRegion) != 1) ||
- (clipBox->x1 != WinBox.x1) || (clipBox->x2 != WinBox.x2) ||
- (clipBox->y1 != WinBox.y1) || (clipBox->y2 != WinBox.y2)) {
- clippedAway = TRUE;
- goto PUT_STILL_BAILOUT;
- }
- }
-
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->PutStill) (portPriv->pScrn,
vid_x, vid_y, WinBox.x1, WinBox.y1,
vid_w, vid_h, drw_w, drw_h,
@@ -1538,8 +1418,7 @@ xf86XVPutStill(ClientPtr client,
}
static int
-xf86XVGetVideo(ClientPtr client,
- DrawablePtr pDraw,
+xf86XVGetVideo(DrawablePtr pDraw,
XvPortPtr pPort,
GCPtr pGC,
INT16 vid_x, INT16 vid_y,
@@ -1589,8 +1468,7 @@ xf86XVGetVideo(ClientPtr client,
}
static int
-xf86XVGetStill(ClientPtr client,
- DrawablePtr pDraw,
+xf86XVGetStill(DrawablePtr pDraw,
XvPortPtr pPort,
GCPtr pGC,
INT16 vid_x, INT16 vid_y,
@@ -1628,10 +1506,6 @@ xf86XVGetStill(ClientPtr client,
goto GET_STILL_BAILOUT;
}
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->GetStill) (portPriv->pScrn,
vid_x, vid_y, WinBox.x1, WinBox.y1,
vid_w, vid_h, drw_w, drw_h,
@@ -1653,7 +1527,7 @@ xf86XVGetStill(ClientPtr client,
}
static int
-xf86XVStopVideo(ClientPtr client, XvPortPtr pPort, DrawablePtr pDraw)
+xf86XVStopVideo(XvPortPtr pPort, DrawablePtr pDraw)
{
XvPortRecPrivatePtr portPriv = (XvPortRecPrivatePtr) (pPort->devPriv.ptr);
@@ -1677,8 +1551,7 @@ xf86XVStopVideo(ClientPtr client, XvPortPtr pPort, DrawablePtr pDraw)
}
static int
-xf86XVSetPortAttribute(ClientPtr client,
- XvPortPtr pPort, Atom attribute, INT32 value)
+xf86XVSetPortAttribute(XvPortPtr pPort, Atom attribute, INT32 value)
{
XvPortRecPrivatePtr portPriv = (XvPortRecPrivatePtr) (pPort->devPriv.ptr);
@@ -1688,8 +1561,7 @@ xf86XVSetPortAttribute(ClientPtr client,
}
static int
-xf86XVGetPortAttribute(ClientPtr client,
- XvPortPtr pPort, Atom attribute, INT32 *p_value)
+xf86XVGetPortAttribute(XvPortPtr pPort, Atom attribute, INT32 *p_value)
{
XvPortRecPrivatePtr portPriv = (XvPortRecPrivatePtr) (pPort->devPriv.ptr);
@@ -1699,8 +1571,7 @@ xf86XVGetPortAttribute(ClientPtr client,
}
static int
-xf86XVQueryBestSize(ClientPtr client,
- XvPortPtr pPort,
+xf86XVQueryBestSize(XvPortPtr pPort,
CARD8 motion,
CARD16 vid_w, CARD16 vid_h,
CARD16 drw_w, CARD16 drw_h,
@@ -1717,8 +1588,7 @@ xf86XVQueryBestSize(ClientPtr client,
}
static int
-xf86XVPutImage(ClientPtr client,
- DrawablePtr pDraw,
+xf86XVPutImage(DrawablePtr pDraw,
XvPortPtr pPort,
GCPtr pGC,
INT16 src_x, INT16 src_y,
@@ -1780,21 +1650,6 @@ xf86XVPutImage(ClientPtr client,
goto PUT_IMAGE_BAILOUT;
}
- if (portPriv->AdaptorRec->flags & VIDEO_NO_CLIPPING) {
- BoxPtr clipBox = RegionRects(&ClipRegion);
-
- if ((RegionNumRects(&ClipRegion) != 1) ||
- (clipBox->x1 != WinBox.x1) || (clipBox->x2 != WinBox.x2) ||
- (clipBox->y1 != WinBox.y1) || (clipBox->y2 != WinBox.y2)) {
- clippedAway = TRUE;
- goto PUT_IMAGE_BAILOUT;
- }
- }
-
- if (portPriv->AdaptorRec->flags & VIDEO_INVERT_CLIPLIST) {
- RegionSubtract(&ClipRegion, &WinRegion, &ClipRegion);
- }
-
ret = (*portPriv->AdaptorRec->PutImage) (portPriv->pScrn,
src_x, src_y, WinBox.x1, WinBox.y1,
src_w, src_h, drw_w, drw_h,
@@ -1838,8 +1693,7 @@ xf86XVPutImage(ClientPtr client,
}
static int
-xf86XVQueryImageAttributes(ClientPtr client,
- XvPortPtr pPort,
+xf86XVQueryImageAttributes(XvPortPtr pPort,
XvImagePtr format,
CARD16 *width,
CARD16 *height, int *pitches, int *offsets)
@@ -1856,34 +1710,11 @@ void
xf86XVFillKeyHelperDrawable(DrawablePtr pDraw, CARD32 key, RegionPtr fillboxes)
{
ScreenPtr pScreen = pDraw->pScreen;
- ChangeGCVal pval[2];
- BoxPtr pbox = RegionRects(fillboxes);
- int i, nbox = RegionNumRects(fillboxes);
- xRectangle *rects;
- GCPtr gc;
if (!xf86ScreenToScrn(pScreen)->vtSema)
return;
- gc = GetScratchGC(pDraw->depth, pScreen);
- pval[0].val = key;
- pval[1].val = IncludeInferiors;
- (void) ChangeGC(NullClient, gc, GCForeground | GCSubwindowMode, pval);
- ValidateGC(pDraw, gc);
-
- rects = malloc(nbox * sizeof(xRectangle));
-
- for (i = 0; i < nbox; i++, pbox++) {
- rects[i].x = pbox->x1 - pDraw->x;
- rects[i].y = pbox->y1 - pDraw->y;
- rects[i].width = pbox->x2 - pbox->x1;
- rects[i].height = pbox->y2 - pbox->y1;
- }
-
- (*gc->ops->PolyFillRect) (pDraw, gc, nbox, rects);
-
- free(rects);
- FreeScratchGC(gc);
+ XvFillColorKey(pDraw, key, fillboxes);
}
void
diff --git a/xorg-server/hw/xfree86/common/xf86xv.h b/xorg-server/hw/xfree86/common/xf86xv.h
index de17eb133..c6455d703 100644
--- a/xorg-server/hw/xfree86/common/xf86xv.h
+++ b/xorg-server/hw/xfree86/common/xf86xv.h
@@ -32,8 +32,6 @@
#include "xvdix.h"
#include "xf86str.h"
-#define VIDEO_NO_CLIPPING 0x00000001
-#define VIDEO_INVERT_CLIPLIST 0x00000002
#define VIDEO_OVERLAID_IMAGES 0x00000004
#define VIDEO_OVERLAID_STILLS 0x00000008
/*
diff --git a/xorg-server/hw/xfree86/common/xf86xvpriv.h b/xorg-server/hw/xfree86/common/xf86xvpriv.h
index e95f959a8..c0dff16d5 100644
--- a/xorg-server/hw/xfree86/common/xf86xvpriv.h
+++ b/xorg-server/hw/xfree86/common/xf86xvpriv.h
@@ -45,6 +45,7 @@ typedef struct {
Bool (*EnterVT) (ScrnInfoPtr);
void (*LeaveVT) (ScrnInfoPtr);
xf86ModeSetProc *ModeSet;
+ CloseScreenProcPtr CloseScreen;
} XF86XVScreenRec, *XF86XVScreenPtr;
typedef struct {
diff --git a/xorg-server/hw/xfree86/doc/ddxDesign.xml b/xorg-server/hw/xfree86/doc/ddxDesign.xml
index d1fd9af7b..6a9de9e7f 100644
--- a/xorg-server/hw/xfree86/doc/ddxDesign.xml
+++ b/xorg-server/hw/xfree86/doc/ddxDesign.xml
@@ -4543,31 +4543,6 @@ as follows:
<variablelist>
<varlistentry>
- <term><constant>VIDEO_NO_CLIPPING</constant></term>
- <listitem><para>
- This indicates that the video adaptor does not support
- clipping. The driver will never receive <quote>Put</quote> requests
- where less than the entire area determined by
- <parameter>drw_x</parameter>, <parameter>drw_y</parameter>,
- <parameter>drw_w</parameter> and <parameter>drw_h</parameter> is visible.
- This flag does not apply to <quote>Get</quote> requests. Hardware
- that is incapable of clipping <quote>Gets</quote> may punt or get
- the extents of the clipping region passed to it.
- </para></listitem>
-
- </varlistentry>
-
- <varlistentry>
- <term><constant>VIDEO_INVERT_CLIPLIST</constant></term>
- <listitem><para>
- This indicates that the video driver requires the clip
- list to contain the regions which are obscured rather
- than the regions which are are visible.
- </para></listitem>
-
- </varlistentry>
-
- <varlistentry>
<term><constant>VIDEO_OVERLAID_STILLS</constant></term>
<listitem><para>
Implementing PutStill for hardware that does video as an
@@ -4724,18 +4699,13 @@ as follows:
</para>
<para>
- If the <constant>VIDEO_NO_CLIPPING</constant>
- flag is set, the <literal remap="tt">clipBoxes</literal> may be ignored by
- the driver. <literal remap="tt">ClipBoxes</literal> is an <literal remap="tt">X-Y</literal>
+ <literal remap="tt">ClipBoxes</literal> is an <literal remap="tt">X-Y</literal>
banded region identical to those used throughout the server.
The clipBoxes represent the visible portions of the area determined
by <literal remap="tt">drw_x</literal>, <literal remap="tt">drw_y</literal>,
<literal remap="tt">drw_w</literal> and <literal remap="tt">drw_h</literal> in the Get/Put
function. The boxes are in screen coordinates, are guaranteed
not to overlap and an empty region will never be passed.
- If the driver has specified <constant>VIDEO_INVERT_CLIPLIST</constant>,
- <literal remap="tt">clipBoxes</literal> will indicate the areas of the primitive
- which are obscured rather than the areas visible.
</para></listitem></varlistentry>
</variablelist>
@@ -9094,8 +9064,7 @@ ZZZScreenInit(ScreenPtr pScreen, int argc, char **argv)
xf86SetBlackWhitePixels(pScreen);
/*
- * Install colourmap functions. If using the vgahw module,
- * vgaHandleColormaps would usually be called here.
+ * Install colourmap functions.
*/
...
diff --git a/xorg-server/hw/xfree86/dri/dri.c b/xorg-server/hw/xfree86/dri/dri.c
index 95828bbac..3f2f6a9b3 100644
--- a/xorg-server/hw/xfree86/dri/dri.c
+++ b/xorg-server/hw/xfree86/dri/dri.c
@@ -595,14 +595,6 @@ DRIFinishScreenInit(ScreenPtr pScreen)
DRIInfoPtr pDRIInfo = pDRIPriv->pDriverInfo;
/* Wrap DRI support */
- if (pDRIInfo->wrap.ValidateTree) {
- pDRIPriv->wrap.ValidateTree = pScreen->ValidateTree;
- pScreen->ValidateTree = pDRIInfo->wrap.ValidateTree;
- }
- if (pDRIInfo->wrap.PostValidateTree) {
- pDRIPriv->wrap.PostValidateTree = pScreen->PostValidateTree;
- pScreen->PostValidateTree = pDRIInfo->wrap.PostValidateTree;
- }
if (pDRIInfo->wrap.WindowExposures) {
pDRIPriv->wrap.WindowExposures = pScreen->WindowExposures;
pScreen->WindowExposures = pDRIInfo->wrap.WindowExposures;
@@ -652,14 +644,6 @@ DRICloseScreen(ScreenPtr pScreen)
if (pDRIPriv->wrapped) {
/* Unwrap DRI Functions */
- if (pDRIInfo->wrap.ValidateTree) {
- pScreen->ValidateTree = pDRIPriv->wrap.ValidateTree;
- pDRIPriv->wrap.ValidateTree = NULL;
- }
- if (pDRIInfo->wrap.PostValidateTree) {
- pScreen->PostValidateTree = pDRIPriv->wrap.PostValidateTree;
- pDRIPriv->wrap.PostValidateTree = NULL;
- }
if (pDRIInfo->wrap.WindowExposures) {
pScreen->WindowExposures = pDRIPriv->wrap.WindowExposures;
pDRIPriv->wrap.WindowExposures = NULL;
@@ -1601,8 +1585,6 @@ DRICreateInfoRec(void)
inforec->wrap.BlockHandler = DRIDoBlockHandler;
inforec->wrap.WindowExposures = DRIWindowExposures;
inforec->wrap.CopyWindow = DRICopyWindow;
- inforec->wrap.ValidateTree = DRIValidateTree;
- inforec->wrap.PostValidateTree = DRIPostValidateTree;
inforec->wrap.ClipNotify = DRIClipNotify;
inforec->wrap.AdjustFrame = DRIAdjustFrame;
@@ -2064,61 +2046,6 @@ DRILockTree(ScreenPtr pScreen)
}
}
-int
-DRIValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind)
-{
- ScreenPtr pScreen = pParent->drawable.pScreen;
- DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
-
- int returnValue = 1; /* always return 1, not checked by dix/window.c */
-
- if (!pDRIPriv)
- return returnValue;
-
- /* call lower wrapped functions */
- if (pDRIPriv->wrap.ValidateTree) {
- /* unwrap */
- pScreen->ValidateTree = pDRIPriv->wrap.ValidateTree;
-
- /* call lower layers */
- returnValue = (*pScreen->ValidateTree) (pParent, pChild, kind);
-
- /* rewrap */
- pDRIPriv->wrap.ValidateTree = pScreen->ValidateTree;
- pScreen->ValidateTree = DRIValidateTree;
- }
-
- return returnValue;
-}
-
-void
-DRIPostValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind)
-{
- ScreenPtr pScreen;
- DRIScreenPrivPtr pDRIPriv;
-
- if (pParent) {
- pScreen = pParent->drawable.pScreen;
- }
- else {
- pScreen = pChild->drawable.pScreen;
- }
- if (!(pDRIPriv = DRI_SCREEN_PRIV(pScreen)))
- return;
-
- if (pDRIPriv->wrap.PostValidateTree) {
- /* unwrap */
- pScreen->PostValidateTree = pDRIPriv->wrap.PostValidateTree;
-
- /* call lower layers */
- (*pScreen->PostValidateTree) (pParent, pChild, kind);
-
- /* rewrap */
- pDRIPriv->wrap.PostValidateTree = pScreen->PostValidateTree;
- pScreen->PostValidateTree = DRIPostValidateTree;
- }
-}
-
void
DRIClipNotify(WindowPtr pWin, int dx, int dy)
{
diff --git a/xorg-server/hw/xfree86/dri/dri.h b/xorg-server/hw/xfree86/dri/dri.h
index 64cd7c9d4..dec688582 100644
--- a/xorg-server/hw/xfree86/dri/dri.h
+++ b/xorg-server/hw/xfree86/dri/dri.h
@@ -85,8 +85,6 @@ typedef struct {
ScreenBlockHandlerProcPtr BlockHandler;
WindowExposuresProcPtr WindowExposures;
CopyWindowProcPtr CopyWindow;
- ValidateTreeProcPtr ValidateTree;
- PostValidateTreeProcPtr PostValidateTree;
ClipNotifyProcPtr ClipNotify;
AdjustFramePtr AdjustFrame;
} DRIWrappedFuncsRec, *DRIWrappedFuncsPtr;
@@ -290,12 +288,6 @@ extern _X_EXPORT Bool DRIDestroyWindow(WindowPtr pWin);
extern _X_EXPORT void DRICopyWindow(WindowPtr pWin,
DDXPointRec ptOldOrg, RegionPtr prgnSrc);
-extern _X_EXPORT int DRIValidateTree(WindowPtr pParent,
- WindowPtr pChild, VTKind kind);
-
-extern _X_EXPORT void DRIPostValidateTree(WindowPtr pParent,
- WindowPtr pChild, VTKind kind);
-
extern _X_EXPORT void DRIClipNotify(WindowPtr pWin, int dx, int dy);
extern _X_EXPORT CARD32 DRIGetDrawableIndex(WindowPtr pWin);
diff --git a/xorg-server/hw/xfree86/int10/generic.c b/xorg-server/hw/xfree86/int10/generic.c
index abbd36f3c..73a1e5e49 100644
--- a/xorg-server/hw/xfree86/int10/generic.c
+++ b/xorg-server/hw/xfree86/int10/generic.c
@@ -20,6 +20,42 @@
#define ALLOC_ENTRIES(x) ((V_RAM / x) - 1)
+#include <string.h> /* needed for memmove */
+
+static __inline__ uint32_t
+ldl_u(uint32_t * p)
+{
+ uint32_t ret;
+
+ memmove(&ret, p, sizeof(*p));
+ return ret;
+}
+
+static __inline__ uint16_t
+ldw_u(uint16_t * p)
+{
+ uint16_t ret;
+
+ memmove(&ret, p, sizeof(*p));
+ return ret;
+}
+
+static __inline__ void
+stl_u(uint32_t val, uint32_t * p)
+{
+ uint32_t tmp = val;
+
+ memmove(p, &tmp, sizeof(*p));
+}
+
+static __inline__ void
+stw_u(uint16_t val, uint16_t * p)
+{
+ uint16_t tmp = val;
+
+ memmove(p, &tmp, sizeof(*p));
+}
+
static uint8_t read_b(xf86Int10InfoPtr pInt, int addr);
static uint16_t read_w(xf86Int10InfoPtr pInt, int addr);
static uint32_t read_l(xf86Int10InfoPtr pInt, int addr);
diff --git a/xorg-server/hw/xfree86/loader/loader.c b/xorg-server/hw/xfree86/loader/loader.c
index 64c69bb8a..cc41dcb4c 100644
--- a/xorg-server/hw/xfree86/loader/loader.c
+++ b/xorg-server/hw/xfree86/loader/loader.c
@@ -65,7 +65,6 @@
#include "loaderProcs.h"
#include "xf86.h"
#include "xf86Priv.h"
-#include "compiler.h"
#ifdef HAVE_DLFCN_H
diff --git a/xorg-server/hw/xfree86/modes/xf86Rotate.c b/xorg-server/hw/xfree86/modes/xf86Rotate.c
index 1627e61dd..9c00a443f 100644
--- a/xorg-server/hw/xfree86/modes/xf86Rotate.c
+++ b/xorg-server/hw/xfree86/modes/xf86Rotate.c
@@ -35,7 +35,6 @@
#include "xf86.h"
#include "xf86DDC.h"
-#include "fb.h"
#include "windowstr.h"
#include "xf86Crtc.h"
#include "xf86Modes.h"
@@ -310,6 +309,8 @@ xf86RotateCloseScreen(ScreenPtr screen)
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
int c;
+ /* This has already been destroyed when the root window was destroyed */
+ xf86_config->rotation_damage = NULL;
for (c = 0; c < xf86_config->num_crtc; c++)
xf86RotateDestroy(xf86_config->crtc[c]);
}
diff --git a/xorg-server/hw/xfree86/os-support/bsd/alpha_video.c b/xorg-server/hw/xfree86/os-support/bsd/alpha_video.c
index 95bd0591a..f656f5595 100644
--- a/xorg-server/hw/xfree86/os-support/bsd/alpha_video.c
+++ b/xorg-server/hw/xfree86/os-support/bsd/alpha_video.c
@@ -431,12 +431,6 @@ extern int readDense8(void *Base, register unsigned long Offset);
extern int readDense16(void *Base, register unsigned long Offset);
extern int readDense32(void *Base, register unsigned long Offset);
extern void
- writeDenseNB8(int Value, void *Base, register unsigned long Offset);
-extern void
- writeDenseNB16(int Value, void *Base, register unsigned long Offset);
-extern void
- writeDenseNB32(int Value, void *Base, register unsigned long Offset);
-extern void
writeDense8(int Value, void *Base, register unsigned long Offset);
extern void
writeDense16(int Value, void *Base, register unsigned long Offset);
@@ -666,12 +660,6 @@ void (*xf86WriteMmio16) (int Value, void *Base, unsigned long Offset)
= writeDense16;
void (*xf86WriteMmio32) (int Value, void *Base, unsigned long Offset)
= writeDense32;
-void (*xf86WriteMmioNB8) (int Value, void *Base, unsigned long Offset)
- = writeDenseNB8;
-void (*xf86WriteMmioNB16) (int Value, void *Base, unsigned long Offset)
- = writeDenseNB16;
-void (*xf86WriteMmioNB32) (int Value, void *Base, unsigned long Offset)
- = writeDenseNB32;
int (*xf86ReadMmio8) (void *Base, unsigned long Offset)
= readDense8;
int (*xf86ReadMmio16) (void *Base, unsigned long Offset)
diff --git a/xorg-server/hw/xfree86/os-support/bsd/arm_video.c b/xorg-server/hw/xfree86/os-support/bsd/arm_video.c
index 6a977c2db..e295c9244 100644
--- a/xorg-server/hw/xfree86/os-support/bsd/arm_video.c
+++ b/xorg-server/hw/xfree86/os-support/bsd/arm_video.c
@@ -487,142 +487,3 @@ xf86DisableIO()
}
#endif /* USE_ARC_MMAP */
-
-#if 0
-/*
- * XXX This is here for reference. It needs to be handled differently for the
- * ND.
- */
-#if defined(USE_ARC_MMAP) || defined(__arm32__)
-
-#ifdef USE_ARM32_MMAP
-#define DEV_MEM_IOBASE 0x43000000
-#endif
-
-static Bool ScreenEnabled[MAXSCREENS];
-static Bool ExtendedEnabled = FALSE;
-static Bool InitDone = FALSE;
-
-Bool
-xf86EnableIOPorts(ScreenNum)
-int ScreenNum;
-{
- int i;
- int fd;
- void *base;
-
-#ifdef __arm32__
- struct memAccess *memInfoP;
- int *Size;
-#endif
-
- ScreenEnabled[ScreenNum] = TRUE;
-
- if (ExtendedEnabled)
- return TRUE;
-
-#ifdef USE_ARC_MMAP
- if ((fd = open("/dev/ttyC0", O_RDWR)) >= 0) {
- /* Try to map a page at the pccons I/O space */
- base = (void *) mmap((caddr_t) 0, 65536, PROT_READ | PROT_WRITE,
- MAP_FLAGS, fd, (off_t) 0x0000);
-
- if (base != (void *) -1) {
- IOPortBase = base;
- }
- else {
- xf86Msg(X_ERROR,
- "EnableIOPorts: failed to mmap %s (%s)\n",
- "/dev/ttyC0", strerror(errno));
- }
- }
- else {
- xf86Msg(X_ERROR, "EnableIOPorts: failed to open %s (%s)\n",
- "/dev/ttyC0", strerror(errno));
- }
-#endif
-
-#ifdef __arm32__
- IOPortBase = (unsigned int) -1;
-
- if ((memInfoP = checkMapInfo(TRUE, MMIO_REGION)) != NULL) {
- /*
- * xf86MapInfoMap maps an offset from the start of video IO
- * space (e.g. 0x3B0), but IOPortBase is expected to map to
- * physical address 0x000, so subtract the start of video I/O
- * space from the result. This is safe for now becase we
- * actually mmap the start of the page, then the start of video
- * I/O space is added as an internal offset.
- */
- IOPortBase = (unsigned int) xf86MapInfoMap(memInfoP, (caddr_t) 0x0, 0L)
- - memInfoP->memInfo.u.map_info_mmap.internal_offset;
- ExtendedEnabled = TRUE;
- return TRUE;
- }
-#ifdef USE_ARM32_MMAP
- checkDevMem(TRUE);
-
- if (devMemFd >= 0 && useDevMem) {
- base = (void *) mmap((caddr_t) 0, 0x400, PROT_READ | PROT_WRITE,
- MAP_FLAGS, devMemFd, (off_t) DEV_MEM_IOBASE);
-
- if (base != (void *) -1)
- IOPortBase = (unsigned int) base;
- }
-
- if (IOPortBase == (unsigned int) -1) {
- xf86Msg(X_WARNING,
- "xf86EnableIOPorts: failed to open mem device or map IO base. \n\
-Make sure you have the Aperture Driver installed, or a kernel built with the INSECURE option\n");
- return FALSE;
- }
-#else
- /* We don't have the IOBASE, so we can't map the address */
- xf86Msg(X_WARNING,
- "xf86EnableIOPorts: failed to open mem device or map IO base. \n\
-Try building the server with USE_ARM32_MMAP defined\n");
- return FALSE;
-#endif
-#endif
-
- ExtendedEnabled = TRUE;
-
- return TRUE;
-}
-
-void
-xf86DisableIOPorts(ScreenNum)
-int ScreenNum;
-{
- int i;
-
-#ifdef __arm32__
- struct memAccess *memInfoP;
-#endif
-
- ScreenEnabled[ScreenNum] = FALSE;
-
-#ifdef __arm32__
- if ((memInfoP = checkMapInfo(FALSE, MMIO_REGION)) != NULL) {
- xf86MapInfoUnmap(memInfoP, 0);
- }
-#endif
-
-#ifdef USE_ARM32_MMAP
- if (!ExtendedEnabled)
- return;
-
- for (i = 0; i < MAXSCREENS; i++)
- if (ScreenEnabled[i])
- return;
-
- munmap((caddr_t) IOPortBase, 0x400);
- IOPortBase = (unsigned int) -1;
- ExtendedEnabled = FALSE;
-#endif
-
- return;
-}
-
-#endif /* USE_ARC_MMAP || USE_ARM32_MMAP */
-#endif
diff --git a/xorg-server/hw/xfree86/os-support/bsd/bsd_ev56.c b/xorg-server/hw/xfree86/os-support/bsd/bsd_ev56.c
index 320bb23b6..95883491b 100644
--- a/xorg-server/hw/xfree86/os-support/bsd/bsd_ev56.c
+++ b/xorg-server/hw/xfree86/os-support/bsd/bsd_ev56.c
@@ -26,12 +26,6 @@ int readDense8(void *Base, register unsigned long Offset);
int readDense16(void *Base, register unsigned long Offset);
int readDense32(void *Base, register unsigned long Offset);
void
- writeDenseNB8(int Value, void *Base, register unsigned long Offset);
-void
- writeDenseNB16(int Value, void *Base, register unsigned long Offset);
-void
- writeDenseNB32(int Value, void *Base, register unsigned long Offset);
-void
writeDense8(int Value, void *Base, register unsigned long Offset);
void
writeDense16(int Value, void *Base, register unsigned long Offset);
@@ -60,24 +54,6 @@ readDense32(void *Base, register unsigned long Offset)
}
void
-writeDenseNB8(int Value, void *Base, register unsigned long Offset)
-{
- alpha_stb((void *) ((unsigned long) Base + (Offset)), Value);
-}
-
-void
-writeDenseNB16(int Value, void *Base, register unsigned long Offset)
-{
- alpha_stw((void *) ((unsigned long) Base + (Offset)), Value);
-}
-
-void
-writeDenseNB32(int Value, void *Base, register unsigned long Offset)
-{
- *(volatile CARD32 *) ((unsigned long) Base + (Offset)) = Value;
-}
-
-void
writeDense8(int Value, void *Base, register unsigned long Offset)
{
write_mem_barrier();
diff --git a/xorg-server/hw/xfree86/os-support/bus/xf86Pci.h b/xorg-server/hw/xfree86/os-support/bus/xf86Pci.h
index f69e55b39..210ab3d89 100644
--- a/xorg-server/hw/xfree86/os-support/bus/xf86Pci.h
+++ b/xorg-server/hw/xfree86/os-support/bus/xf86Pci.h
@@ -232,28 +232,7 @@
* Typedefs, etc...
*/
-/* Primitive Types */
-typedef unsigned long ADDRESS; /* Memory/PCI address */
-typedef unsigned long IOADDRESS _X_DEPRECATED; /* Must be large enough for a pointer */
-typedef CARD32 PCITAG _X_DEPRECATED;
-
-typedef enum {
- PCI_MEM,
- PCI_MEM_SIZE,
- PCI_MEM_SPARSE_BASE,
- PCI_MEM_SPARSE_MASK,
- PCI_IO,
- PCI_IO_SIZE,
- PCI_IO_SPARSE_BASE,
- PCI_IO_SPARSE_MASK
-} PciAddrType;
-
/* Public PCI access functions */
extern _X_EXPORT Bool xf86scanpci(void);
-/* Domain access functions. Some of these probably shouldn't be public */
-extern _X_EXPORT struct pci_io_handle *xf86MapLegacyIO(struct pci_device *dev);
-extern _X_EXPORT void xf86UnmapLegacyIO(struct pci_device *,
- struct pci_io_handle *);
-
#endif /* _XF86PCI_H */
diff --git a/xorg-server/hw/xfree86/os-support/linux/lnx_ev56.c b/xorg-server/hw/xfree86/os-support/linux/lnx_ev56.c
index b6950009c..4e886b6ce 100644
--- a/xorg-server/hw/xfree86/os-support/linux/lnx_ev56.c
+++ b/xorg-server/hw/xfree86/os-support/linux/lnx_ev56.c
@@ -10,12 +10,6 @@ int readDense8(void *Base, register unsigned long Offset);
int readDense16(void *Base, register unsigned long Offset);
int readDense32(void *Base, register unsigned long Offset);
void
- writeDenseNB8(int Value, void *Base, register unsigned long Offset);
-void
- writeDenseNB16(int Value, void *Base, register unsigned long Offset);
-void
- writeDenseNB32(int Value, void *Base, register unsigned long Offset);
-void
writeDense8(int Value, void *Base, register unsigned long Offset);
void
writeDense16(int Value, void *Base, register unsigned long Offset);
@@ -44,24 +38,6 @@ readDense32(void *Base, register unsigned long Offset)
}
void
-writeDenseNB8(int Value, void *Base, register unsigned long Offset)
-{
- *(volatile CARD8 *) ((unsigned long) Base + (Offset)) = Value;
-}
-
-void
-writeDenseNB16(int Value, void *Base, register unsigned long Offset)
-{
- *(volatile CARD16 *) ((unsigned long) Base + (Offset)) = Value;
-}
-
-void
-writeDenseNB32(int Value, void *Base, register unsigned long Offset)
-{
- *(volatile CARD32 *) ((unsigned long) Base + (Offset)) = Value;
-}
-
-void
writeDense8(int Value, void *Base, register unsigned long Offset)
{
write_mem_barrier();
diff --git a/xorg-server/hw/xfree86/os-support/linux/lnx_video.c b/xorg-server/hw/xfree86/os-support/linux/lnx_video.c
index 652f963a2..ffffc81c5 100644
--- a/xorg-server/hw/xfree86/os-support/linux/lnx_video.c
+++ b/xorg-server/hw/xfree86/os-support/linux/lnx_video.c
@@ -571,12 +571,6 @@ extern int readDense8(void *Base, register unsigned long Offset);
extern int readDense16(void *Base, register unsigned long Offset);
extern int readDense32(void *Base, register unsigned long Offset);
extern void
- writeDenseNB8(int Value, void *Base, register unsigned long Offset);
-extern void
- writeDenseNB16(int Value, void *Base, register unsigned long Offset);
-extern void
- writeDenseNB32(int Value, void *Base, register unsigned long Offset);
-extern void
writeDense8(int Value, void *Base, register unsigned long Offset);
extern void
writeDense16(int Value, void *Base, register unsigned long Offset);
@@ -867,12 +861,6 @@ void (*xf86WriteMmio16) (int Value, void *Base, unsigned long Offset)
= writeDense16;
void (*xf86WriteMmio32) (int Value, void *Base, unsigned long Offset)
= writeDense32;
-void (*xf86WriteMmioNB8) (int Value, void *Base, unsigned long Offset)
- = writeDenseNB8;
-void (*xf86WriteMmioNB16) (int Value, void *Base, unsigned long Offset)
- = writeDenseNB16;
-void (*xf86WriteMmioNB32) (int Value, void *Base, unsigned long Offset)
- = writeDenseNB32;
int (*xf86ReadMmio8) (void *Base, unsigned long Offset)
= readDense8;
int (*xf86ReadMmio16) (void *Base, unsigned long Offset)
diff --git a/xorg-server/hw/xfree86/os-support/xf86OSpriv.h b/xorg-server/hw/xfree86/os-support/xf86OSpriv.h
index 7f003e8ce..b56f45a3e 100644
--- a/xorg-server/hw/xfree86/os-support/xf86OSpriv.h
+++ b/xorg-server/hw/xfree86/os-support/xf86OSpriv.h
@@ -36,14 +36,12 @@ typedef void *(*MapMemProcPtr) (int, unsigned long, unsigned long, int);
typedef void (*UnmapMemProcPtr) (int, void *, unsigned long);
typedef void *(*SetWCProcPtr) (int, unsigned long, unsigned long, Bool,
MessageType);
-typedef void (*ProtectMemProcPtr) (int, void *, unsigned long, Bool);
typedef void (*UndoWCProcPtr) (int, void *);
typedef struct {
Bool initialised;
MapMemProcPtr mapMem;
UnmapMemProcPtr unmapMem;
- ProtectMemProcPtr protectMem;
SetWCProcPtr setWC;
UndoWCProcPtr undoWC;
Bool linearSupported;
diff --git a/xorg-server/hw/xfree86/os-support/xf86_OSlib.h b/xorg-server/hw/xfree86/os-support/xf86_OSlib.h
index eb0a338c9..9120bd7dc 100644
--- a/xorg-server/hw/xfree86/os-support/xf86_OSlib.h
+++ b/xorg-server/hw/xfree86/os-support/xf86_OSlib.h
@@ -364,8 +364,4 @@ struct pcvtid {
#define XF86_OS_PRIVS
#include "xf86_OSproc.h"
-#ifndef NO_COMPILER_H
-#include "compiler.h"
-#endif
-
#endif /* _XF86_OSLIB_H */
diff --git a/xorg-server/hw/xfree86/ramdac/xf86RamDacCmap.c b/xorg-server/hw/xfree86/ramdac/xf86RamDacCmap.c
index fa7a86663..2a0f75569 100644
--- a/xorg-server/hw/xfree86/ramdac/xf86RamDacCmap.c
+++ b/xorg-server/hw/xfree86/ramdac/xf86RamDacCmap.c
@@ -35,7 +35,6 @@
#include "micmap.h"
#include "xf86.h"
-#include "compiler.h"
#include "colormapst.h"
#include "xf86RamDacPriv.h"
diff --git a/xorg-server/hw/xfree86/vgahw/Makefile.am b/xorg-server/hw/xfree86/vgahw/Makefile.am
index 4b718b489..b8196a695 100644
--- a/xorg-server/hw/xfree86/vgahw/Makefile.am
+++ b/xorg-server/hw/xfree86/vgahw/Makefile.am
@@ -6,5 +6,3 @@ AM_CPPFLAGS = $(XORG_INCS) -I$(srcdir)/../ddc -I$(srcdir)/../i2c
AM_CFLAGS = $(DIX_CFLAGS) $(XORG_CFLAGS)
sdk_HEADERS = vgaHW.h
-
-EXTRA_DIST = vgaCmap.c
diff --git a/xorg-server/hw/xfree86/vgahw/vgaCmap.c b/xorg-server/hw/xfree86/vgahw/vgaCmap.c
deleted file mode 100644
index 6e028a7f5..000000000
--- a/xorg-server/hw/xfree86/vgahw/vgaCmap.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Thomas Roell not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Thomas Roell makes no representations
- * about the suitability of this software for any purpose. It is provided
- * "as is" without express or implied warranty.
- *
- * THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THOMAS ROELL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- *
- */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <X11/X.h>
-#include <X11/Xproto.h>
-#include "windowstr.h"
-#include "compiler.h"
-#include "mipointer.h"
-#include "micmap.h"
-
-#include "xf86.h"
-#include "vgaHW.h"
-
-#include <X11/extensions/xf86dgaproto.h>
-#include "dgaproc.h"
-
-#define NOMAPYET (ColormapPtr) 0
-
-int
-vgaListInstalledColormaps(pScreen, pmaps)
-ScreenPtr pScreen;
-Colormap *pmaps;
-{
- /* By the time we are processing requests, we can guarantee that there
- * is always a colormap installed */
-
- *pmaps = GetInstalledmiColormap(pScreen)->mid;
- return 1;
-}
-
-int
-vgaGetInstalledColormaps(pScreen, pmaps)
-ScreenPtr pScreen;
-ColormapPtr *pmaps;
-{
- /* By the time we are processing requests, we can guarantee that there
- * is always a colormap installed */
-
- *pmaps = GetInstalledmiColormap(pScreen);
- return 1;
-}
-
-int
-vgaCheckColorMap(ColormapPtr pmap)
-{
- return (pmap != GetInstalledmiColormap(pmap->pScreen));
-}
-
-void
-vgaStoreColors(pmap, ndef, pdefs)
-ColormapPtr pmap;
-int ndef;
-xColorItem *pdefs;
-{
- int i;
- unsigned char *cmap, *tmp = NULL;
- xColorItem directDefs[256];
- Bool new_overscan = FALSE;
- Bool writeColormap;
- int scrnIndex = pmap->pScreen->myNum;
- ScrnInfoPtr scrninfp = xf86ScreenToScrn(pmap->pScreen);
- vgaHWPtr hwp = VGAHWPTR(scrninfp);
-
- unsigned char overscan = hwp->ModeReg.Attribute[OVERSCAN];
- unsigned char tmp_overscan = 0;
-
- if (vgaCheckColorMap(pmap))
- return;
-
- if ((pmap->pVisual->class | DynamicClass) == DirectColor) {
- ndef = miExpandDirectColors(pmap, ndef, pdefs, directDefs);
- pdefs = directDefs;
- }
-
- writeColormap = scrninfp->vtSema;
- if (DGAScreenAvailable(pmap->pScreen)) {
- writeColormap = writeColormap ||
- (DGAGetDirectMode(scrnIndex) &&
- !(DGAGetFlags(scrnIndex) & XF86DGADirectColormap)) ||
- (DGAGetFlags(scrnIndex) & XF86DGAHasColormap);
- }
-
- if (writeColormap)
- hwp->enablePalette(hwp);
-
- for (i = 0; i < ndef; i++) {
- if (pdefs[i].pixel == overscan) {
- new_overscan = TRUE;
- }
- cmap = &(hwp->ModeReg.DAC[pdefs[i].pixel * 3]);
- if (scrninfp->rgbBits == 8) {
- cmap[0] = pdefs[i].red >> 8;
- cmap[1] = pdefs[i].green >> 8;
- cmap[2] = pdefs[i].blue >> 8;
- }
- else {
- cmap[0] = pdefs[i].red >> 10;
- cmap[1] = pdefs[i].green >> 10;
- cmap[2] = pdefs[i].blue >> 10;
- }
-#if 0
- if (clgd6225Lcd) {
- /* The LCD doesn't like white */
- if (cmap[0] == 63)
- cmap[0] = 62;
- if (cmap[1] == 63)
- cmap[1] = 62;
- if (cmap[2] == 63)
- cmap[2] = 62;
- }
-#endif
-
- if (writeColormap) {
- if (hwp->ShowOverscan && i == 255)
- continue;
- hwp->writeDacWriteAddr(hwp, pdefs[i].pixel);
- DACDelay(hwp);
- hwp->writeDacData(hwp, cmap[0]);
- DACDelay(hwp);
- hwp->writeDacData(hwp, cmap[1]);
- DACDelay(hwp);
- hwp->writeDacData(hwp, cmap[2]);
- DACDelay(hwp);
- }
- }
- if (new_overscan && !hwp->ShowOverscan) {
- new_overscan = FALSE;
- for (i = 0; i < ndef; i++) {
- if (pdefs[i].pixel == overscan) {
- if ((pdefs[i].red != 0) ||
- (pdefs[i].green != 0) || (pdefs[i].blue != 0)) {
- new_overscan = TRUE;
- tmp_overscan = overscan;
- tmp = &(hwp->ModeReg.DAC[pdefs[i].pixel * 3]);
- }
- break;
- }
- }
- if (new_overscan) {
- /*
- * Find a black pixel, or the nearest match.
- */
- for (i = 255; i >= 0; i--) {
- cmap = &(hwp->ModeReg.DAC[i * 3]);
- if ((cmap[0] == 0) && (cmap[1] == 0) && (cmap[2] == 0)) {
- overscan = i;
- break;
- }
- else {
- if ((cmap[0] < tmp[0]) &&
- (cmap[1] < tmp[1]) && (cmap[2] < tmp[2])) {
- tmp = cmap;
- tmp_overscan = i;
- }
- }
- }
- if (i < 0) {
- overscan = tmp_overscan;
- }
- hwp->ModeReg.Attribute[OVERSCAN] = overscan;
- if (writeColormap) {
- hwp->writeAttr(hwp, OVERSCAN, overscan);
- }
- }
- }
-
- if (writeColormap)
- hwp->disablePalette(hwp);
-}
-
-void
-vgaInstallColormap(pmap)
-ColormapPtr pmap;
-{
- ColormapPtr oldmap = GetInstalledmiColormap(pmap->pScreen);
- int entries;
- Pixel *ppix;
- xrgb *prgb;
- xColorItem *defs;
- int i;
-
- if (pmap == oldmap)
- return;
-
- if ((pmap->pVisual->class | DynamicClass) == DirectColor)
- entries = (pmap->pVisual->redMask |
- pmap->pVisual->greenMask | pmap->pVisual->blueMask) + 1;
- else
- entries = pmap->pVisual->ColormapEntries;
-
- ppix = (Pixel *) malloc(entries * sizeof(Pixel));
- prgb = (xrgb *) malloc(entries * sizeof(xrgb));
- defs = (xColorItem *) malloc(entries * sizeof(xColorItem));
-
- if (oldmap != NOMAPYET)
- WalkTree(pmap->pScreen, TellLostMap, &oldmap->mid);
-
- SetInstalledmiColormap(pmap->pScreen, pmap);
-
- for (i = 0; i < entries; i++)
- ppix[i] = i;
-
- QueryColors(pmap, entries, ppix, prgb, serverClient);
-
- for (i = 0; i < entries; i++) { /* convert xrgbs to xColorItems */
- defs[i].pixel = ppix[i];
- defs[i].red = prgb[i].red;
- defs[i].green = prgb[i].green;
- defs[i].blue = prgb[i].blue;
- defs[i].flags = DoRed | DoGreen | DoBlue;
- }
- pmap->pScreen->StoreColors(pmap, entries, defs);
-
- WalkTree(pmap->pScreen, TellGainedMap, &pmap->mid);
-
- free(ppix);
- free(prgb);
- free(defs);
-}
-
-void
-vgaUninstallColormap(pmap)
-ColormapPtr pmap;
-{
-
- ColormapPtr defColormap;
-
- if (pmap != GetInstalledmiColormap(pmap->pScreen))
- return;
-
- dixLookupResourceByType((void **) &defColormap,
- pmap->pScreen->defColormap, RT_COLORMAP,
- serverClient, DixInstallAccess);
-
- if (defColormap == GetInstalledmiColormap(pmap->pScreen))
- return;
-
- (*pmap->pScreen->InstallColormap) (defColormap);
-}
-
-void
-vgaHandleColormaps(ScreenPtr pScreen, ScrnInfoPtr scrnp)
-{
- if (scrnp->bitsPerPixel > 1) {
- if (scrnp->bitsPerPixel <= 8) { /* For 8bpp SVGA and VGA16 */
- pScreen->InstallColormap = vgaInstallColormap;
- pScreen->UninstallColormap = vgaUninstallColormap;
- pScreen->ListInstalledColormaps = vgaListInstalledColormaps;
- pScreen->StoreColors = vgaStoreColors;
- }
- }
-}
diff --git a/xorg-server/hw/xquartz/xpr/dri.c b/xorg-server/hw/xquartz/xpr/dri.c
index 014709b04..0f1904738 100644
--- a/xorg-server/hw/xquartz/xpr/dri.c
+++ b/xorg-server/hw/xquartz/xpr/dri.c
@@ -138,12 +138,6 @@ DRIFinishScreenInit(ScreenPtr pScreen)
DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
/* Wrap DRI support */
- pDRIPriv->wrap.ValidateTree = pScreen->ValidateTree;
- pScreen->ValidateTree = DRIValidateTree;
-
- pDRIPriv->wrap.PostValidateTree = pScreen->PostValidateTree;
- pScreen->PostValidateTree = DRIPostValidateTree;
-
pDRIPriv->wrap.WindowExposures = pScreen->WindowExposures;
pScreen->WindowExposures = DRIWindowExposures;
@@ -624,51 +618,6 @@ DRICopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
pScreen->CopyWindow = DRICopyWindow;
}
-int
-DRIValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind)
-{
- ScreenPtr pScreen = pParent->drawable.pScreen;
- DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
- int returnValue;
-
- /* unwrap */
- pScreen->ValidateTree = pDRIPriv->wrap.ValidateTree;
-
- /* call lower layers */
- returnValue = (*pScreen->ValidateTree)(pParent, pChild, kind);
-
- /* rewrap */
- pScreen->ValidateTree = DRIValidateTree;
-
- return returnValue;
-}
-
-void
-DRIPostValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind)
-{
- ScreenPtr pScreen;
- DRIScreenPrivPtr pDRIPriv;
-
- if (pParent) {
- pScreen = pParent->drawable.pScreen;
- }
- else {
- pScreen = pChild->drawable.pScreen;
- }
- pDRIPriv = DRI_SCREEN_PRIV(pScreen);
-
- if (pDRIPriv->wrap.PostValidateTree) {
- /* unwrap */
- pScreen->PostValidateTree = pDRIPriv->wrap.PostValidateTree;
-
- /* call lower layers */
- (*pScreen->PostValidateTree)(pParent, pChild, kind);
-
- /* rewrap */
- pScreen->PostValidateTree = DRIPostValidateTree;
- }
-}
-
void
DRIClipNotify(WindowPtr pWin, int dx, int dy)
{
diff --git a/xorg-server/hw/xquartz/xpr/dri.h b/xorg-server/hw/xquartz/xpr/dri.h
index 70cb8b6d6..4476b06af 100644
--- a/xorg-server/hw/xquartz/xpr/dri.h
+++ b/xorg-server/hw/xquartz/xpr/dri.h
@@ -53,8 +53,6 @@ typedef void (*ClipNotifyPtr)(WindowPtr, int, int);
typedef struct {
WindowExposuresProcPtr WindowExposures;
CopyWindowProcPtr CopyWindow;
- ValidateTreeProcPtr ValidateTree;
- PostValidateTreeProcPtr PostValidateTree;
ClipNotifyProcPtr ClipNotify;
} DRIWrappedFuncsRec, *DRIWrappedFuncsPtr;
@@ -107,12 +105,6 @@ DRIGetWrappedFuncs(ScreenPtr pScreen);
extern void
DRICopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
-extern int
-DRIValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind);
-
-extern void
-DRIPostValidateTree(WindowPtr pParent, WindowPtr pChild, VTKind kind);
-
extern void
DRIClipNotify(WindowPtr pWin, int dx, int dy);
diff --git a/xorg-server/hw/xwayland/xwayland.h b/xorg-server/hw/xwayland/xwayland.h
index fc6855044..60b0c2964 100644
--- a/xorg-server/hw/xwayland/xwayland.h
+++ b/xorg-server/hw/xwayland/xwayland.h
@@ -27,7 +27,6 @@
#define XWAYLAND_H
#include <dix-config.h>
-#include <xorg-server.h>
#include <stdio.h>
#include <unistd.h>
diff --git a/xorg-server/include/os.h b/xorg-server/include/os.h
index 0cbb9288e..e4ec4b1b8 100644
--- a/xorg-server/include/os.h
+++ b/xorg-server/include/os.h
@@ -67,15 +67,11 @@ SOFTWARE.
typedef struct _FontPathRec *FontPathPtr;
typedef struct _NewClientRec *NewClientPtr;
-#ifndef xalloc
+#ifndef xnfalloc
#define xnfalloc(size) XNFalloc((unsigned long)(size))
#define xnfcalloc(_num, _size) XNFcalloc((unsigned long)(_num)*(unsigned long)(_size))
#define xnfrealloc(ptr, size) XNFrealloc((void *)(ptr), (unsigned long)(size))
-#define xalloc(size) Xalloc((unsigned long)(size))
-#define xcalloc(_num, _size) Xcalloc((unsigned long)(_num)*(unsigned long)(_size))
-#define xrealloc(ptr, size) Xrealloc((void *)(ptr), (unsigned long)(size))
-#define xfree(ptr) Xfree((void *)(ptr))
#define xstrdup(s) Xstrdup(s)
#define xnfstrdup(s) XNFstrdup(s)
#endif
@@ -214,37 +210,6 @@ extern _X_EXPORT int set_font_authorizations(char **authorizations,
int *authlen,
void *client);
-#ifndef _HAVE_XALLOC_DECLS
-#define _HAVE_XALLOC_DECLS
-
-/*
- * Use malloc(3) instead.
- */
-extern _X_EXPORT void *
-Xalloc(unsigned long /*amount */ ) _X_DEPRECATED;
-
-/*
- * Use calloc(3) instead
- */
-extern _X_EXPORT void *
-Xcalloc(unsigned long /*amount */ ) _X_DEPRECATED;
-
-/*
- * Use realloc(3) instead
- */
-extern _X_EXPORT void *
-Xrealloc(void * /*ptr */ , unsigned long /*amount */ )
- _X_DEPRECATED;
-
-/*
- * Use free(3) instead
- */
-extern _X_EXPORT void
-Xfree(void * /*ptr */ )
- _X_DEPRECATED;
-
-#endif
-
/*
* This function malloc(3)s buffer, terminating the server if there is not
* enough memory.
@@ -415,9 +380,6 @@ typedef struct sockaddr *sockaddrPtr;
extern _X_EXPORT int
InvalidHost(sockaddrPtr /*saddr */ , int /*len */ , ClientPtr client);
-extern _X_EXPORT int
-LocalClientCred(ClientPtr, int *, int *);
-
#define LCC_UID_SET (1 << 0)
#define LCC_GID_SET (1 << 1)
#define LCC_PID_SET (1 << 2)
diff --git a/xorg-server/include/servermd.h b/xorg-server/include/servermd.h
index 0132d67bf..c88a5428d 100644
--- a/xorg-server/include/servermd.h
+++ b/xorg-server/include/servermd.h
@@ -47,7 +47,10 @@ SOFTWARE.
#ifndef SERVERMD_H
#define SERVERMD_H 1
-#include "dix-config.h"
+#if !defined(_DIX_CONFIG_H_) && !defined(_XORG_SERVER_H_)
+#error Drivers must include xorg-server.h before any other xserver headers
+#error xserver code must include dix-config.h before any other headers
+#endif
#if X_BYTE_ORDER == X_LITTLE_ENDIAN
#define IMAGE_BYTE_ORDER LSBFirst
diff --git a/xorg-server/include/xorg-server.h.in b/xorg-server/include/xorg-server.h.in
index 8bf9d38f2..4cb94875c 100644
--- a/xorg-server/include/xorg-server.h.in
+++ b/xorg-server/include/xorg-server.h.in
@@ -16,6 +16,10 @@
#ifndef _XORG_SERVER_H_
#define _XORG_SERVER_H_
+#ifdef HAVE_XORG_CONFIG_H
+#error Include xorg-config.h when building the X server
+#endif
+
/* Support BigRequests extension */
#undef BIGREQS
@@ -227,4 +231,7 @@
/* Ask fontsproto to make font path element names const */
#define FONT_PATH_ELEMENT_NAME_CONST 1
+/* byte order */
+#undef X_BYTE_ORDER
+
#endif /* _XORG_SERVER_H_ */
diff --git a/xorg-server/mi/mi.h b/xorg-server/mi/mi.h
index feba5cb0c..d5a5ba374 100644
--- a/xorg-server/mi/mi.h
+++ b/xorg-server/mi/mi.h
@@ -515,9 +515,6 @@ extern _X_EXPORT void miMarkUnrealizedWindow(WindowPtr /*pChild */ ,
Bool /*fromConfigure */
);
-extern _X_EXPORT void miSegregateChildren(WindowPtr pWin, RegionPtr pReg,
- int depth);
-
extern _X_EXPORT WindowPtr miSpriteTrace(SpritePtr pSprite, int x, int y);
extern _X_EXPORT WindowPtr miXYToWindow(ScreenPtr pScreen, SpritePtr pSprite, int x, int y);
diff --git a/xorg-server/mi/micoord.h b/xorg-server/mi/micoord.h
index 481e418c5..c83bffd90 100644
--- a/xorg-server/mi/micoord.h
+++ b/xorg-server/mi/micoord.h
@@ -32,27 +32,7 @@
/* Macros which handle a coordinate in a single register */
-/*
- * Most compilers will convert divisions by 65536 into shifts, if signed
- * shifts exist. If your machine does arithmetic shifts and your compiler
- * can't get it right, add to this line.
- */
-
-/*
- * mips compiler - what a joke - it CSEs the 65536 constant into a reg
- * forcing as to use div instead of shift. Let's be explicit.
- */
-
-#if defined(mips) || \
- defined(sparc) || defined(__sparc64__) || \
- defined(__alpha) || defined(__alpha__) || \
- defined(__i386__) || defined(__i386) || defined(__ia64__) || \
- defined(__s390x__) || defined(__s390__) || \
- defined(__amd64__) || defined(amd64) || defined(__amd64)
#define GetHighWord(x) (((int) (x)) >> 16)
-#else
-#define GetHighWord(x) (((int) (x)) / 65536)
-#endif
#if IMAGE_BYTE_ORDER == MSBFirst
#define intToCoord(i,x,y) (((x) = GetHighWord(i)), ((y) = (int) ((short) (i))))
diff --git a/xorg-server/mi/miwindow.c b/xorg-server/mi/miwindow.c
index 57de91bab..82c3513c8 100644
--- a/xorg-server/mi/miwindow.c
+++ b/xorg-server/mi/miwindow.c
@@ -746,20 +746,6 @@ miMarkUnrealizedWindow(WindowPtr pChild, WindowPtr pWin, Bool fromConfigure)
}
}
-void
-miSegregateChildren(WindowPtr pWin, RegionPtr pReg, int depth)
-{
- WindowPtr pChild;
-
- for (pChild = pWin->firstChild; pChild; pChild = pChild->nextSib) {
- if (pChild->drawable.depth == depth)
- RegionUnion(pReg, pReg, &pChild->borderClip);
-
- if (pChild->firstChild)
- miSegregateChildren(pChild, pReg, depth);
- }
-}
-
WindowPtr
miSpriteTrace(SpritePtr pSprite, int x, int y)
{
diff --git a/xorg-server/miext/shadow/shadow.c b/xorg-server/miext/shadow/shadow.c
index 522e21bd0..0dd3604a7 100644
--- a/xorg-server/miext/shadow/shadow.c
+++ b/xorg-server/miext/shadow/shadow.c
@@ -93,8 +93,6 @@ shadowGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h,
wrap(pBuf, pScreen, GetImage);
}
-#define BACKWARDS_COMPATIBILITY
-
static Bool
shadowCloseScreen(ScreenPtr pScreen)
{
@@ -104,35 +102,12 @@ shadowCloseScreen(ScreenPtr pScreen)
unwrap(pBuf, pScreen, CloseScreen);
shadowRemove(pScreen, pBuf->pPixmap);
DamageDestroy(pBuf->pDamage);
-#ifdef BACKWARDS_COMPATIBILITY
- RegionUninit(&pBuf->damage); /* bc */
-#endif
if (pBuf->pPixmap)
pScreen->DestroyPixmap(pBuf->pPixmap);
free(pBuf);
return pScreen->CloseScreen(pScreen);
}
-#ifdef BACKWARDS_COMPATIBILITY
-static void
-shadowReportFunc(DamagePtr pDamage, RegionPtr pRegion, void *closure)
-{
- ScreenPtr pScreen = closure;
- shadowBufPtr pBuf = (shadowBufPtr)
- dixLookupPrivate(&pScreen->devPrivates, shadowScrPrivateKey);
-
- /* Register the damaged region, use DamageReportNone below when we
- * want to break BC below... */
- RegionUnion(&pDamage->damage, &pDamage->damage, pRegion);
-
- /*
- * BC hack. In 7.0 and earlier several drivers would inspect the
- * 'damage' member directly, so we have to keep it existing.
- */
- RegionCopy(&pBuf->damage, pRegion);
-}
-#endif
-
Bool
shadowSetup(ScreenPtr pScreen)
{
@@ -147,15 +122,9 @@ shadowSetup(ScreenPtr pScreen)
pBuf = malloc(sizeof(shadowBufRec));
if (!pBuf)
return FALSE;
-#ifdef BACKWARDS_COMPATIBILITY
- pBuf->pDamage = DamageCreate((DamageReportFunc) shadowReportFunc,
- (DamageDestroyFunc) NULL,
- DamageReportRawRegion, TRUE, pScreen, pScreen);
-#else
pBuf->pDamage = DamageCreate((DamageReportFunc) NULL,
(DamageDestroyFunc) NULL,
DamageReportNone, TRUE, pScreen, pScreen);
-#endif
if (!pBuf->pDamage) {
free(pBuf);
return FALSE;
@@ -168,9 +137,6 @@ shadowSetup(ScreenPtr pScreen)
pBuf->pPixmap = 0;
pBuf->closure = 0;
pBuf->randr = 0;
-#ifdef BACKWARDS_COMPATIBILITY
- RegionNull(&pBuf->damage); /* bc */
-#endif
dixSetPrivate(&pScreen->devPrivates, shadowScrPrivateKey, pBuf);
return TRUE;
@@ -230,23 +196,3 @@ shadowRemove(ScreenPtr pScreen, PixmapPtr pPixmap)
RemoveBlockAndWakeupHandlers(shadowBlockHandler, shadowWakeupHandler,
(void *) pScreen);
}
-
-Bool
-shadowInit(ScreenPtr pScreen, ShadowUpdateProc update, ShadowWindowProc window)
-{
- PixmapPtr pPixmap;
-
- pPixmap = pScreen->CreatePixmap(pScreen, pScreen->width, pScreen->height,
- pScreen->rootDepth, 0);
- if (!pPixmap)
- return FALSE;
-
- if (!shadowSetup(pScreen)) {
- pScreen->DestroyPixmap(pPixmap);
- return FALSE;
- }
-
- shadowAdd(pScreen, pPixmap, update, window, SHADOW_ROTATE_0, 0);
-
- return TRUE;
-}
diff --git a/xorg-server/miext/shadow/shadow.h b/xorg-server/miext/shadow/shadow.h
index 421ae96a6..86fa94479 100644
--- a/xorg-server/miext/shadow/shadow.h
+++ b/xorg-server/miext/shadow/shadow.h
@@ -43,12 +43,10 @@ typedef void *(*ShadowWindowProc) (ScreenPtr pScreen,
CARD32 offset,
int mode, CARD32 *size, void *closure);
-/* BC hack: do not move the damage member. see shadow.c for explanation. */
typedef struct _shadowBuf {
DamagePtr pDamage;
ShadowUpdateProc update;
ShadowWindowProc window;
- RegionRec damage;
PixmapPtr pPixmap;
void *closure;
int randr;
@@ -89,10 +87,6 @@ shadowAdd(ScreenPtr pScreen,
extern _X_EXPORT void
shadowRemove(ScreenPtr pScreen, PixmapPtr pPixmap);
-extern _X_EXPORT Bool
-
-shadowInit(ScreenPtr pScreen, ShadowUpdateProc update, ShadowWindowProc window);
-
extern _X_EXPORT void *shadowAlloc(int width, int height, int bpp);
extern _X_EXPORT void
diff --git a/xorg-server/os/access.c b/xorg-server/os/access.c
index 9fcf99a73..125f35f5f 100644
--- a/xorg-server/os/access.c
+++ b/xorg-server/os/access.c
@@ -1008,33 +1008,6 @@ ComputeLocalClient(ClientPtr client)
}
/*
- * Return the uid and gid of a connected local client
- *
- * Used by XShm to test access rights to shared memory segments
- */
-int
-LocalClientCred(ClientPtr client, int *pUid, int *pGid)
-{
- LocalClientCredRec *lcc;
- int ret = GetLocalClientCreds(client, &lcc);
-
- if (ret == 0) {
-#ifdef HAVE_GETZONEID /* only local if in the same zone */
- if ((lcc->fieldsSet & LCC_ZID_SET) && (lcc->zoneid != getzoneid())) {
- FreeLocalClientCreds(lcc);
- return -1;
- }
-#endif
- if ((lcc->fieldsSet & LCC_UID_SET) && (pUid != NULL))
- *pUid = lcc->euid;
- if ((lcc->fieldsSet & LCC_GID_SET) && (pGid != NULL))
- *pGid = lcc->egid;
- FreeLocalClientCreds(lcc);
- }
- return ret;
-}
-
-/*
* Return the uid and all gids of a connected local client
* Allocates a LocalClientCredRec - caller must call FreeLocalClientCreds
*
diff --git a/xorg-server/os/utils.c b/xorg-server/os/utils.c
index ed7581e1c..f3197430a 100644
--- a/xorg-server/os/utils.c
+++ b/xorg-server/os/utils.c
@@ -1090,24 +1090,6 @@ set_font_authorizations(char **authorizations, int *authlen, void *client)
}
void *
-Xalloc(unsigned long amount)
-{
- /*
- * Xalloc used to return NULL when large amount of memory is requested. In
- * order to catch the buggy callers this warning has been added, slated to
- * removal by anyone who touches this code (or just looks at it) in 2011.
- *
- * -- Mikhail Gusarov
- */
- if ((long) amount <= 0)
- ErrorF("Warning: Xalloc: "
- "requesting unpleasantly large amount of memory: %lu bytes.\n",
- amount);
-
- return malloc(amount);
-}
-
-void *
XNFalloc(unsigned long amount)
{
void *ptr = malloc(amount);
@@ -1118,12 +1100,6 @@ XNFalloc(unsigned long amount)
}
void *
-Xcalloc(unsigned long amount)
-{
- return calloc(1, amount);
-}
-
-void *
XNFcalloc(unsigned long amount)
{
void *ret = calloc(1, amount);
@@ -1134,24 +1110,6 @@ XNFcalloc(unsigned long amount)
}
void *
-Xrealloc(void *ptr, unsigned long amount)
-{
- /*
- * Xrealloc used to return NULL when large amount of memory is requested. In
- * order to catch the buggy callers this warning has been added, slated to
- * removal by anyone who touches this code (or just looks at it) in 2011.
- *
- * -- Mikhail Gusarov
- */
- if ((long) amount <= 0)
- ErrorF("Warning: Xrealloc: "
- "requesting unpleasantly large amount of memory: %lu bytes.\n",
- amount);
-
- return realloc(ptr, amount);
-}
-
-void *
XNFrealloc(void *ptr, unsigned long amount)
{
void *ret = realloc(ptr, amount);
@@ -1161,12 +1119,6 @@ XNFrealloc(void *ptr, unsigned long amount)
return ret;
}
-void
-Xfree(void *ptr)
-{
- free(ptr);
-}
-
char *
Xstrdup(const char *s)
{
diff --git a/xorg-server/present/present.c b/xorg-server/present/present.c
index 3aea0d7c6..f488e21cc 100644
--- a/xorg-server/present/present.c
+++ b/xorg-server/present/present.c
@@ -291,14 +291,18 @@ present_window_to_crtc_msc(WindowPtr window, RRCrtcPtr crtc, uint64_t window_msc
if (crtc != window_priv->crtc) {
uint64_t old_ust, old_msc;
- /* The old CRTC may have been turned off, in which case
- * we'll just use whatever previous MSC we'd seen from this CRTC
- */
+ if (window_priv->crtc == PresentCrtcNeverSet) {
+ window_priv->msc_offset = 0;
+ } else {
+ /* The old CRTC may have been turned off, in which case
+ * we'll just use whatever previous MSC we'd seen from this CRTC
+ */
- if (present_get_ust_msc(window->drawable.pScreen, window_priv->crtc, &old_ust, &old_msc) != Success)
- old_msc = window_priv->msc;
+ if (present_get_ust_msc(window->drawable.pScreen, window_priv->crtc, &old_ust, &old_msc) != Success)
+ old_msc = window_priv->msc;
- window_priv->msc_offset += new_msc - old_msc;
+ window_priv->msc_offset += new_msc - old_msc;
+ }
window_priv->crtc = crtc;
}
@@ -395,7 +399,8 @@ present_set_abort_flip(ScreenPtr screen)
present_set_tree_pixmap(screen_priv->flip_window,
(*screen->GetScreenPixmap)(screen));
- present_set_tree_pixmap(screen->root, (*screen->GetScreenPixmap)(screen));
+ if (screen->root)
+ present_set_tree_pixmap(screen->root, (*screen->GetScreenPixmap)(screen));
screen_priv->flip_pending->abort_flip = TRUE;
}
@@ -725,7 +730,7 @@ present_pixmap(WindowPtr window,
if (!pixmap)
target_crtc = window_priv->crtc;
- if (!target_crtc)
+ if (!target_crtc || target_crtc == PresentCrtcNeverSet)
target_crtc = present_get_crtc(window);
}
diff --git a/xorg-server/present/present_priv.h b/xorg-server/present/present_priv.h
index d8569a2b6..f5c1652d1 100644
--- a/xorg-server/present/present_priv.h
+++ b/xorg-server/present/present_priv.h
@@ -134,6 +134,8 @@ typedef struct present_window_priv {
struct xorg_list notifies;
} present_window_priv_rec, *present_window_priv_ptr;
+#define PresentCrtcNeverSet ((RRCrtcPtr) 1)
+
extern DevPrivateKeyRec present_window_private_key;
static inline present_window_priv_ptr
diff --git a/xorg-server/present/present_screen.c b/xorg-server/present/present_screen.c
index 25ef6818d..2f91ac7dc 100644
--- a/xorg-server/present/present_screen.c
+++ b/xorg-server/present/present_screen.c
@@ -45,6 +45,7 @@ present_get_window_priv(WindowPtr window, Bool create)
return NULL;
xorg_list_init(&window_priv->vblank);
xorg_list_init(&window_priv->notifies);
+ window_priv->crtc = PresentCrtcNeverSet;
dixSetPrivate(&window->devPrivates, &present_window_private_key, window_priv);
return window_priv;
}
diff --git a/xorg-server/randr/rrpointer.c b/xorg-server/randr/rrpointer.c
index eb6b6770c..b301d050d 100644
--- a/xorg-server/randr/rrpointer.c
+++ b/xorg-server/randr/rrpointer.c
@@ -77,21 +77,22 @@ RRPointerToNearestCrtc(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y,
if (x < crtc->x)
dx = crtc->x - x;
- else if (x > crtc->x + scan_width)
- dx = x - (crtc->x + scan_width);
+ else if (x > crtc->x + scan_width - 1)
+ dx = crtc->x + (scan_width - 1) - x;
else
dx = 0;
if (y < crtc->y)
dy = crtc->y - y;
- else if (y > crtc->y + scan_height)
- dy = y - (crtc->y + scan_height);
+ else if (y > crtc->y + scan_height - 1)
+ dy = crtc->y + (scan_height - 1) - y;
else
dy = 0;
- dist = dx + dy;
+ dist = dx * dx + dy * dy;
if (!nearest || dist < best) {
nearest = crtc;
best_dx = dx;
best_dy = dy;
+ best = dist;
}
}
if (best_dx || best_dy)
diff --git a/xorg-server/render/picture.c b/xorg-server/render/picture.c
index 7da93102b..58535d475 100644
--- a/xorg-server/render/picture.c
+++ b/xorg-server/render/picture.c
@@ -1332,87 +1332,6 @@ SetPictureTransform(PicturePtr pPicture, PictTransform * transform)
return Success;
}
-void
-CopyPicture(PicturePtr pSrc, Mask mask, PicturePtr pDst)
-{
- PictureScreenPtr ps = GetPictureScreen(pSrc->pDrawable->pScreen);
- Mask origMask = mask;
-
- pDst->serialNumber |= GC_CHANGE_SERIAL_BIT;
- pDst->stateChanges |= mask;
-
- while (mask) {
- Mask bit = lowbit(mask);
-
- switch (bit) {
- case CPRepeat:
- pDst->repeat = pSrc->repeat;
- pDst->repeatType = pSrc->repeatType;
- break;
- case CPAlphaMap:
- if (pSrc->alphaMap &&
- pSrc->alphaMap->pDrawable->type == DRAWABLE_PIXMAP)
- pSrc->alphaMap->refcnt++;
- if (pDst->alphaMap)
- FreePicture((void *) pDst->alphaMap, (XID) 0);
- pDst->alphaMap = pSrc->alphaMap;
- break;
- case CPAlphaXOrigin:
- pDst->alphaOrigin.x = pSrc->alphaOrigin.x;
- break;
- case CPAlphaYOrigin:
- pDst->alphaOrigin.y = pSrc->alphaOrigin.y;
- break;
- case CPClipXOrigin:
- pDst->clipOrigin.x = pSrc->clipOrigin.x;
- break;
- case CPClipYOrigin:
- pDst->clipOrigin.y = pSrc->clipOrigin.y;
- break;
- case CPClipMask:
- switch (pSrc->clientClipType) {
- case CT_NONE:
- (*ps->ChangePictureClip) (pDst, CT_NONE, NULL, 0);
- break;
- case CT_REGION:
- if (!pSrc->clientClip) {
- (*ps->ChangePictureClip) (pDst, CT_NONE, NULL, 0);
- }
- else {
- RegionPtr clientClip;
- RegionPtr srcClientClip = (RegionPtr) pSrc->clientClip;
-
- clientClip = RegionCreate(RegionExtents(srcClientClip),
- RegionNumRects(srcClientClip));
- (*ps->ChangePictureClip) (pDst, CT_REGION, clientClip, 0);
- }
- break;
- default:
- /* XXX: CT_PIXMAP unimplemented */
- break;
- }
- break;
- case CPGraphicsExposure:
- pDst->graphicsExposures = pSrc->graphicsExposures;
- break;
- case CPPolyEdge:
- pDst->polyEdge = pSrc->polyEdge;
- break;
- case CPPolyMode:
- pDst->polyMode = pSrc->polyMode;
- break;
- case CPDither:
- break;
- case CPComponentAlpha:
- pDst->componentAlpha = pSrc->componentAlpha;
- break;
- }
- mask &= ~bit;
- }
-
- (*ps->ChangePicture) (pDst, origMask);
-}
-
static void
ValidateOnePicture(PicturePtr pPicture)
{
diff --git a/xorg-server/render/picturestr.h b/xorg-server/render/picturestr.h
index 8c8100d81..1278f620a 100644
--- a/xorg-server/render/picturestr.h
+++ b/xorg-server/render/picturestr.h
@@ -476,9 +476,6 @@ extern _X_EXPORT int
SetPictureTransform(PicturePtr pPicture, PictTransform * transform);
extern _X_EXPORT void
- CopyPicture(PicturePtr pSrc, Mask mask, PicturePtr pDst);
-
-extern _X_EXPORT void
ValidatePicture(PicturePtr pPicture);
extern _X_EXPORT int
diff --git a/xorg-server/xkb/xkbEvents.c b/xorg-server/xkb/xkbEvents.c
index 210d8ebe4..cc9a535d7 100644
--- a/xorg-server/xkb/xkbEvents.c
+++ b/xorg-server/xkb/xkbEvents.c
@@ -237,7 +237,6 @@ XkbSendStateNotify(DeviceIntPtr kbd, xkbStateNotify * pSN)
while (interest) {
if ((!interest->client->clientGone) &&
- (interest->client->requestVector != InitialVector) &&
(interest->client->xkbClientFlags & _XkbClientInitialized) &&
(interest->stateNotifyMask & changed)) {
pSN->sequenceNumber = interest->client->sequence;
@@ -400,7 +399,6 @@ XkbSendControlsNotify(DeviceIntPtr kbd, xkbControlsNotify * pCN)
pCN->numGroups = xkbi->desc->ctrls->num_groups;
while (interest) {
if ((!interest->client->clientGone) &&
- (interest->client->requestVector != InitialVector) &&
(interest->client->xkbClientFlags & _XkbClientInitialized) &&
(interest->ctrlsNotifyMask & changedControls)) {
if (!initialized) {
@@ -447,7 +445,6 @@ XkbSendIndicatorNotify(DeviceIntPtr kbd, int xkbType, xkbIndicatorNotify * pEv)
changed = pEv->changed;
while (interest) {
if ((!interest->client->clientGone) &&
- (interest->client->requestVector != InitialVector) &&
(interest->client->xkbClientFlags & _XkbClientInitialized) &&
(((xkbType == XkbIndicatorStateNotify) &&
(interest->iStateNotifyMask & changed)) ||
@@ -528,7 +525,6 @@ XkbHandleBell(BOOL force,
initialized = 0;
while (interest) {
if ((!interest->client->clientGone) &&
- (interest->client->requestVector != InitialVector) &&
(interest->client->xkbClientFlags & _XkbClientInitialized) &&
(interest->bellNotifyMask)) {
if (!initialized) {
@@ -581,7 +577,6 @@ XkbSendAccessXNotify(DeviceIntPtr kbd, xkbAccessXNotify * pEv)
db_delay = pEv->debounceDelay;
while (interest) {
if ((!interest->client->clientGone) &&
- (interest->client->requestVector != InitialVector) &&
(interest->client->xkbClientFlags & _XkbClientInitialized) &&
(interest->accessXNotifyMask & (1 << pEv->detail))) {
if (!initialized) {
@@ -627,7 +622,6 @@ XkbSendNamesNotify(DeviceIntPtr kbd, xkbNamesNotify * pEv)
changedVirtualMods = pEv->changedVirtualMods;
while (interest) {
if ((!interest->client->clientGone) &&
- (interest->client->requestVector != InitialVector) &&
(interest->client->xkbClientFlags & _XkbClientInitialized) &&
(interest->namesNotifyMask & pEv->changed)) {
if (!initialized) {
@@ -671,7 +665,6 @@ XkbSendCompatMapNotify(DeviceIntPtr kbd, xkbCompatMapNotify * pEv)
initialized = 0;
while (interest) {
if ((!interest->client->clientGone) &&
- (interest->client->requestVector != InitialVector) &&
(interest->client->xkbClientFlags & _XkbClientInitialized) &&
(interest->compatNotifyMask)) {
if (!initialized) {
@@ -722,7 +715,6 @@ XkbSendActionMessage(DeviceIntPtr kbd, xkbActionMessage * pEv)
pEv->group = xkbi->state.group;
while (interest) {
if ((!interest->client->clientGone) &&
- (interest->client->requestVector != InitialVector) &&
(interest->client->xkbClientFlags & _XkbClientInitialized) &&
(interest->actionMessageMask)) {
if (!initialized) {
@@ -766,7 +758,6 @@ XkbSendExtensionDeviceNotify(DeviceIntPtr dev,
state = pEv->ledState;
while (interest) {
if ((!interest->client->clientGone) &&
- (interest->client->requestVector != InitialVector) &&
(interest->client->xkbClientFlags & _XkbClientInitialized) &&
(interest->extDevNotifyMask & reason)) {
if (!initialized) {
diff --git a/xorg-server/xkeyboard-config/rules/base.extras.xml.in b/xorg-server/xkeyboard-config/rules/base.extras.xml.in
index 9107c03f2..2bda88ba7 100644
--- a/xorg-server/xkeyboard-config/rules/base.extras.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.extras.xml.in
@@ -815,6 +815,21 @@
</languageList>
</configItem>
</layout>
+ <layout>
+ <configItem>
+ <name>cm</name>
+ <_shortDescription>cm</_shortDescription>
+ <_description>English (Cameroon)</_description>
+ </configItem>
+ <variantList>
+ <variant>
+ <configItem>
+ <name>mmuock</name>
+ <_description>Mmuock</_description>
+ </configItem>
+ </variant>
+ </variantList>
+ </layout>
</layoutList>
<optionList/>
</xkbConfigRegistry>
diff --git a/xorg-server/xkeyboard-config/symbols/cm b/xorg-server/xkeyboard-config/symbols/cm
index 6b7a51854..685ef2afa 100644
--- a/xorg-server/xkeyboard-config/symbols/cm
+++ b/xorg-server/xkeyboard-config/symbols/cm
@@ -324,3 +324,128 @@ xkb_symbols "semicolon_switch_dvorak" {
modifier_map Mod5 { ISO_Level3_Latch };
};
+// EXTRAS:
+
+// ------- begin Mmuock keyboard map ------------------------------------------
+// This layout is used for the Mmuock alphabet as described in the book
+// _The Sound of Mmuock: Orthography_ [isbn: 978-9956-645-17-6]. Mmuock
+// is the language of the Mmuock (local: Muòk) people of Western Cameroon.
+//
+// Author: Tano Fotang <fotang at mmuock dot org>
+// Created: 2014-06-24
+// Version: 1.0
+//
+// CHANGES:
+// 2014-07-06 corrected shifted level3 of <AC11> to quotedbl
+//
+// NOTES:
+// 0. This map is based on the Latin layout for the US keyboard.
+//
+// 1. We use combining diacritical marks to create tone markings. There are 13
+// tones that need to be indicated.
+//
+// 2. When composing Mmuock text, about every fourth symbol is for tone. To
+// facilitate easy and fast input, the combining diacritics are placed on
+// the home row (AC). To reduce the number of key strokes required, the
+// unshifted third level is used. Only 5 of the combining diacritics are not
+// on the AC row; they are in the top number row, AE.
+//
+// 3. Symbols that are used infrequently (`r', `h', `ɛ', `ǝ', etc.) are placed
+// in level3. Additionally, the letter eng (`ŋ'), although commonly used,
+// is found in level3 because it can alternatively be represented by <ng>.
+// (Indeed, the keyman keyboard actually replaces <ng> with `ŋ'.)
+//
+// 4. The unshifted AB10 key (normally assigned to the slash `/') is used as
+// level 3 switch since the slash is not used in the ordinary course of
+// typing Mmuock text.
+//
+// 5. The 'Cameroon Multilingual' keyboard that is defined elsewhere, does not
+// fit our needs because: (a) it is based on a different alphabet, (b) the
+// vast majority of its symbols are not used in Mmuock, and (b) for the few
+// symbols that are shared, the placing of the symbols is not egonomic for
+// typing Mmuock as the _PRIMARY_ language. The aim of this keyboard, is to
+// give priority to symbols that are actually used in the Mmuock alphabet.
+//
+// 6. The following fonts have been found to produce the best results with this
+// keyboard:
+// Family Accuracy
+// DejaVu (except Sans Mono) 9/10
+// Linux Libertine 8/10
+// Ubuntu (except light) 8/10
+// Droid (except sans mono) 7/10
+// Gentium, Gentium Alt 6.5/10
+// In the terminal emulator, the following font variants are most suitable:
+// Ubuntu Mono 9/10
+// Unifont (Medium) 9/10
+// DejaVu Sans Mono 7.5/10
+// Droid Sans Mono 6.5/10
+// These fonts are all freely available.
+//
+// ------the layout-----------
+//
+// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
+// │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & | * │ ( │ ) │ _ │ + ┃ ⌫ Back- ┃
+// AE│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6  ̂│ 7  ̑│ 8  ̍│ 9  ̓│ 0  ̊│ - │ = ┃ space ┃
+// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
+// ┃ ┃ Q │ W │ E Ǝ │ Š R │ T │ Y │ U Ω │ I Ɛ │ O Φ │ P ∏ │ Ø { │ Σ } ┃ Enter ┃
+// AD┃Tab ↹ ┃ q │ w │ e ǝ │ š r │ t │ y │ u ω │ i ɛ │ o φ │ p π │ ø [ │ σ ] ┃ ⏎ ┃
+// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
+// ┃ ┃ A │ S │ D │ F │ G │  ̇ H │ J │ K │ L │ Œ : │ " ” │ Æ | ┃ ┃
+// AC┃Caps ⇬ ┃ a │ s  ̃| d  ̀| f  ̌| g  ̈|  ̣ h │ j  ̆│ k  ̏│ l  ̄│ Œ ; │ ' ’ │ æ \ ┃ ┃
+// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
+// ┃ │ Z │ X │ C │ V │ B │ N ŋ │ M │ < « │ > » │ ? ┃ ┃
+// AB┃Shift ⇧ │ z │ x │ c │ v │ b │ n Ŋ │ m │ , ‹ │ . › │ / ┃Shift ⇧ ┃
+// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
+// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
+// AA┃Ctrl ┃Meta ┃Alt ┃ Space ┃AltGr ⇮┃Menu ┃Ctrl ┃
+// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
+//
+
+partial alphanumeric_keys
+xkb_symbols "mmuock" {
+
+ include "latin"
+ include "level3(ralt_switch)"
+
+ name[Group1]= "Mmuock";
+ key <AE06> { [ 6, asciicircum, U0302, NoSymbol ] }; // tone 10
+ key <AE07> { [ 7, ampersand, U0311, NoSymbol ] }; // tone 12
+ key <AE08> { [ 8, asterisk, U030D, trademark ] }; // tone 13
+ key <AE09> { [ 9, parenleft, U0313, plusminus ] }; // tone 14
+ key <AE10> { [ 0, parenright, U030A, degree ] }; // tone 6
+ key <AD03> { [ e, E, U01DD, U018E ] }; // U01DD = reversed E
+ key <AD04> { [ scaron, Scaron, r, R ] };
+ key <AD07> { [ u, U, Greek_omega, Greek_OMEGA ] };
+ key <AD08> { [ i, I, U025B, U0190 ] }; // U025B = open E
+ key <AD09> { [ o, O, Greek_phi, Greek_PHI ] };
+ key <AD10> { [ p, P, Greek_pi, Greek_PI ] };
+ key <AD11> { [ oslash, Ooblique, bracketleft, braceleft ] };
+ key <AD12> { [Greek_sigma, Greek_SIGMA, bracketright, braceright ] };
+ key <AC02> { [ s, S, U0303, NoSymbol ] }; // tone 1
+ key <AC03> { [ d, D, U0300, NoSymbol ] }; // tone 4
+ key <AC04> { [ f, F, U030C, NoSymbol ] }; // tone 5
+ key <AC05> { [ g, G, U0308, NoSymbol ] }; // tone 7
+ key <AC06> { [ U0323, U0307, h, H ] }; // COMBINING DOT BELOW, ABOVE
+ key <AC07> { [ j, J, U0306, NoSymbol ] }; // tone 9
+ key <AC08> { [ k, K, U030F, NoSymbol ] }; // tone 11
+ key <AC09> { [ l, L, U0304, NoSymbol ] }; // tone 0
+ key <AC10> { [ oe, OE, semicolon, colon ] };
+ key <AC11> { [ U0301, U030B, apostrophe, quotedbl ] }; // tone 3, 8
+ key <AB06> { [ n, N, eng, ENG ] };
+ key <AB08> { [ comma, less, guillemotleft, U2039 ] };
+ key <AB09> { [ period, greater, guillemotright, U203A ] };
+ key <BKSL> { [ ae, AE, backslash, bar ] };
+
+ include "cm(solidus_switch)"
+};
+
+// use slash as special key for switching to level3
+partial hidden modifier_keys
+xkb_symbols "solidus_switch" {
+ key <AB10> {
+ symbols[Group1] = [ ISO_Level3_Latch, question, slash, NoSymbol ]
+ };
+ modifier_map Mod5 { ISO_Level3_Latch };
+};
+// ------- end Mmuock keyboard map --------------------------------------------
+
diff --git a/xorg-server/xkeyboard-config/symbols/md b/xorg-server/xkeyboard-config/symbols/md
index cd3430beb..f890233b0 100644
--- a/xorg-server/xkeyboard-config/symbols/md
+++ b/xorg-server/xkeyboard-config/symbols/md
@@ -11,11 +11,11 @@ xkb_symbols "basic" {
// │ ~ │ ! │ " │ # │ ; │ % │ : │ ? │ * │ ( ̣ │ ) │ -- │ + ┃ ⌫ Back ┃
// │ ` │ 1 │ 2 @ │ 3 │ 4 $ │ 5 € │ 6 ^ │ 7 & │ 8 │ 9 │ 0 │ - │ = ┃ space ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
-// ┃ ┃ Ţ Q │ Ê W │ E │ R │ T │ Y │ U │ I │ O │ P │ Ö { │ Ü } ┃ Enter ┃
+// ┃ ┃ Ţ Q │ Ê W │ E │ R │ T │ Y │ U │ İ │ O │ P │ Ö { │ Ü } ┃ Enter ┃
// ┃Tab ↹ ┃ ţ q │ ê w │ e │ r │ t │ y │ u │ i │ o │ p │ ö [ │ ü ] ┃ ⏎ ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
// ┃ ┃ A │ S │ D │ F │ G │ H │ J │ K │ L │Ş │I │ / ┃ ┃
-// ┃Caps ⇬ ┃ a │ s │ d │ f │ g │ h │ j │ k │ l │ş │ı │ \ ┃ ┃
+// ┃Caps ⇬ ┃ a │ s │ d │ f │ g │ h │ j │ k │ l │ş │ı' │ \ ┃ ┃
// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃ │ Z │ Ç X │ C │ V │ B │ N │ M │Ä │< │> ┃ ┃
// ┃Shift ⇧ │ z │ ç x │ c │ v │ b │ n │ m │ä │, │. ┃Shift ⇧ ┃
@@ -75,7 +75,7 @@ xkb_symbols "gag" {
key <AB01> { [ z, Z ] };
key <AB02> { [ ccedilla, Ccedilla, x, X ] };
- key <AB03> { [ c, Ccedilla ] };
+ key <AB03> { [ c, C ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N ] };