Annotation of researchv9/X11/src/X.V11R1/server/dix/swapreq.c, revision 1.1

1.1     ! root        1: /************************************************************
        !             2: Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
        !             3: and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
        !             4: 
        !             5:                         All Rights Reserved
        !             6: 
        !             7: Permission to use, copy, modify, and distribute this software and its 
        !             8: documentation for any purpose and without fee is hereby granted, 
        !             9: provided that the above copyright notice appear in all copies and that
        !            10: both that copyright notice and this permission notice appear in 
        !            11: supporting documentation, and that the names of Digital or MIT not be
        !            12: used in advertising or publicity pertaining to distribution of the
        !            13: software without specific, written prior permission.  
        !            14: 
        !            15: DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
        !            16: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
        !            17: DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
        !            18: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
        !            19: WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
        !            20: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
        !            21: SOFTWARE.
        !            22: 
        !            23: ********************************************************/
        !            24: 
        !            25: /* $Header: swapreq.c,v 1.26 87/08/14 22:40:54 newman Exp $ */
        !            26: 
        !            27: #include "X.h"
        !            28: #define NEED_EVENTS
        !            29: #include "Xproto.h"
        !            30: #include "Xprotostr.h"
        !            31: #include "misc.h"
        !            32: #include "dixstruct.h"
        !            33: 
        !            34: extern int (* ProcVector[256]) ();
        !            35: extern void (* EventSwapVector[128]) ();  /* for SendEvent */
        !            36: 
        !            37: /* Thanks to Jack Palevich for testing and subsequently rewriting all this */
        !            38: 
        !            39: #define LengthRestB(stuff) \
        !            40:     ((stuff->length << 2) - sizeof(*stuff))
        !            41: 
        !            42: #define LengthRestS(stuff) \
        !            43:     ((stuff->length << 1)  - (sizeof(*stuff) >> 1))
        !            44: 
        !            45: #define LengthRestL(stuff) \
        !            46:     (stuff->length  - (sizeof(*stuff) >> 2))
        !            47: 
        !            48: #define SwapRestS(stuff) \
        !            49:     SwapShorts(stuff + 1, LengthRestS(stuff))
        !            50: 
        !            51: #define SwapRestL(stuff) \
        !            52:     SwapLongs(stuff + 1, LengthRestL(stuff))
        !            53: 
        !            54: 
        !            55: /* The following is used for all requests that have
        !            56:    no fields to be swapped (except "length") */
        !            57: int
        !            58: SProcSimpleReq(client)
        !            59:        register ClientPtr client;
        !            60: {
        !            61:     register char n;
        !            62: 
        !            63:     REQUEST(xReq);
        !            64:     swaps(&stuff->length, n);
        !            65:     return(*ProcVector[stuff->reqType])(client);
        !            66: }
        !            67: 
        !            68: /* The following is used for all requests that have
        !            69:    only a single 32-bit field to be swapped, coming
        !            70:    right after the "length" field */
        !            71: int
        !            72: SProcResourceReq(client)
        !            73:        register ClientPtr client;
        !            74: {
        !            75:     register char n;
        !            76: 
        !            77:     REQUEST(xResourceReq);
        !            78:     swaps(&stuff->length, n);
        !            79:     swapl(&stuff->id, n);
        !            80:     return(*ProcVector[stuff->reqType])(client);
        !            81: }
        !            82: 
        !            83: int
        !            84: SProcCreateWindow(client)
        !            85:     register ClientPtr client;
        !            86: {
        !            87:     register char n;
        !            88: 
        !            89:     REQUEST(xCreateWindowReq);
        !            90:     swaps(&stuff->length, n);
        !            91:     swapl(&stuff->wid, n);
        !            92:     swapl(&stuff->parent, n);
        !            93:     swaps(&stuff->x, n);
        !            94:     swaps(&stuff->y, n);
        !            95:     swaps(&stuff->width, n);
        !            96:     swaps(&stuff->height, n);
        !            97:     swaps(&stuff->borderWidth, n);
        !            98:     swaps(&stuff->class, n);
        !            99:     swapl(&stuff->visual, n);
        !           100:     swapl(&stuff->mask, n);
        !           101:     SwapRestL(stuff);
        !           102:     return((* ProcVector[X_CreateWindow])(client));
        !           103: }
        !           104: 
        !           105: int
        !           106: SProcChangeWindowAttributes(client)
        !           107:     register ClientPtr client;
        !           108: {
        !           109:     register char n;
        !           110: 
        !           111:     REQUEST(xChangeWindowAttributesReq);
        !           112:     swaps(&stuff->length, n);
        !           113:     swapl(&stuff->window, n);
        !           114:     swapl(&stuff->valueMask, n);
        !           115:     SwapRestL(stuff);
        !           116:     return((* ProcVector[X_ChangeWindowAttributes])(client));
        !           117: }
        !           118: 
        !           119: int
        !           120: SProcReparentWindow(client)
        !           121:     register ClientPtr client;
        !           122: {
        !           123:     register char n;
        !           124:     REQUEST(xReparentWindowReq);
        !           125:     swaps(&stuff->length, n);
        !           126:     swapl(&stuff->window, n);
        !           127:     swapl(&stuff->parent, n);
        !           128:     swaps(&stuff->x, n);
        !           129:     swaps(&stuff->y, n);
        !           130:     return((* ProcVector[X_ReparentWindow])(client));
        !           131: }
        !           132: 
        !           133: int
        !           134: SProcConfigureWindow(client)
        !           135:     register ClientPtr client;
        !           136: {
        !           137:     register char n;
        !           138:     REQUEST(xConfigureWindowReq);
        !           139:     swaps(&stuff->length, n);
        !           140:     swapl(&stuff->window, n);
        !           141:     swaps(&stuff->mask, n);
        !           142:     SwapRestL(stuff);
        !           143:     return((* ProcVector[X_ConfigureWindow])(client));
        !           144: 
        !           145: }
        !           146: 
        !           147: 
        !           148: int
        !           149: SProcInternAtom(client)
        !           150:     register ClientPtr client;
        !           151: {
        !           152:     register char n;
        !           153:     REQUEST(xInternAtomReq);
        !           154:     swaps(&stuff->length, n);
        !           155:     swaps(&stuff->nbytes, n);
        !           156:     return((* ProcVector[X_InternAtom])(client));
        !           157: }
        !           158: 
        !           159: int
        !           160: SProcChangeProperty(client)
        !           161:     register ClientPtr client;
        !           162: {
        !           163:     register char n;
        !           164:     REQUEST(xChangePropertyReq);
        !           165:     swaps(&stuff->length, n);
        !           166:     swapl(&stuff->window, n);
        !           167:     swapl(&stuff->property, n);
        !           168:     swapl(&stuff->type, n);
        !           169:     swapl(&stuff->nUnits, n);
        !           170:     switch ( stuff->format ) {
        !           171:         case 8 : break;
        !           172:         case 16:
        !           173:             SwapShorts(stuff + 1, stuff->nUnits);
        !           174:            break;
        !           175:        case 32:
        !           176:            SwapLongs(stuff + 1, stuff->nUnits);
        !           177:            break;
        !           178:        }
        !           179:     return((* ProcVector[X_ChangeProperty])(client));
        !           180: }
        !           181: 
        !           182: int 
        !           183: SProcDeleteProperty(client)
        !           184:     register ClientPtr client;
        !           185: {
        !           186:     register char n;
        !           187:     REQUEST(xDeletePropertyReq);
        !           188:     swaps(&stuff->length, n);
        !           189:     swapl(&stuff->window, n);
        !           190:     swapl(&stuff->property, n);
        !           191:     return((* ProcVector[X_DeleteProperty])(client));
        !           192:               
        !           193: }
        !           194: 
        !           195: int 
        !           196: SProcGetProperty(client)
        !           197:     register ClientPtr client;
        !           198: {
        !           199:     register char n;
        !           200:     REQUEST(xGetPropertyReq);
        !           201:     swaps(&stuff->length, n);
        !           202:     swapl(&stuff->window, n);
        !           203:     swapl(&stuff->property, n);
        !           204:     swapl(&stuff->type, n);
        !           205:     swapl(&stuff->longOffset, n);
        !           206:     swapl(&stuff->longLength, n);
        !           207:     return((* ProcVector[X_GetProperty])(client));
        !           208: }
        !           209: 
        !           210: int
        !           211: SProcSetSelectionOwner(client)
        !           212:     register ClientPtr client;
        !           213: {
        !           214:     register char n;
        !           215:     REQUEST(xSetSelectionOwnerReq);
        !           216:     swaps(&stuff->length, n);
        !           217:     swapl(&stuff->window, n);
        !           218:     swapl(&stuff->selection, n);
        !           219:     swapl(&stuff->time, n);
        !           220:     return((* ProcVector[X_SetSelectionOwner])(client));
        !           221: }
        !           222: 
        !           223: int
        !           224: SProcConvertSelection(client)
        !           225:     register ClientPtr client;
        !           226: {
        !           227:     register char n;
        !           228:     REQUEST(xConvertSelectionReq);
        !           229:     swaps(&stuff->length, n);
        !           230:     swapl(&stuff->requestor, n);
        !           231:     swapl(&stuff->selection, n);
        !           232:     swapl(&stuff->target, n);
        !           233:     swapl(&stuff->property, n);
        !           234:     swapl(&stuff->time, n);
        !           235:     return((* ProcVector[X_ConvertSelection])(client));
        !           236: }
        !           237: 
        !           238: int
        !           239: SProcSendEvent(client)
        !           240:     register ClientPtr client;
        !           241: {
        !           242:     register char n;
        !           243:     xEvent eventT;
        !           244:     void (*proc)();
        !           245:     REQUEST(xSendEventReq);
        !           246:     swaps(&stuff->length, n);
        !           247:     swapl(&stuff->destination, n);
        !           248:     swapl(&stuff->eventMask, n);
        !           249: 
        !           250:     /* Swap event */
        !           251:     proc = EventSwapVector[stuff->event.u.u.type & 0177];
        !           252:     if (!proc)   /* no swapping proc; invalid event type? */
        !           253:        return (BadValue);
        !           254:     (*proc)(&stuff->event, &eventT);
        !           255:     stuff->event = eventT;
        !           256: 
        !           257:     return((* ProcVector[X_SendEvent])(client));
        !           258: }
        !           259: 
        !           260: int
        !           261: SProcGrabPointer(client)
        !           262:     register ClientPtr client;
        !           263: {
        !           264:     register char n;
        !           265:     REQUEST(xGrabPointerReq);
        !           266:     swaps(&stuff->length, n);
        !           267:     swapl(&stuff->grabWindow, n);
        !           268:     swaps(&stuff->eventMask, n);
        !           269:     swapl(&stuff->confineTo, n);
        !           270:     swapl(&stuff->cursor, n);
        !           271:     swapl(&stuff->time, n);
        !           272:     return((* ProcVector[X_GrabPointer])(client));
        !           273: }
        !           274: 
        !           275: int
        !           276: SProcGrabButton(client)
        !           277:     register ClientPtr client;
        !           278: {
        !           279:     register char n;
        !           280:     REQUEST(xGrabButtonReq);
        !           281:     swaps(&stuff->length, n);
        !           282:     swapl(&stuff->grabWindow, n);
        !           283:     swaps(&stuff->eventMask, n);
        !           284:     swapl(&stuff->confineTo, n);
        !           285:     swapl(&stuff->cursor, n);
        !           286:     swaps(&stuff->modifiers, n);
        !           287:     return((* ProcVector[X_GrabButton])(client));
        !           288: }
        !           289: 
        !           290: int
        !           291: SProcUngrabButton(client)
        !           292:     register ClientPtr client;
        !           293: {
        !           294:     register char n;
        !           295:     REQUEST(xUngrabButtonReq);
        !           296:     swaps(&stuff->length, n);
        !           297:     swapl(&stuff->grabWindow, n);
        !           298:     swaps(&stuff->modifiers, n);
        !           299:     return((* ProcVector[X_UngrabButton])(client));
        !           300: }
        !           301: 
        !           302: int
        !           303: SProcChangeActivePointerGrab(client)
        !           304:     register ClientPtr client;
        !           305: {
        !           306:     register char n;
        !           307:     REQUEST(xChangeActivePointerGrabReq);
        !           308:     swaps(&stuff->length, n);
        !           309:     swapl(&stuff->cursor, n);
        !           310:     swapl(&stuff->time, n);
        !           311:     swaps(&stuff->eventMask, n);
        !           312:     return((* ProcVector[X_ChangeActivePointerGrab])(client));
        !           313: }
        !           314: 
        !           315: int
        !           316: SProcGrabKeyboard(client)
        !           317:     register ClientPtr client;
        !           318: {
        !           319:     register char n;
        !           320:     REQUEST(xGrabKeyboardReq);
        !           321:     swaps(&stuff->length, n);
        !           322:     swapl(&stuff->grabWindow, n);
        !           323:     swapl(&stuff->time, n);
        !           324:     return((* ProcVector[X_GrabKeyboard])(client));
        !           325: }
        !           326: 
        !           327: int
        !           328: SProcGrabKey(client)
        !           329:     register ClientPtr client;
        !           330: {
        !           331:     register char n;
        !           332:     REQUEST(xGrabKeyReq);
        !           333:     swaps(&stuff->length, n);
        !           334:     swapl(&stuff->grabWindow, n);
        !           335:     swaps(&stuff->modifiers, n);
        !           336:     return((* ProcVector[X_GrabKey])(client));
        !           337: }
        !           338: 
        !           339: int
        !           340: SProcUngrabKey(client)
        !           341:     register ClientPtr client;
        !           342: {
        !           343:     register char n;
        !           344:     REQUEST(xUngrabKeyReq);
        !           345:     swaps(&stuff->length, n);
        !           346:     swapl(&stuff->grabWindow, n);
        !           347:     swaps(&stuff->modifiers, n);
        !           348:     return((* ProcVector[X_UngrabKey])(client));
        !           349: }
        !           350: 
        !           351: int
        !           352: SProcGetMotionEvents(client)
        !           353:     register ClientPtr client;
        !           354: {
        !           355:     register char n;
        !           356:     REQUEST(xGetMotionEventsReq);
        !           357:     swaps(&stuff->length, n);
        !           358:     swapl(&stuff->window, n);
        !           359:     swapl(&stuff->start, n);
        !           360:     swapl(&stuff->stop, n);
        !           361:     return((* ProcVector[X_GetMotionEvents])(client));
        !           362: }
        !           363: 
        !           364: int
        !           365: SProcTranslateCoords(client)
        !           366:     register ClientPtr client;
        !           367: {
        !           368:     register char n;
        !           369:     REQUEST(xTranslateCoordsReq);
        !           370:     swaps(&stuff->length, n);
        !           371:     swapl(&stuff->srcWid, n);
        !           372:     swapl(&stuff->dstWid, n);
        !           373:     swaps(&stuff->srcX, n);
        !           374:     swaps(&stuff->srcY, n);
        !           375:     return((* ProcVector[X_TranslateCoords])(client));
        !           376: }
        !           377: 
        !           378: int
        !           379: SProcWarpPointer(client)
        !           380:     register ClientPtr client;
        !           381: {
        !           382:     register char n;
        !           383:     REQUEST(xWarpPointerReq);
        !           384:     swaps(&stuff->length, n);
        !           385:     swapl(&stuff->srcWid, n);
        !           386:     swapl(&stuff->dstWid, n);
        !           387:     swaps(&stuff->srcX, n);
        !           388:     swaps(&stuff->srcY, n);
        !           389:     swaps(&stuff->srcWidth, n);
        !           390:     swaps(&stuff->srcHeight, n);
        !           391:     swaps(&stuff->dstX, n);
        !           392:     swaps(&stuff->dstY, n);
        !           393:     return((* ProcVector[X_WarpPointer])(client));
        !           394: }
        !           395: 
        !           396: int
        !           397: SProcSetInputFocus(client)
        !           398:     register ClientPtr client;
        !           399: {
        !           400:     register char n;
        !           401:     REQUEST(xSetInputFocusReq);
        !           402:     swaps(&stuff->length, n);
        !           403:     swapl(&stuff->focus, n);
        !           404:     swapl(&stuff->time, n);
        !           405:     return((* ProcVector[X_SetInputFocus])(client));
        !           406: }
        !           407: 
        !           408: 
        !           409: SProcOpenFont(client)
        !           410:     register ClientPtr client;
        !           411: {
        !           412:     register char n;
        !           413:     REQUEST(xOpenFontReq);
        !           414:     swaps(&stuff->length, n);
        !           415:     swapl(&stuff->fid, n);
        !           416:     swaps(&stuff->nbytes, n);
        !           417:     return((* ProcVector[X_OpenFont])(client));
        !           418: }
        !           419: 
        !           420: int
        !           421: SProcListFonts(client)
        !           422:     register ClientPtr client;
        !           423: {
        !           424:     register char n;
        !           425:     REQUEST(xListFontsReq);
        !           426:     swaps(&stuff->length, n);
        !           427:     swaps(&stuff->maxNames, n);
        !           428:     swaps(&stuff->nbytes, n);
        !           429:     return((* ProcVector[X_ListFonts])(client));
        !           430: }
        !           431: 
        !           432: int
        !           433: SProcListFontsWithInfo(client)
        !           434:     register ClientPtr client;
        !           435: {
        !           436:     register char n;
        !           437:     REQUEST(xListFontsWithInfoReq);
        !           438:     swaps(&stuff->length, n);
        !           439:     swaps(&stuff->maxNames, n);
        !           440:     swaps(&stuff->nbytes, n);
        !           441:     return((* ProcVector[X_ListFontsWithInfo])(client));
        !           442: }
        !           443: 
        !           444: int
        !           445: SProcSetFontPath(client)
        !           446:     register ClientPtr client;
        !           447: {
        !           448:     register char n;
        !           449:     REQUEST(xSetFontPathReq);
        !           450:     swaps(&stuff->length, n);
        !           451:     swaps(&stuff->nFonts, n);
        !           452:     return((* ProcVector[X_SetFontPath])(client));
        !           453: }
        !           454: 
        !           455: int
        !           456: SProcCreatePixmap(client)
        !           457:     register ClientPtr client;
        !           458: {
        !           459:     register char n;
        !           460:     REQUEST(xCreatePixmapReq);
        !           461: 
        !           462:     swaps(&stuff->length, n);
        !           463:     swapl(&stuff->pid, n);
        !           464:     swapl(&stuff->drawable, n);
        !           465:     swaps(&stuff->width, n);
        !           466:     swaps(&stuff->height, n);
        !           467:     return((* ProcVector[X_CreatePixmap])(client));
        !           468: }
        !           469: 
        !           470: int
        !           471: SProcCreateGC(client)
        !           472:     register ClientPtr client;
        !           473: {
        !           474:     register char n;
        !           475:     REQUEST(xCreateGCReq);
        !           476:     swaps(&stuff->length, n);
        !           477:     swapl(&stuff->gc, n);
        !           478:     swapl(&stuff->drawable, n);
        !           479:     swapl(&stuff->mask, n);
        !           480:     SwapRestL(stuff);
        !           481:     return((* ProcVector[X_CreateGC])(client));
        !           482: }
        !           483: 
        !           484: int
        !           485: SProcChangeGC(client)
        !           486:     register ClientPtr client;
        !           487: {
        !           488:     register char n;
        !           489:     REQUEST(xChangeGCReq);
        !           490:     swaps(&stuff->length, n);
        !           491:     swapl(&stuff->gc, n);
        !           492:     swapl(&stuff->mask, n);
        !           493:     SwapRestL(stuff);
        !           494:     return((* ProcVector[X_ChangeGC])(client));
        !           495: }
        !           496: 
        !           497: int
        !           498: SProcCopyGC(client)
        !           499:     register ClientPtr client;
        !           500: {
        !           501:     register char n;
        !           502:     REQUEST(xCopyGCReq);
        !           503:     swaps(&stuff->length, n);
        !           504:     swapl(&stuff->srcGC, n);
        !           505:     swapl(&stuff->dstGC, n);
        !           506:     swapl(&stuff->mask, n);
        !           507:     return((* ProcVector[X_CopyGC])(client));
        !           508: }
        !           509: 
        !           510: int
        !           511: SProcSetDashes(client)
        !           512:     register ClientPtr client;
        !           513: {
        !           514:     register char n;
        !           515:     REQUEST(xSetDashesReq);
        !           516:     swaps(&stuff->length, n);
        !           517:     swapl(&stuff->gc, n);
        !           518:     swaps(&stuff->dashOffset, n);
        !           519:     swaps(&stuff->nDashes, n);
        !           520:     return((* ProcVector[X_SetDashes])(client));
        !           521: 
        !           522: }
        !           523: 
        !           524: int
        !           525: SProcSetClipRectangles(client)
        !           526:     register ClientPtr client;
        !           527: {
        !           528:     register char n;
        !           529:     REQUEST(xSetClipRectanglesReq);
        !           530:     swaps(&stuff->length, n);
        !           531:     swapl(&stuff->gc, n);
        !           532:     swaps(&stuff->xOrigin, n);
        !           533:     swaps(&stuff->yOrigin, n);
        !           534:     SwapRestS(stuff);
        !           535:     return((* ProcVector[X_SetClipRectangles])(client));
        !           536: }
        !           537: 
        !           538: int
        !           539: SProcClearToBackground(client)
        !           540:     register ClientPtr client;
        !           541: {
        !           542:     register char n;
        !           543:     REQUEST(xClearAreaReq);
        !           544:     swaps(&stuff->length, n);
        !           545:     swapl(&stuff->window, n);
        !           546:     swaps(&stuff->x, n);
        !           547:     swaps(&stuff->y, n);
        !           548:     swaps(&stuff->width, n);
        !           549:     swaps(&stuff->height, n);
        !           550:     return((* ProcVector[X_ClearArea])(client));
        !           551: }
        !           552: 
        !           553: int
        !           554: SProcCopyArea(client)
        !           555:     register ClientPtr client;
        !           556: {
        !           557:     register char n;
        !           558:     REQUEST(xCopyAreaReq);
        !           559:     swaps(&stuff->length, n);
        !           560:     swapl(&stuff->srcDrawable, n);
        !           561:     swapl(&stuff->dstDrawable, n);
        !           562:     swapl(&stuff->gc, n);
        !           563:     swaps(&stuff->srcX, n);
        !           564:     swaps(&stuff->srcY, n);
        !           565:     swaps(&stuff->dstX, n);
        !           566:     swaps(&stuff->dstY, n);
        !           567:     swaps(&stuff->width, n);
        !           568:     swaps(&stuff->height, n);
        !           569:     return((* ProcVector[X_CopyArea])(client));
        !           570: }
        !           571: 
        !           572: int
        !           573: SProcCopyPlane(client)
        !           574:     register ClientPtr client;
        !           575: {
        !           576:     register char n;
        !           577:     REQUEST(xCopyPlaneReq);
        !           578:     swaps(&stuff->length, n);
        !           579:     swapl(&stuff->srcDrawable, n);
        !           580:     swapl(&stuff->dstDrawable, n);
        !           581:     swapl(&stuff->gc, n);
        !           582:     swaps(&stuff->srcX, n);
        !           583:     swaps(&stuff->srcY, n);
        !           584:     swaps(&stuff->dstX, n);
        !           585:     swaps(&stuff->dstY, n);
        !           586:     swaps(&stuff->width, n);
        !           587:     swaps(&stuff->height, n);
        !           588:     swapl(&stuff->bitPlane, n);
        !           589:     return((* ProcVector[X_CopyPlane])(client));
        !           590: }
        !           591: 
        !           592: /* The following routine is used for all Poly drawing requests
        !           593:    (except FillPoly, which uses a different request format) */
        !           594: int
        !           595: SProcPoly(client)
        !           596:     register ClientPtr client;
        !           597: {
        !           598:     register char n;
        !           599: 
        !           600:     REQUEST(xPolyPointReq);
        !           601:     swaps(&stuff->length, n);
        !           602:     swapl(&stuff->drawable, n);
        !           603:     swapl(&stuff->gc, n);
        !           604:     SwapRestS(stuff);
        !           605:     return((* ProcVector[stuff->reqType])(client));
        !           606: }
        !           607: 
        !           608: /* cannot use SProcPoly for this one, because xFillPolyReq
        !           609:    is longer than xPolyPointReq, and we don't want to swap
        !           610:    the difference as shorts! */
        !           611: int
        !           612: SProcFillPoly(client)
        !           613:     register ClientPtr client;
        !           614: {
        !           615:     register char n;
        !           616: 
        !           617:     REQUEST(xFillPolyReq);
        !           618:     swaps(&stuff->length, n);
        !           619:     swapl(&stuff->drawable, n);
        !           620:     swapl(&stuff->gc, n);
        !           621:     SwapRestS(stuff);
        !           622:     return((* ProcVector[X_FillPoly])(client));
        !           623: }
        !           624: 
        !           625: int
        !           626: SProcPutImage(client)
        !           627:     register ClientPtr client;
        !           628: {
        !           629:     register char n;
        !           630:     REQUEST(xPutImageReq);
        !           631:     swaps(&stuff->length, n);
        !           632:     swapl(&stuff->drawable, n);
        !           633:     swapl(&stuff->gc, n);
        !           634:     swaps(&stuff->width, n);
        !           635:     swaps(&stuff->height, n);
        !           636:     swaps(&stuff->dstX, n);
        !           637:     swaps(&stuff->dstY, n);
        !           638:     /* Image should already be swapped */
        !           639:     return((* ProcVector[X_PutImage])(client));
        !           640: 
        !           641: }
        !           642: 
        !           643: int
        !           644: SProcGetImage(client)
        !           645:     register ClientPtr client;
        !           646: {
        !           647:     register char n;
        !           648:     REQUEST(xGetImageReq);
        !           649:     swaps(&stuff->length, n);
        !           650:     swapl(&stuff->drawable, n);
        !           651:     swaps(&stuff->x, n);
        !           652:     swaps(&stuff->y, n);
        !           653:     swaps(&stuff->width, n);
        !           654:     swaps(&stuff->height, n);
        !           655:     swapl(&stuff->planeMask, n);
        !           656:     return((* ProcVector[X_GetImage])(client));
        !           657: }
        !           658: 
        !           659: /* ProcPolyText used for both PolyText8 and PolyText16 */
        !           660: 
        !           661: int
        !           662: SProcPolyText(client)
        !           663:     register ClientPtr client;
        !           664: {
        !           665:     register char n;
        !           666:     REQUEST(xPolyTextReq);
        !           667:     swaps(&stuff->length, n);
        !           668:     swapl(&stuff->drawable, n);
        !           669:     swapl(&stuff->gc, n);
        !           670:     swaps(&stuff->x, n);
        !           671:     swaps(&stuff->y, n);
        !           672:     return((* ProcVector[stuff->reqType])(client));
        !           673: }
        !           674: 
        !           675: /* ProcImageText used for both ImageText8 and ImageText16 */
        !           676: 
        !           677: int
        !           678: SProcImageText(client)
        !           679:     register ClientPtr client;
        !           680: {
        !           681:     register char n;
        !           682:     REQUEST(xImageTextReq);
        !           683:     swaps(&stuff->length, n);
        !           684:     swapl(&stuff->drawable, n);
        !           685:     swapl(&stuff->gc, n);
        !           686:     swaps(&stuff->x, n);
        !           687:     swaps(&stuff->y, n);
        !           688:     return((* ProcVector[stuff->reqType])(client));
        !           689: }
        !           690: 
        !           691: int
        !           692: SProcCreateColormap(client)
        !           693:     register ClientPtr client;
        !           694: {
        !           695:     register char n;
        !           696:     REQUEST(xCreateColormapReq);
        !           697:     swaps(&stuff->length, n);
        !           698:     swapl(&stuff->mid, n);
        !           699:     swapl(&stuff->window, n);
        !           700:     swapl(&stuff->visual, n);
        !           701:     return((* ProcVector[X_CreateColormap])(client));
        !           702: }
        !           703: 
        !           704: 
        !           705: int
        !           706: SProcCopyColormapAndFree(client)
        !           707:     register ClientPtr client;
        !           708: {
        !           709:     register char n;
        !           710:     REQUEST(xCopyColormapAndFreeReq);
        !           711:     swaps(&stuff->length, n);
        !           712:     swapl(&stuff->mid, n);
        !           713:     swapl(&stuff->srcCmap, n);
        !           714:     return((* ProcVector[X_CopyColormapAndFree])(client));
        !           715: 
        !           716: }
        !           717: 
        !           718: int
        !           719: SProcAllocColor                (client)
        !           720:     register ClientPtr client;
        !           721: {
        !           722:     register char n;
        !           723:     REQUEST(xAllocColorReq);
        !           724:     swaps(&stuff->length, n);
        !           725:     swapl(&stuff->cmap, n);
        !           726:     swaps(&stuff->red, n);
        !           727:     swaps(&stuff->green, n);
        !           728:     swaps(&stuff->blue, n);
        !           729:     return((* ProcVector[X_AllocColor])(client));
        !           730: }
        !           731: 
        !           732: int
        !           733: SProcAllocNamedColor           (client)
        !           734:     register ClientPtr client;
        !           735: {
        !           736:     register char n;
        !           737: 
        !           738:     REQUEST(xAllocNamedColorReq);
        !           739:     swaps(&stuff->length, n);
        !           740:     swapl(&stuff->cmap, n);
        !           741:     swaps(&stuff->nbytes, n);
        !           742:     return((* ProcVector[X_AllocNamedColor])(client));
        !           743: }
        !           744: 
        !           745: int
        !           746: SProcAllocColorCells           (client)
        !           747:     register ClientPtr client;
        !           748: {
        !           749:     register char n;
        !           750:     REQUEST(xAllocColorCellsReq);
        !           751:     swaps(&stuff->length, n);
        !           752:     swapl(&stuff->cmap, n);
        !           753:     swaps(&stuff->colors, n);
        !           754:     swaps(&stuff->planes, n);
        !           755:     return((* ProcVector[X_AllocColorCells])(client));
        !           756: }
        !           757: 
        !           758: int
        !           759: SProcAllocColorPlanes(client)
        !           760:     register ClientPtr client;
        !           761: {
        !           762:     register char n;
        !           763:     REQUEST(xAllocColorPlanesReq);
        !           764:     swaps(&stuff->length, n);
        !           765:     swapl(&stuff->cmap, n);
        !           766:     swaps(&stuff->colors, n);
        !           767:     swaps(&stuff->red, n);
        !           768:     swaps(&stuff->green, n);
        !           769:     swaps(&stuff->blue, n);
        !           770:     return((* ProcVector[X_AllocColorPlanes])(client));
        !           771: }
        !           772: 
        !           773: int
        !           774: SProcFreeColors          (client)
        !           775:     register ClientPtr client;
        !           776: {
        !           777:     register char n;
        !           778:     REQUEST(xFreeColorsReq);
        !           779:     swaps(&stuff->length, n);
        !           780:     swapl(&stuff->cmap, n);
        !           781:     swapl(&stuff->planeMask, n);
        !           782:     SwapRestL(stuff);
        !           783:     return((* ProcVector[X_FreeColors])(client));
        !           784: 
        !           785: }
        !           786: 
        !           787: int
        !           788: SProcStoreColors               (client)
        !           789:     register ClientPtr client;
        !           790: {
        !           791:     register char n;
        !           792:     xColorItem         *pItem;
        !           793: 
        !           794:     REQUEST(xStoreColorsReq);
        !           795:     swaps(&stuff->length, n);
        !           796:     swapl(&stuff->cmap, n);
        !           797:     pItem = (xColorItem *) &stuff[1];
        !           798:     for(n = 0; n < LengthRestB(stuff)/sizeof(xColorItem); n++)
        !           799:        SwapColorItem(pItem++);
        !           800:     return((* ProcVector[X_StoreColors])(client));
        !           801: }
        !           802: 
        !           803: int
        !           804: SProcStoreNamedColor           (client)
        !           805:     register ClientPtr client;
        !           806: {
        !           807:     register char n;
        !           808:     REQUEST(xStoreNamedColorReq);
        !           809:     swaps(&stuff->length, n);
        !           810:     swapl(&stuff->cmap, n);
        !           811:     swapl(&stuff->pixel, n);
        !           812:     swaps(&stuff->nbytes, n);
        !           813:     return((* ProcVector[X_StoreNamedColor])(client));
        !           814: }
        !           815: 
        !           816: int
        !           817: SProcQueryColors(client)
        !           818:     register ClientPtr client;
        !           819: {
        !           820:     register char n;
        !           821:     REQUEST(xQueryColorsReq);
        !           822:     swaps(&stuff->length, n);
        !           823:     swapl(&stuff->cmap, n);
        !           824:     SwapRestL(stuff);
        !           825:     return((* ProcVector[X_QueryColors])(client));
        !           826: } 
        !           827: 
        !           828: int
        !           829: SProcLookupColor(client)
        !           830:     register ClientPtr client;
        !           831: {
        !           832:     register char n;
        !           833:     REQUEST(xLookupColorReq);
        !           834:     swaps(&stuff->length, n);
        !           835:     swapl(&stuff->cmap, n);
        !           836:     swaps(&stuff->nbytes, n);
        !           837:     return((* ProcVector[X_LookupColor])(client));
        !           838: }
        !           839: 
        !           840: int
        !           841: SProcCreateCursor( client)
        !           842:     register ClientPtr client;
        !           843: {
        !           844:     register char n;
        !           845:     REQUEST(xCreateCursorReq);
        !           846:     swaps(&stuff->length, n);
        !           847:     swapl(&stuff->cid, n);
        !           848:     swapl(&stuff->source, n);
        !           849:     swapl(&stuff->mask, n);
        !           850:     swaps(&stuff->foreRed, n);
        !           851:     swaps(&stuff->foreGreen, n);
        !           852:     swaps(&stuff->foreBlue, n);
        !           853:     swaps(&stuff->backRed, n);
        !           854:     swaps(&stuff->backGreen, n);
        !           855:     swaps(&stuff->backBlue, n);
        !           856:     swaps(&stuff->x, n);
        !           857:     swaps(&stuff->y, n);
        !           858:     return((* ProcVector[X_CreateCursor])(client));
        !           859: }
        !           860: 
        !           861: int
        !           862: SProcCreateGlyphCursor( client)
        !           863:     register ClientPtr client;
        !           864: {
        !           865:     register char n;
        !           866:     REQUEST(xCreateGlyphCursorReq);
        !           867:     swaps(&stuff->length, n);
        !           868:     swapl(&stuff->cid, n);
        !           869:     swapl(&stuff->source, n);
        !           870:     swapl(&stuff->mask, n);
        !           871:     swaps(&stuff->sourceChar, n);
        !           872:     swaps(&stuff->maskChar, n);
        !           873:     swaps(&stuff->foreRed, n);
        !           874:     swaps(&stuff->foreGreen, n);
        !           875:     swaps(&stuff->foreBlue, n);
        !           876:     swaps(&stuff->backRed, n);
        !           877:     swaps(&stuff->backGreen, n);
        !           878:     swaps(&stuff->backBlue, n);
        !           879:     return((* ProcVector[X_CreateGlyphCursor])(client));
        !           880: }
        !           881: 
        !           882: 
        !           883: int
        !           884: SProcRecolorCursor(client)
        !           885:     register ClientPtr client;
        !           886: {
        !           887:     register char n;
        !           888:     REQUEST(xRecolorCursorReq);
        !           889:     swaps(&stuff->length, n);
        !           890:     swapl(&stuff->cursor, n);
        !           891:     swaps(&stuff->foreRed, n);
        !           892:     swaps(&stuff->foreGreen, n);
        !           893:     swaps(&stuff->foreBlue, n);
        !           894:     swaps(&stuff->backRed, n);
        !           895:     swaps(&stuff->backGreen, n);
        !           896:     swaps(&stuff->backBlue, n);
        !           897:     return((* ProcVector[X_RecolorCursor])(client));
        !           898: }
        !           899: 
        !           900: int
        !           901: SProcQueryBestSize   (client)
        !           902:     register ClientPtr client;
        !           903: {
        !           904:     register char n;
        !           905:     REQUEST(xQueryBestSizeReq);
        !           906:     swaps(&stuff->length, n);
        !           907:     swapl(&stuff->drawable, n);
        !           908:     swaps(&stuff->width, n);
        !           909:     swaps(&stuff->height, n);
        !           910:     return((* ProcVector[X_QueryBestSize])(client));
        !           911: 
        !           912: }
        !           913: 
        !           914: int
        !           915: SProcQueryExtension   (client)
        !           916:     register ClientPtr client;
        !           917: {
        !           918:     register char n;
        !           919:     REQUEST(xQueryExtensionReq);
        !           920:     swaps(&stuff->length, n);
        !           921:     swaps(&stuff->nbytes, n);
        !           922:     return((* ProcVector[X_QueryExtension])(client));
        !           923: }
        !           924: 
        !           925: int
        !           926: SProcChangeKeyboardMapping   (client)
        !           927:     register ClientPtr client;
        !           928: {
        !           929:     register char n;
        !           930:     register long *p;
        !           931:     register int i, count;
        !           932: 
        !           933:     REQUEST(xChangeKeyboardMappingReq);
        !           934:     swaps(&stuff->length, n);
        !           935:     p = (long *)&stuff[1];
        !           936:     count = stuff->keyCodes * stuff->keySymsPerKeyCode;
        !           937:     for(i = 0; i < count; i++)
        !           938:     {
        !           939:         swapl(p, n);
        !           940:        p++;
        !           941:     }
        !           942:     return((* ProcVector[X_ChangeKeyboardMapping])(client));
        !           943: }
        !           944: 
        !           945: 
        !           946: int
        !           947: SProcChangeKeyboardControl   (client)
        !           948:     register ClientPtr client;
        !           949: {
        !           950:     register char n;
        !           951:     REQUEST(xChangeKeyboardControlReq);
        !           952:     swaps(&stuff->length, n);
        !           953:     swapl(&stuff->mask, n);
        !           954:     SwapRestL(stuff);
        !           955:     return((* ProcVector[X_ChangeKeyboardControl])(client));
        !           956: }
        !           957: 
        !           958: int
        !           959: SProcChangePointerControl   (client)
        !           960:     register ClientPtr client;
        !           961: {
        !           962:     register char n;
        !           963:     REQUEST(xChangePointerControlReq);
        !           964:     swaps(&stuff->length, n);
        !           965:     swaps(&stuff->accelNum, n);
        !           966:     swaps(&stuff->accelDenum, n);
        !           967:     swaps(&stuff->threshold, n);
        !           968:     return((* ProcVector[X_ChangePointerControl])(client));
        !           969: }
        !           970: 
        !           971: 
        !           972: int
        !           973: SProcSetScreenSaver            (client)
        !           974:     register ClientPtr client;
        !           975: {
        !           976:     register char n;
        !           977:     REQUEST(xSetScreenSaverReq);
        !           978:     swaps(&stuff->length, n);
        !           979:     swaps(&stuff->timeout, n);
        !           980:     swaps(&stuff->interval, n);
        !           981:     return((* ProcVector[X_SetScreenSaver])(client));
        !           982: }
        !           983: 
        !           984: int
        !           985: SProcChangeHosts(client)
        !           986:     register ClientPtr client;
        !           987: {
        !           988:     register char n;
        !           989: 
        !           990:     REQUEST(xChangeHostsReq);
        !           991:     swaps(&stuff->length, n);
        !           992:     swaps(&stuff->hostLength, n);
        !           993:     return((* ProcVector[X_ChangeHosts])(client));
        !           994: 
        !           995: }
        !           996: 
        !           997: int SProcRotateProperties(client)
        !           998:     register ClientPtr client;
        !           999: {
        !          1000:     register char n;
        !          1001:     REQUEST(xRotatePropertiesReq);
        !          1002:     swaps(&stuff->length, n);
        !          1003:     swapl(&stuff->window, n);
        !          1004:     swaps(&stuff->nAtoms, n);
        !          1005:     swaps(&stuff->nPositions, n);
        !          1006:     SwapRestL(stuff);
        !          1007:     return ((* ProcVector[X_RotateProperties])(client));
        !          1008: }
        !          1009: 
        !          1010: int SProcNoOperation(client)
        !          1011:     register ClientPtr client;
        !          1012: {
        !          1013:     /* noop -- don't do anything */
        !          1014:     return(Success);
        !          1015: }
        !          1016: 
        !          1017: SwapTimecoord(pCoord)
        !          1018:     xTimecoord *pCoord;
        !          1019: {
        !          1020:     register char n;
        !          1021: 
        !          1022:     swapl(&pCoord->time, n);
        !          1023:     swaps(&pCoord->x, n);
        !          1024:     swaps(&pCoord->y, n);
        !          1025: }
        !          1026: 
        !          1027: 
        !          1028: SwapRGB(prgb)
        !          1029:     xrgb       *prgb;
        !          1030: {
        !          1031:     register char n;
        !          1032: 
        !          1033:     swaps(&prgb->red, n);
        !          1034:     swaps(&prgb->green, n);
        !          1035:     swaps(&prgb->blue, n);
        !          1036: }
        !          1037: 
        !          1038: SwapColorItem(pItem)
        !          1039:     xColorItem *pItem;
        !          1040: {
        !          1041:     register char n;
        !          1042: 
        !          1043:     swapl(&pItem->pixel, n);
        !          1044:     swaps(&pItem->red, n);
        !          1045:     swaps(&pItem->green, n);
        !          1046:     swaps(&pItem->blue, n);
        !          1047: }
        !          1048: 
        !          1049: SwapConnClientPrefix(pCCP)
        !          1050:     xConnClientPrefix  *pCCP;
        !          1051: {
        !          1052:     register char n;
        !          1053: 
        !          1054:     swaps(&pCCP->majorVersion, n);
        !          1055:     swaps(&pCCP->minorVersion, n);
        !          1056:     swaps(&pCCP->nbytesAuthProto, n);
        !          1057:     swaps(&pCCP->nbytesAuthString, n);
        !          1058: }
        !          1059: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.