#define NEED_EVENTS
#include "X.h"
#include "Xproto.h"
#include "misc.h"
#include "os.h"
#include "dixstruct.h"
#include "extnsionst.h"
#define _MITMISC_SERVER_
#include "mitmiscstr.h"
#include "modinit.h"
extern Bool permitOldBugs;
#if 0
static unsigned char MITReqCode;
#endif
static void MITResetProc(
ExtensionEntry *
);
static DISPATCH_PROC(ProcMITDispatch);
static DISPATCH_PROC(ProcMITGetBugMode);
static DISPATCH_PROC(ProcMITSetBugMode);
static DISPATCH_PROC(SProcMITDispatch);
static DISPATCH_PROC(SProcMITGetBugMode);
static DISPATCH_PROC(SProcMITSetBugMode);
void
MITMiscExtensionInit(INITARGS)
{
#if 0
ExtensionEntry *extEntry;
if ((extEntry = AddExtension(MITMISCNAME, 0, 0,
ProcMITDispatch, SProcMITDispatch,
MITResetProc, StandardMinorOpcode)) != 0)
MITReqCode = (unsigned char)extEntry->base;
#else
(void) AddExtension(MITMISCNAME, 0, 0,
ProcMITDispatch, SProcMITDispatch,
MITResetProc, StandardMinorOpcode);
#endif
}
static void
MITResetProc (extEntry)
ExtensionEntry *extEntry;
{
}
static int
ProcMITSetBugMode(client)
register ClientPtr client;
{
REQUEST(xMITSetBugModeReq);
REQUEST_SIZE_MATCH(xMITSetBugModeReq);
if ((stuff->onOff != xTrue) && (stuff->onOff != xFalse))
{
client->errorValue = stuff->onOff;
return BadValue;
}
permitOldBugs = stuff->onOff;
return(client->noClientException);
}
static int
ProcMITGetBugMode(client)
register ClientPtr client;
{
xMITGetBugModeReply rep;
register int n;
REQUEST_SIZE_MATCH(xMITGetBugModeReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequenceNumber = client->sequence;
rep.onOff = permitOldBugs;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
}
WriteToClient(client, sizeof(xMITGetBugModeReply), (char *)&rep);
return(client->noClientException);
}
static int
ProcMITDispatch (client)
register ClientPtr client;
{
REQUEST(xReq);
switch (stuff->data)
{
case X_MITSetBugMode:
return ProcMITSetBugMode(client);
case X_MITGetBugMode:
return ProcMITGetBugMode(client);
default:
return BadRequest;
}
}
static int
SProcMITSetBugMode(client)
register ClientPtr client;
{
register int n;
REQUEST(xMITSetBugModeReq);
swaps(&stuff->length, n);
return ProcMITSetBugMode(client);
}
static int
SProcMITGetBugMode(client)
register ClientPtr client;
{
register int n;
REQUEST(xMITGetBugModeReq);
swaps(&stuff->length, n);
return ProcMITGetBugMode(client);
}
static int
SProcMITDispatch (client)
register ClientPtr client;
{
REQUEST(xReq);
switch (stuff->data)
{
case X_MITSetBugMode:
return SProcMITSetBugMode(client);
case X_MITGetBugMode:
return SProcMITGetBugMode(client);
default:
return BadRequest;
}
}