aboutsummaryrefslogtreecommitdiff
path: root/xorg-server
diff options
context:
space:
mode:
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 ] };