grunwald%kazoo.cs.uiuc.edu@A.CS.UIUC.EDU (Dirk Grunwald) (12/24/88)
Gcc 1.32/vax no patches, runing no Vaxstation 3200, Ultrix 2.3.
Program is X11R3/server/dix/events.c, expanded version appended at end.
The killing option is -finline-functions. GDB backtrace follows.
(gdb) run -finline-functions -O -version FOO.c
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /usr/local/Gnu/lib/gcc-cc1 -finline-functions -O -version FOO.c
GNU C version 1.32 (vax) compiled by GNU C version 1.32.
GetNextEventMask SetMaskForEvent SyntheticMotion CheckPhysLimits
Program received signal 11, SIGSEGV
0x452b3 in output_operand (x=(rtx) 0xc55e4, code=0) (final.c line 1270)
(gdb) where
#0 0x452b3 in output_operand (x=(rtx) 0xc55e4, code=0) (final.c line 1270)
#1 0x45190 in output_asm_insn (template=(char *) 0x4c5c9 "movw %1,%0", operands=(rtx *) 0x57be4) (final.c line 1221)
#2 0x44b3c in final (first=(rtx) 0xc3dcc, file=(struct _iobuf *) 0x5b444, write_symbols=NO_DEBUG, optimize=1, prescan=0) (final.c line 785)
#3 0x11666 in rest_of_compilation (decl=(tree) 0xc34a0) (toplev.c line 1436)
#4 0xad01 in finish_function () (c-decl.c line 3430)
#5 0x37a3 in yyparse () (c-parse.y line 244)
#6 0x10ac2 in compile_file (name=(caddr_t) 0x7fffe27a "FOO.c") (toplev.c line 963)
#7 0x11d3d in main (argc=5, argv=(caddr_t *) 0x7fffe1f8, envp=(caddr_t *) 0x7fffe210) (toplev.c line 1691)
---FOO.c---
# 1 "events.c"
# 1 "../.././X11/X.h"
typedef unsigned long XID;
typedef XID Window;
typedef XID Drawable;
typedef XID Font;
typedef XID Pixmap;
typedef XID Cursor;
typedef XID Colormap;
typedef XID GContext;
typedef XID KeySym;
typedef unsigned long Mask;
typedef unsigned long Atom;
typedef unsigned long VisualID;
typedef unsigned long Time;
typedef unsigned char KeyCode;
# 311 "../.././X11/X.h"
# 28 "events.c"
# 1 "../include/misc.h"
extern unsigned long globalSerialNumber;
typedef unsigned char *pointer;
typedef int Bool;
typedef unsigned long PIXEL;
typedef unsigned long ATOM;
# 1 "../include/os.h"
# 1 "../include/misc.h"
# 117 "../include/misc.h"
# 29 "../include/os.h"
typedef pointer FID;
typedef struct _FontPathRec *FontPathPtr;
typedef struct _NewClientRec *NewClientPtr;
# 69 "../include/os.h"
char *alloca();
# 92 "../include/os.h"
char *ReadRequestFromClient();
char *strcat();
char *strncat();
char *strcpy();
char *strncpy();
Bool CloseDownConnection();
FontPathPtr GetFontPath();
FontPathPtr ExpandFontNamePattern();
FID FiOpenForRead();
void CreateWellKnownSockets();
void SetDefaultFontPath();
void FreeFontRecord();
void SetFontPath();
void ErrorF();
void Error();
void FatalError();
void ProcessCommandLine();
void Xfree();
void FlushAllOutput();
void FlushIfCriticalOutputPending();
unsigned long *Xalloc();
unsigned long *Xrealloc();
long GetTimeInMillis();
# 58 "../include/misc.h"
typedef struct _DDXPoint *DDXPointPtr;
typedef struct _Box *BoxPtr;
# 29 "events.c"
# 1 "../include/resource.h"
# 1 "../include/misc.h"
# 117 "../include/misc.h"
# 27 "../include/resource.h"
unsigned short CreateNewResourceType();
short CreateNewResourceClass();
unsigned long FakeClientID();
void AddResource();
void FreeResource();
void FreeClientResources();
pointer LookupID();
# 30 "events.c"
# 1 "../.././X11/Xproto.h"
# 1 "../.././X11/Xmd.h"
typedef long INT32;
typedef short INT16;
typedef char INT8;
typedef unsigned long CARD32;
typedef unsigned short CARD16;
typedef unsigned char CARD8;
typedef unsigned long BITS32;
typedef unsigned short BITS16;
typedef unsigned char BYTE;
typedef unsigned char BOOL;
# 53 "../.././X11/Xproto.h"
# 1 "../.././X11/Xprotostr.h"
# 1 "../.././X11/Xmd.h"
# 139 "../.././X11/Xmd.h"
# 28 "../.././X11/Xprotostr.h"
typedef struct _xSegment {
INT16 x1 , y1 , x2 , y2 ;
} xSegment;
typedef struct _xPoint {
INT16 x , y ;
} xPoint;
typedef struct _xRectangle {
INT16 x , y ;
CARD16 width , height ;
} xRectangle;
typedef struct _xArc {
INT16 x , y ;
CARD16 width , height ;
INT16 angle1 , angle2 ;
} xArc;
# 54 "../.././X11/Xproto.h"
typedef CARD16 KeyButMask;
typedef struct {
CARD8 byteOrder;
BYTE pad;
CARD16 majorVersion , minorVersion ;
CARD16 nbytesAuthProto ;
CARD16 nbytesAuthString ;
CARD16 pad2;
} xConnClientPrefix;
typedef struct {
BOOL success;
BYTE lengthReason;
CARD16 majorVersion ,
minorVersion ;
CARD16 length ;
} xConnSetupPrefix;
typedef struct {
CARD32 release ;
CARD32 ridBase ,
ridMask ;
CARD32 motionBufferSize ;
CARD16 nbytesVendor ;
CARD16 maxRequestSize ;
CARD8 numRoots;
CARD8 numFormats;
CARD8 imageByteOrder;
CARD8 bitmapBitOrder;
CARD8 bitmapScanlineUnit,
bitmapScanlinePad;
CARD8 minKeyCode, maxKeyCode;
CARD32 pad2 ;
} xConnSetup;
typedef struct {
CARD8 depth;
CARD8 bitsPerPixel;
CARD8 scanLinePad;
CARD8 pad1;
CARD32 pad2 ;
} xPixmapFormat;
typedef struct {
CARD8 depth;
CARD8 pad1;
CARD16 nVisuals ;
CARD32 pad2 ;
} xDepth;
typedef struct {
CARD32 visualID ;
CARD8 class;
CARD8 bitsPerRGB;
CARD16 colormapEntries ;
CARD32 redMask , greenMask , blueMask ;
CARD32 pad ;
} xVisualType;
typedef struct {
CARD32 windowId ;
CARD32 defaultColormap ;
CARD32 whitePixel , blackPixel ;
CARD32 currentInputMask ;
CARD16 pixWidth , pixHeight ;
CARD16 mmWidth , mmHeight ;
CARD16 minInstalledMaps , maxInstalledMaps ;
CARD32 rootVisualID ;
CARD8 backingStore;
BOOL saveUnders;
CARD8 rootDepth;
CARD8 nDepths;
} xWindowRoot;
typedef struct {
CARD32 time ;
INT16 x , y ;
} xTimecoord;
typedef struct {
CARD8 family;
BYTE pad;
CARD16 length ;
} xHostEntry;
typedef struct {
INT16 leftSideBearing ,
rightSideBearing ,
characterWidth ,
ascent ,
descent ;
CARD16 attributes ;
} xCharInfo;
typedef struct {
CARD32 name ;
CARD32 value ;
} xFontProp;
typedef struct {
CARD8 len;
INT8 delta;
} xTextElt;
typedef struct {
CARD32 pixel ;
CARD16 red , green , blue ;
CARD8 flags;
CARD8 pad;
} xColorItem;
typedef struct {
CARD16 red , green , blue , pad ;
} xrgb;
typedef CARD8 KEYCODE;
typedef struct {
BYTE type;
BYTE data1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 data00 ;
CARD32 data01 ;
CARD32 data02 ;
CARD32 data03 ;
CARD32 data04 ;
CARD32 data05 ;
} xGenericReply;
typedef struct {
BYTE type;
CARD8 backingStore;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 visualID ;
CARD16 class ;
CARD8 bitGravity;
CARD8 winGravity;
CARD32 backingBitPlanes ;
CARD32 backingPixel ;
BOOL saveUnder;
BOOL mapInstalled;
CARD8 mapState;
BOOL override;
CARD32 colormap ;
CARD32 allEventMasks ;
CARD32 yourEventMask ;
CARD16 doNotPropagateMask ;
CARD16 pad ;
} xGetWindowAttributesReply;
typedef struct {
BYTE type;
CARD8 depth;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 root ;
INT16 x , y ;
CARD16 width , height ;
CARD16 borderWidth ;
CARD16 pad1 ;
CARD32 pad2 ;
CARD32 pad3 ;
} xGetGeometryReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 root , parent ;
CARD16 nChildren ;
CARD16 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
} xQueryTreeReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 atom ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
} xInternAtomReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 nameLength ;
CARD16 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xGetAtomNameReply;
typedef struct {
BYTE type;
CARD8 format;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 propertyType ;
CARD32 bytesAfter ;
CARD32 nItems ;
CARD32 pad1 ;
CARD32 pad2 ;
CARD32 pad3 ;
} xGetPropertyReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 nProperties ;
CARD16 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xListPropertiesReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 owner ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
} xGetSelectionOwnerReply;
typedef struct {
BYTE type;
BYTE status;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 pad1 ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
} xGrabPointerReply;
typedef xGrabPointerReply xGrabKeyboardReply;
typedef struct {
BYTE type;
BOOL sameScreen;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 root , child ;
INT16 rootX , rootY , winX , winY ;
CARD16 mask ;
CARD16 pad1 ;
CARD32 pad ;
} xQueryPointerReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 nEvents ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
} xGetMotionEventsReply;
typedef struct {
BYTE type;
BOOL sameScreen;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 child ;
INT16 dstX , dstY ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
} xTranslateCoordsReply;
typedef struct {
BYTE type;
CARD8 revertTo;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 focus ;
CARD32 pad1 ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
} xGetInputFocusReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
BYTE map[32];
} xQueryKeymapReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
xCharInfo minBounds;
CARD32 walign1 ;
xCharInfo maxBounds;
CARD32 walign2 ;
CARD16 minCharOrByte2 , maxCharOrByte2 ;
CARD16 defaultChar ;
CARD16 nFontProps ;
CARD8 drawDirection;
CARD8 minByte1, maxByte1;
BOOL allCharsExist;
INT16 fontAscent , fontDescent ;
CARD32 nCharInfos ;
} xQueryFontReply;
typedef struct {
BYTE type;
CARD8 drawDirection;
CARD16 sequenceNumber ;
CARD32 length ;
INT16 fontAscent , fontDescent ;
INT16 overallAscent , overallDescent ;
INT32 overallWidth , overallLeft , overallRight ;
CARD32 pad ;
} xQueryTextExtentsReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 nFonts ;
CARD16 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xListFontsReply;
typedef struct {
BYTE type;
CARD8 nameLength;
CARD16 sequenceNumber ;
CARD32 length ;
xCharInfo minBounds;
CARD32 walign1 ;
xCharInfo maxBounds;
CARD32 walign2 ;
CARD16 minCharOrByte2 , maxCharOrByte2 ;
CARD16 defaultChar ;
CARD16 nFontProps ;
CARD8 drawDirection;
CARD8 minByte1, maxByte1;
BOOL allCharsExist;
INT16 fontAscent , fontDescent ;
CARD32 nReplies ;
} xListFontsWithInfoReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 nPaths ;
CARD16 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xGetFontPathReply;
typedef struct {
BYTE type;
CARD8 depth;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 visual ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xGetImageReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 nColormaps ;
CARD16 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xListInstalledColormapsReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 red , green , blue ;
CARD16 pad2 ;
CARD32 pixel ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
} xAllocColorReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 pixel ;
CARD16 exactRed , exactGreen , exactBlue ;
CARD16 screenRed , screenGreen , screenBlue ;
CARD32 pad2 ;
CARD32 pad3 ;
} xAllocNamedColorReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 nPixels , nMasks ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xAllocColorCellsReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 nPixels ;
CARD16 pad2 ;
CARD32 redMask , greenMask , blueMask ;
CARD32 pad3 ;
CARD32 pad4 ;
} xAllocColorPlanesReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 nColors ;
CARD16 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xQueryColorsReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 exactRed , exactGreen , exactBlue ;
CARD16 screenRed , screenGreen , screenBlue ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
} xLookupColorReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 width , height ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xQueryBestSizeReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
BOOL present;
CARD8 major_opcode;
CARD8 first_event;
CARD8 first_error;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xQueryExtensionReply;
typedef struct {
BYTE type;
CARD8 nExtensions;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xListExtensionsReply;
typedef struct {
BYTE type;
CARD8 success;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xSetMappingReply;
typedef xSetMappingReply xSetPointerMappingReply;
typedef xSetMappingReply xSetModifierMappingReply;
typedef struct {
BYTE type;
CARD8 nElts;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xGetPointerMappingReply;
typedef struct {
BYTE type;
CARD8 keySymsPerKeyCode;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xGetKeyboardMappingReply;
typedef struct {
BYTE type;
CARD8 numKeyPerModifier;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 pad1 ;
CARD32 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
} xGetModifierMappingReply;
typedef struct {
BYTE type;
BOOL globalAutoRepeat;
CARD16 sequenceNumber ;
CARD32 length ;
CARD32 ledMask ;
CARD8 keyClickPercent, bellPercent;
CARD16 bellPitch , bellDuration ;
CARD16 pad ;
BYTE map[32];
} xGetKeyboardControlReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 accelNumerator , accelDenominator ;
CARD16 threshold ;
CARD16 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
} xGetPointerControlReply;
typedef struct {
BYTE type;
BYTE pad1;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 timeout , interval ;
BOOL preferBlanking;
BOOL allowExposures;
CARD16 pad2 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
} xGetScreenSaverReply;
typedef struct {
BYTE type;
BOOL enabled;
CARD16 sequenceNumber ;
CARD32 length ;
CARD16 nHosts ;
CARD16 pad1 ;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xListHostsReply;
typedef struct {
BYTE type;
BYTE errorCode;
CARD16 sequenceNumber ;
CARD32 resourceID ;
CARD16 minorCode ;
CARD8 majorCode;
BYTE pad1;
CARD32 pad3 ;
CARD32 pad4 ;
CARD32 pad5 ;
CARD32 pad6 ;
CARD32 pad7 ;
} xError;
typedef struct {
union {
struct {
BYTE type;
BYTE detail;
CARD16 sequenceNumber ;
} u;
struct {
CARD32 pad00 ;
CARD32 time ;
CARD32 root , event , child ;
INT16 rootX , rootY , eventX , eventY ;
KeyButMask state ;
BOOL sameScreen;
BYTE pad1;
} keyButtonPointer;
struct {
CARD32 pad00 ;
CARD32 time ;
CARD32 root , event , child ;
INT16 rootX , rootY , eventX , eventY ;
KeyButMask state ;
BYTE mode;
BYTE flags;
} enterLeave;
struct {
CARD32 pad00 ;
CARD32 window ;
BYTE mode;
BYTE pad1, pad2, pad3;
} focus;
struct {
CARD32 pad00 ;
CARD32 window ;
CARD16 x , y , width , height ;
CARD16 count ;
CARD16 pad2 ;
} expose;
struct {
CARD32 pad00 ;
CARD32 drawable ;
CARD16 x , y , width , height ;
CARD16 minorEvent ;
CARD16 count ;
BYTE majorEvent;
BYTE pad1, pad2, pad3;
} graphicsExposure;
struct {
CARD32 pad00 ;
CARD32 drawable ;
CARD16 minorEvent ;
BYTE majorEvent;
BYTE bpad;
} noExposure;
struct {
CARD32 pad00 ;
CARD32 window ;
CARD8 state;
BYTE pad1, pad2, pad3;
} visibility;
struct {
CARD32 pad00 ;
CARD32 parent , window ;
INT16 x , y ;
CARD16 width , height , borderWidth ;
BOOL override;
BYTE bpad;
} createNotify;
struct {
CARD32 pad00 ;
CARD32 event , window ;
} destroyNotify;
struct {
CARD32 pad00 ;
CARD32 event , window ;
BOOL fromConfigure;
BYTE pad1, pad2, pad3;
} unmapNotify;
struct {
CARD32 pad00 ;
CARD32 event , window ;
BOOL override;
BYTE pad1, pad2, pad3;
} mapNotify;
struct {
CARD32 pad00 ;
CARD32 parent , window ;
} mapRequest;
struct {
CARD32 pad00 ;
CARD32 event , window , parent ;
INT16 x , y ;
BOOL override;
BYTE pad1, pad2, pad3;
} reparent;
struct {
CARD32 pad00 ;
CARD32 event , window , aboveSibling ;
INT16 x , y ;
CARD16 width , height , borderWidth ;
BOOL override;
BYTE bpad;
} configureNotify;
struct {
CARD32 pad00 ;
CARD32 parent , window , sibling ;
INT16 x , y ;
CARD16 width , height , borderWidth ;
CARD16 valueMask ;
CARD32 pad1 ;
} configureRequest;
struct {
CARD32 pad00 ;
CARD32 event , window ;
INT16 x , y ;
CARD32 pad1, pad2, pad3, pad4;
} gravity;
struct {
CARD32 pad00 ;
CARD32 window ;
CARD16 width , height ;
} resizeRequest;
struct {
CARD32 pad00 ;
CARD32 event , window , parent ;
BYTE place;
BYTE pad1, pad2, pad3;
} circulate;
struct {
CARD32 pad00 ;
CARD32 window ;
CARD32 atom ;
CARD32 time ;
BYTE state;
BYTE pad1;
CARD16 pad2 ;
} property;
struct {
CARD32 pad00 ;
CARD32 time ;
CARD32 window ;
CARD32 atom ;
} selectionClear;
struct {
CARD32 pad00 ;
CARD32 time ;
CARD32 owner , requestor ;
CARD32 selection , target , property ;
} selectionRequest;
struct {
CARD32 pad00 ;
CARD32 time ;
CARD32 requestor ;
CARD32 selection , target , property ;
} selectionNotify;
struct {
CARD32 pad00 ;
CARD32 window ;
CARD32 colormap ;
BOOL new;
BYTE state;
BYTE pad1, pad2;
} colormap;
struct {
CARD32 pad00 ;
CARD8 request;
CARD8 firstKeyCode;
CARD8 count;
BYTE pad1;
} mappingNotify;
struct {
CARD32 pad00 ;
CARD32 window ;
union {
struct {
CARD32 type ;
INT32 longs0 ;
INT32 longs1 ;
INT32 longs2 ;
INT32 longs3 ;
INT32 longs4 ;
} l;
struct {
CARD32 type ;
INT16 shorts0 ;
INT16 shorts1 ;
INT16 shorts2 ;
INT16 shorts3 ;
INT16 shorts4 ;
INT16 shorts5 ;
INT16 shorts6 ;
INT16 shorts7 ;
INT16 shorts8 ;
INT16 shorts9 ;
} s;
struct {
CARD32 type ;
INT8 bytes[20];
} b;
} u;
} clientMessage;
} u;
} xEvent;
typedef struct {
BYTE type;
BYTE map[31];
} xKeymapEvent;
typedef union {
xGenericReply generic;
xGetGeometryReply geom;
xQueryTreeReply tree;
xInternAtomReply atom;
xGetAtomNameReply atomName;
xGetPropertyReply property;
xListPropertiesReply listProperties;
xGetSelectionOwnerReply selection;
xGrabPointerReply grabPointer;
xGrabKeyboardReply grabKeyboard;
xQueryPointerReply pointer;
xGetMotionEventsReply motionEvents;
xTranslateCoordsReply coords;
xGetInputFocusReply inputFocus;
xQueryTextExtentsReply textExtents;
xListFontsReply fonts;
xGetFontPathReply fontPath;
xGetImageReply image;
xListInstalledColormapsReply colormaps;
xAllocColorReply allocColor;
xAllocNamedColorReply allocNamedColor;
xAllocColorCellsReply colorCells;
xAllocColorPlanesReply colorPlanes;
xQueryColorsReply colors;
xLookupColorReply lookupColor;
xQueryBestSizeReply bestSize;
xQueryExtensionReply extension;
xListExtensionsReply extensions;
xSetModifierMappingReply setModifierMapping;
xGetModifierMappingReply getModifierMapping;
xSetPointerMappingReply setPointerMapping;
xGetKeyboardMappingReply getKeyboardMapping;
xGetPointerMappingReply getPointerMapping;
xGetPointerControlReply pointerControl;
xGetScreenSaverReply screenSaver;
xListHostsReply hosts;
xError error;
xEvent event;
} xReply;
typedef struct {
CARD8 reqType;
CARD8 data;
CARD16 length ;
} xReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 id ;
} xResourceReq;
typedef struct {
CARD8 reqType;
CARD8 depth;
CARD16 length ;
CARD32 wid , parent ;
INT16 x , y ;
CARD16 width , height , borderWidth ;
CARD16 class ;
CARD32 visual ;
CARD32 mask ;
} xCreateWindowReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window ;
CARD32 valueMask ;
} xChangeWindowAttributesReq;
typedef struct {
CARD8 reqType;
BYTE mode;
CARD16 length ;
CARD32 window ;
} xChangeSaveSetReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window , parent ;
INT16 x , y ;
} xReparentWindowReq;
typedef struct {
CARD8 reqType;
CARD8 pad;
CARD16 length ;
CARD32 window ;
CARD16 mask ;
CARD16 pad2 ;
} xConfigureWindowReq;
typedef struct {
CARD8 reqType;
CARD8 direction;
CARD16 length ;
CARD32 window ;
} xCirculateWindowReq;
typedef struct {
CARD8 reqType;
BOOL onlyIfExists;
CARD16 length ;
CARD16 nbytes ;
CARD16 pad ;
} xInternAtomReq;
typedef struct {
CARD8 reqType;
CARD8 mode;
CARD16 length ;
CARD32 window ;
CARD32 property , type ;
CARD8 format;
BYTE pad[3];
CARD32 nUnits ;
} xChangePropertyReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window ;
CARD32 property ;
} xDeletePropertyReq;
typedef struct {
CARD8 reqType;
BOOL delete;
CARD16 length ;
CARD32 window ;
CARD32 property , type ;
CARD32 longOffset ;
CARD32 longLength ;
} xGetPropertyReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window ;
CARD32 selection ;
CARD32 time ;
} xSetSelectionOwnerReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 requestor ;
CARD32 selection , target , property ;
CARD32 time ;
} xConvertSelectionReq;
typedef struct {
CARD8 reqType;
BOOL propagate;
CARD16 length ;
CARD32 destination ;
CARD32 eventMask ;
xEvent event;
} xSendEventReq;
typedef struct {
CARD8 reqType;
BOOL ownerEvents;
CARD16 length ;
CARD32 grabWindow ;
CARD16 eventMask ;
BYTE pointerMode, keyboardMode;
CARD32 confineTo ;
CARD32 cursor ;
CARD32 time ;
} xGrabPointerReq;
typedef struct {
CARD8 reqType;
BOOL ownerEvents;
CARD16 length ;
CARD32 grabWindow ;
CARD16 eventMask ;
BYTE pointerMode, keyboardMode;
CARD32 confineTo ;
CARD32 cursor ;
CARD8 button;
BYTE pad;
CARD16 modifiers ;
} xGrabButtonReq;
typedef struct {
CARD8 reqType;
CARD8 button;
CARD16 length ;
CARD32 grabWindow ;
CARD16 modifiers ;
CARD16 pad ;
} xUngrabButtonReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cursor ;
CARD32 time ;
CARD16 eventMask ;
CARD16 pad2 ;
} xChangeActivePointerGrabReq;
typedef struct {
CARD8 reqType;
BOOL ownerEvents;
CARD16 length ;
CARD32 grabWindow ;
CARD32 time ;
BYTE pointerMode, keyboardMode;
CARD16 pad ;
} xGrabKeyboardReq;
typedef struct {
CARD8 reqType;
BOOL ownerEvents;
CARD16 length ;
CARD32 grabWindow ;
CARD16 modifiers ;
CARD8 key;
BYTE pointerMode, keyboardMode;
BYTE pad1, pad2, pad3;
} xGrabKeyReq;
typedef struct {
CARD8 reqType;
CARD8 key;
CARD16 length ;
CARD32 grabWindow ;
CARD16 modifiers ;
CARD16 pad ;
} xUngrabKeyReq;
typedef struct {
CARD8 reqType;
CARD8 mode;
CARD16 length ;
CARD32 time ;
} xAllowEventsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window ;
CARD32 start , stop ;
} xGetMotionEventsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 srcWid , dstWid ;
INT16 srcX , srcY ;
} xTranslateCoordsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 srcWid , dstWid ;
INT16 srcX , srcY ;
CARD16 srcWidth , srcHeight ;
INT16 dstX , dstY ;
} xWarpPointerReq;
typedef struct {
CARD8 reqType;
CARD8 revertTo;
CARD16 length ;
CARD32 focus ;
CARD32 time ;
} xSetInputFocusReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 fid ;
CARD16 nbytes ;
BYTE pad1, pad2;
} xOpenFontReq;
typedef struct {
CARD8 reqType;
BOOL oddLength;
CARD16 length ;
CARD32 fid ;
} xQueryTextExtentsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD16 maxNames ;
CARD16 nbytes ;
} xListFontsReq;
typedef xListFontsReq xListFontsWithInfoReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD16 nFonts ;
BYTE pad1, pad2;
} xSetFontPathReq;
typedef struct {
CARD8 reqType;
CARD8 depth;
CARD16 length ;
CARD32 pid ;
CARD32 drawable ;
CARD16 width , height ;
} xCreatePixmapReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 gc ;
CARD32 drawable ;
CARD32 mask ;
} xCreateGCReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 gc ;
CARD32 mask ;
} xChangeGCReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 srcGC , dstGC ;
CARD32 mask ;
} xCopyGCReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 gc ;
CARD16 dashOffset ;
CARD16 nDashes ;
} xSetDashesReq;
typedef struct {
CARD8 reqType;
BYTE ordering;
CARD16 length ;
CARD32 gc ;
INT16 xOrigin , yOrigin ;
} xSetClipRectanglesReq;
typedef struct {
CARD8 reqType;
BOOL exposures;
CARD16 length ;
CARD32 window ;
INT16 x , y ;
CARD16 width , height ;
} xClearAreaReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 srcDrawable , dstDrawable ;
CARD32 gc ;
INT16 srcX , srcY , dstX , dstY ;
CARD16 width , height ;
} xCopyAreaReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 srcDrawable , dstDrawable ;
CARD32 gc ;
INT16 srcX , srcY , dstX , dstY ;
CARD16 width , height ;
CARD32 bitPlane ;
} xCopyPlaneReq;
typedef struct {
CARD8 reqType;
BYTE coordMode;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
} xPolyPointReq;
typedef xPolyPointReq xPolyLineReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
} xPolySegmentReq;
typedef xPolySegmentReq xPolyArcReq;
typedef xPolySegmentReq xPolyRectangleReq;
typedef xPolySegmentReq xPolyFillRectangleReq;
typedef xPolySegmentReq xPolyFillArcReq;
typedef struct _FillPolyReq {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
BYTE shape;
BYTE coordMode;
CARD16 pad1 ;
} xFillPolyReq;
typedef struct _PutImageReq {
CARD8 reqType;
CARD8 format;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
CARD16 width , height ;
INT16 dstX , dstY ;
CARD8 leftPad;
CARD8 depth;
CARD16 pad ;
} xPutImageReq;
typedef struct {
CARD8 reqType;
CARD8 format;
CARD16 length ;
CARD32 drawable ;
INT16 x , y ;
CARD16 width , height ;
CARD32 planeMask ;
} xGetImageReq;
typedef struct {
CARD8 reqType;
CARD8 pad;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
INT16 x , y ;
} xPolyTextReq;
typedef xPolyTextReq xPolyText8Req;
typedef xPolyTextReq xPolyText16Req;
typedef struct {
CARD8 reqType;
BYTE nChars;
CARD16 length ;
CARD32 drawable ;
CARD32 gc ;
INT16 x , y ;
} xImageTextReq;
typedef xImageTextReq xImageText8Req;
typedef xImageTextReq xImageText16Req;
typedef struct {
CARD8 reqType;
BYTE alloc;
CARD16 length ;
CARD32 mid ;
CARD32 window ;
CARD32 visual ;
} xCreateColormapReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 mid ;
CARD32 srcCmap ;
} xCopyColormapAndFreeReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
CARD16 red , green , blue ;
CARD16 pad2 ;
} xAllocColorReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
CARD16 nbytes ;
BYTE pad1, pad2;
} xAllocNamedColorReq;
typedef struct {
CARD8 reqType;
BOOL contiguous;
CARD16 length ;
CARD32 cmap ;
CARD16 colors , planes ;
} xAllocColorCellsReq;
typedef struct {
CARD8 reqType;
BOOL contiguous;
CARD16 length ;
CARD32 cmap ;
CARD16 colors , red , green , blue ;
} xAllocColorPlanesReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
CARD32 planeMask ;
} xFreeColorsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
} xStoreColorsReq;
typedef struct {
CARD8 reqType;
CARD8 flags;
CARD16 length ;
CARD32 cmap ;
CARD32 pixel ;
CARD16 nbytes ;
BYTE pad1, pad2;
} xStoreNamedColorReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
} xQueryColorsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cmap ;
CARD16 nbytes ;
BYTE pad1, pad2;
} xLookupColorReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cid ;
CARD32 source , mask ;
CARD16 foreRed , foreGreen , foreBlue ;
CARD16 backRed , backGreen , backBlue ;
CARD16 x , y ;
} xCreateCursorReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cid ;
CARD32 source , mask ;
CARD16 sourceChar , maskChar ;
CARD16 foreRed , foreGreen , foreBlue ;
CARD16 backRed , backGreen , backBlue ;
} xCreateGlyphCursorReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 cursor ;
CARD16 foreRed , foreGreen , foreBlue ;
CARD16 backRed , backGreen , backBlue ;
} xRecolorCursorReq;
typedef struct {
CARD8 reqType;
CARD8 class;
CARD16 length ;
CARD32 drawable ;
CARD16 width , height ;
} xQueryBestSizeReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD16 nbytes ;
BYTE pad1, pad2;
} xQueryExtensionReq;
typedef struct {
CARD8 reqType;
CARD8 numKeyPerModifier;
CARD16 length ;
} xSetModifierMappingReq;
typedef struct {
CARD8 reqType;
CARD8 nElts;
CARD16 length ;
} xSetPointerMappingReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD8 firstKeyCode;
CARD8 count;
CARD16 pad1 ;
} xGetKeyboardMappingReq;
typedef struct {
CARD8 reqType;
CARD8 keyCodes;
CARD16 length ;
CARD8 firstKeyCode;
CARD8 keySymsPerKeyCode;
CARD16 pad1 ;
} xChangeKeyboardMappingReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 mask ;
} xChangeKeyboardControlReq;
typedef struct {
CARD8 reqType;
INT8 percent;
CARD16 length ;
} xBellReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
INT16 accelNum , accelDenum ;
INT16 threshold ;
BOOL doAccel, doThresh;
} xChangePointerControlReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
INT16 timeout , interval ;
BYTE preferBlank, allowExpose;
CARD16 pad2 ;
} xSetScreenSaverReq;
typedef struct {
CARD8 reqType;
BYTE mode;
CARD16 length ;
CARD8 hostFamily;
BYTE pad;
CARD16 hostLength ;
} xChangeHostsReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
} xListHostsReq;
typedef struct {
CARD8 reqType;
BYTE mode;
CARD16 length ;
} xChangeModeReq;
typedef xChangeModeReq xSetAccessControlReq;
typedef xChangeModeReq xSetCloseDownModeReq;
typedef xChangeModeReq xForceScreenSaverReq;
typedef struct {
CARD8 reqType;
BYTE pad;
CARD16 length ;
CARD32 window ;
CARD16 nAtoms ;
INT16 nPositions ;
} xRotatePropertiesReq;
# 33 "events.c"
# 1 "../include/windowstr.h"
# 1 "../include/window.h"
typedef struct _BackingStore *BackingStorePtr;
typedef struct _Window *WindowPtr;
# 29 "../include/windowstr.h"
# 1 "../include/pixmapstr.h"
# 1 "../include/pixmap.h"
typedef struct _DrawInfo *DrawablePtr;
typedef struct _Pixmap *PixmapPtr;
# 28 "../include/pixmapstr.h"
# 1 "../include/screenint.h"
typedef struct _PixmapFormat *PixmapFormatPtr;
typedef struct _Visual *VisualPtr;
typedef struct _Depth *DepthPtr;
typedef struct _Screen *ScreenPtr;
# 29 "../include/pixmapstr.h"
# 1 "../include/misc.h"
# 117 "../include/misc.h"
# 30 "../include/pixmapstr.h"
typedef struct _DrawInfo {
short type;
ScreenPtr pScreen;
int depth;
unsigned long serialNumber;
} DrawableRec;
typedef struct _Pixmap {
DrawableRec drawable;
int width, height;
int refcnt;
int devKind;
pointer devPrivate;
} PixmapRec;
# 30 "../include/windowstr.h"
# 1 "../include/region.h"
typedef struct _Region *RegionPtr;
extern int SingleRectRegionEqual();
# 31 "../include/windowstr.h"
# 1 "../include/cursor.h"
typedef struct _Cursor *CursorPtr;
typedef struct _CursorMetric *CursorMetricPtr;
extern CursorPtr rootCursor;
# 32 "../include/windowstr.h"
# 1 "../include/property.h"
typedef struct _Property *PropertyPtr;
# 33 "../include/windowstr.h"
# 1 "../include/resource.h"
# 74 "../include/resource.h"
# 34 "../include/windowstr.h"
# 1 "../include/dix.h"
# 1 "../include/gc.h"
typedef struct _GCInterest *GCInterestPtr;
typedef struct _GC *GCPtr;
extern void ValidateGC();
extern int ChangeGC();
extern GCPtr CreateGC();
extern int CopyGC();
extern int FreeGC();
extern void SetGCMask();
extern GCPtr GetScratchGC();
extern void FreeScratchGC();
# 29 "../include/dix.h"
# 1 "../include/window.h"
# 53 "../include/window.h"
# 30 "../include/dix.h"
typedef struct _TimeStamp *TimeStampPtr;
typedef struct _Client *ClientPtr;
extern ClientPtr requestingClient;
extern ClientPtr *clients;
extern ClientPtr serverClient;
extern int currentMaxClients;
extern int ProcAllowEvents();
extern int ProcBell();
extern int ProcChangeActivePointerGrab();
extern int ProcChangeKeyboardControl();
extern int ProcChangePointerControl();
extern int ProcGetKeyboardMapping();
extern int ProcGetPointerMapping();
extern int ProcGetInputFocus();
extern int ProcGetKeyboardControl();
extern int ProcGetMotionEvents();
extern int ProcGetPointerControl();
extern int ProcGrabButton();
extern int ProcGrabKey();
extern int ProcGrabKeyboard();
extern int ProcGrabPointer();
extern int ProcQueryKeymap();
extern int ProcQueryPointer();
extern int ProcSetInputFocus();
extern int ProcSetKeyboardMapping();
extern int ProcSetPointerMapping();
extern int ProcSendEvent();
extern int ProcUngrabButton();
extern int ProcUngrabKey();
extern int ProcUngrabKeyboard();
extern int ProcUngrabPointer();
extern int ProcWarpPointer();
extern int ProcRecolorCursor();
extern WindowPtr LookupWindow();
extern pointer LookupDrawable();
extern void NoopDDA();
# 35 "../include/windowstr.h"
# 1 "../include/miscstruct.h"
# 1 "../include/misc.h"
# 117 "../include/misc.h"
# 28 "../include/miscstruct.h"
extern unsigned long globalSerialNumber;
typedef struct _DDXPoint {
short x, y;
} DDXPointRec;
typedef struct _Box {
short x1, y1, x2, y2;
} BoxRec;
# 36 "../include/windowstr.h"
# 1 "../.././X11/Xprotostr.h"
# 55 "../.././X11/Xprotostr.h"
# 37 "../include/windowstr.h"
typedef struct _BackingStore {
RegionPtr obscured;
DDXPointRec oldAbsCorner;
void (* SaveDoomedAreas)();
RegionPtr (* RestoreAreas)();
void (* ExposeCopy)();
void (* TranslateBackingStore)();
void (* ClearToBackground)();
void (* DrawGuarantee)();
} BackingStoreRec;
typedef struct _Window {
DrawableRec drawable;
VisualID visual;
struct _Window *parent;
struct _Window *nextSib;
struct _Window *prevSib;
struct _Window *firstChild;
struct _Window *lastChild;
CursorPtr cursor;
ClientPtr client;
Window wid;
RegionPtr clipList;
RegionPtr winSize;
RegionPtr borderClip;
RegionPtr borderSize;
RegionPtr exposed;
RegionPtr borderExposed;
xRectangle clientWinSize;
DDXPointRec absCorner;
DDXPointRec oldAbsCorner;
int class;
Mask eventMask;
Mask dontPropagateMask;
Mask allEventMasks;
Mask deliverableEvents;
pointer otherClients;
pointer passiveGrabs;
PropertyPtr userProps;
XID nolongerused;
PixmapPtr backgroundTile;
unsigned long backgroundPixel;
PixmapPtr borderTile;
unsigned long borderPixel;
int borderWidth;
void (* PaintWindowBackground)();
void (* PaintWindowBorder)();
void (* CopyWindow)();
void (* ClearToBackground)();
unsigned long backingBitPlanes;
unsigned long backingPixel;
int backingStore;
BackingStorePtr backStorage;
char bitGravity;
char winGravity;
Colormap colormap;
Bool saveUnder:1;
unsigned visibility:2;
unsigned mapped:1;
unsigned realized:1;
unsigned viewable:1;
unsigned overrideRedirect:1;
unsigned marked:1;
pointer devBackingStore;
pointer devPrivate;
} WindowRec;
extern int DeleteWindow();
extern int ChangeWindowAttributes();
extern int WalkTree();
extern CreateRootWindow();
extern WindowPtr CreateWindow();
extern int DeleteWindow();
extern int DestroySubwindows();
extern int ChangeWindowAttributes();
extern int GetWindowAttributes();
extern int ConfigureWindow();
extern int ReparentWindow();
extern int MapWindow();
extern int MapSubwindow();
extern int UnmapWindow();
extern int UnmapSubwindow();
extern RegionPtr NotClippedByChildren();
# 34 "events.c"
# 1 "../include/inputstr.h"
# 1 "../include/input.h"
# 1 "../include/misc.h"
# 117 "../include/misc.h"
# 27 "../include/input.h"
typedef unsigned long Leds;
typedef struct _OtherClients *OtherClientsPtr;
typedef struct _GrabRec *GrabPtr;
typedef int (*DeviceProc)();
typedef void (*ProcessInputProc)();
typedef struct _DeviceRec {
pointer devicePrivate;
ProcessInputProc processInputProc;
Bool on;
} DeviceRec, *DevicePtr;
typedef struct {
int count;
DevicePtr *devices;
} DevicesDescriptor;
typedef struct {
int click, bell, bell_pitch, bell_duration;
Bool autoRepeat;
unsigned char autoRepeats[32];
Leds leds;
} KeybdCtrl;
typedef struct {
KeySym *map;
KeyCode minKeyCode,
maxKeyCode;
int mapWidth;
} KeySymsRec, *KeySymsPtr;
typedef struct {
int num, den, threshold;
} PtrCtrl;
extern KeybdCtrl defaultKeyboardControl;
extern PtrCtrl defaultPointerControl;
extern int DeliverEvents();
extern int MaybeDeliverEventsToClient(
);
extern DevicePtr AddInputDevice();
extern void RegisterPointerDevice();
extern void RegisterKeyboardDevice();
extern void ProcessPointerEvent();
extern void ProcessKeyboardEvent();
extern void ProcessOtherEvent();
extern void InitPointerDeviceStruct();
extern void InitKeyboardDeviceStruct();
extern void InitOtherDeviceStruct();
extern GrabPtr SetDeviceGrab();
extern DevicesDescriptor GetInputDevices();
extern DevicePtr LookupInputDevice();
extern DevicePtr LookupKeyboardDevice();
extern DevicePtr LookupPointerDevice();
extern void CloseDownDevices();
extern int InitAndStartDevices();
extern int NumMotionEvents();
extern void WriteEventsToClient();
extern int EventSelectForWindow();
extern int EventSuppressForWindow();
# 30 "../include/inputstr.h"
# 1 "../include/window.h"
# 53 "../include/window.h"
# 31 "../include/inputstr.h"
# 1 "../include/dixstruct.h"
# 1 "../include/dix.h"
# 100 "../include/dix.h"
# 29 "../include/dixstruct.h"
# 1 "../include/resource.h"
# 74 "../include/resource.h"
# 30 "../include/dixstruct.h"
# 1 "../include/cursor.h"
# 33 "../include/cursor.h"
# 31 "../include/dixstruct.h"
# 1 "../include/gc.h"
# 65 "../include/gc.h"
# 32 "../include/dixstruct.h"
# 1 "../include/pixmap.h"
# 45 "../include/pixmap.h"
# 33 "../include/dixstruct.h"
typedef struct _TimeStamp {
unsigned long months;
unsigned long milliseconds;
} TimeStamp;
typedef struct _Client {
int index;
Mask clientAsMask;
pointer requestBuffer;
pointer osPrivate;
Bool swapped;
void (* pSwapReplyFunc)();
XID errorValue;
int sequence;
int closeDownMode;
int clientGone;
int noClientException;
DrawablePtr lastDrawable;
Drawable lastDrawableID;
GCPtr lastGC;
GContext lastGCID;
pointer *saveSet;
int numSaved;
int requestLog[100];
int requestLogIndex;
pointer screenPrivate[3];
} ClientRec;
extern TimeStamp currentTime;
extern void CloseDownClient();
extern TimeStamp ClientTimeToServerTime();
# 32 "../include/inputstr.h"
typedef struct _OtherClients {
OtherClientsPtr next;
ClientPtr client;
XID resource;
Mask mask;
} OtherClients;
typedef struct _DeviceIntRec *DeviceIntPtr;
typedef struct _DetailRec {
unsigned short exact;
Mask *pMask;
} DetailRec;
typedef struct _GrabRec {
GrabPtr next;
XID resource;
ClientPtr client;
DeviceIntPtr device;
WindowPtr window;
Bool ownerEvents;
Bool keyboardMode, pointerMode;
DetailRec modifiersDetail;
Mask eventMask;
DetailRec detail;
WindowPtr confineTo;
CursorPtr cursor;
} GrabRec;
typedef struct {
WindowPtr win;
int revert;
TimeStamp time;
} FocusRec, *FocusPtr;
typedef struct _DeviceIntRec {
DeviceRec public;
TimeStamp grabTime;
Bool startup;
DeviceProc deviceProc;
Bool inited;
GrabPtr grab;
struct {
Bool frozen;
int state;
GrabPtr other;
xEvent event;
} sync;
BYTE down[32 ];
union {
struct {
CARD8 modifierMap[256];
KeybdCtrl ctrl;
void (*BellProc) ();
void (*CtrlProc) ();
FocusRec focus;
Bool passiveGrab;
} keybd;
struct {
PtrCtrl ctrl;
void (*CtrlProc) ();
int (*GetMotionProc) ();
Bool autoReleaseGrab;
BYTE map[256];
int mapLength;
} ptr;
struct {
FocusRec focus;
BYTE map[256];
int mapLength;
} other;
} u;
} DeviceIntRec;
typedef struct {
int numMotionEvents;
int numDevices;
int arraySize;
DeviceIntPtr *devices;
DeviceIntPtr keyboard;
DeviceIntPtr pointer;
} InputInfo;
typedef struct _QdEvent *QdEventPtr;
typedef struct _QdEvent {
QdEventPtr forw;
QdEventPtr back;
DeviceIntPtr device;
xEvent event;
} QdEventRec;
# 35 "events.c"
# 1 "../include/scrnintstr.h"
# 1 "../include/screenint.h"
# 33 "../include/screenint.h"
# 28 "../include/scrnintstr.h"
# 1 "../include/misc.h"
# 117 "../include/misc.h"
# 29 "../include/scrnintstr.h"
# 1 "../include/region.h"
# 41 "../include/region.h"
# 30 "../include/scrnintstr.h"
# 1 "../include/pixmap.h"
# 45 "../include/pixmap.h"
# 31 "../include/scrnintstr.h"
# 1 "../include/gc.h"
# 65 "../include/gc.h"
# 32 "../include/scrnintstr.h"
# 1 "../include/colormap.h"
# 55 "../include/colormap.h"
typedef unsigned long Pixel;
typedef struct _CMEntry *EntryPtr;
typedef struct _ColormapRec *ColormapPtr;
extern int CreateColormap();
extern Pixel FindColor();
extern int FreeColormap();
extern int TellNoMap();
extern int TellLostMap();
extern int TellGainedMap();
extern int IsMapInstalled();
extern void UninstallColormap();
# 33 "../include/scrnintstr.h"
typedef struct _PixmapFormat {
unsigned char depth;
unsigned char bitsPerPixel;
unsigned char scanlinePad;
} PixmapFormatRec;
typedef struct _Visual {
unsigned long vid;
short screen;
short class;
unsigned long redMask, greenMask, blueMask;
int offsetRed, offsetGreen, offsetBlue;
short bitsPerRGBValue;
short ColormapEntries;
short nplanes;
} VisualRec;
typedef struct _Depth {
int depth;
int numVids;
unsigned long *vids;
} DepthRec;
typedef struct _Screen {
int myNum;
ATOM id;
short width, height;
short mmWidth, mmHeight;
short numDepths;
DepthPtr allowedDepths;
short rootDepth;
unsigned long rootVisual;
unsigned long defColormap;
short minInstalledCmaps, maxInstalledCmaps;
char backingStoreSupport, saveUnderSupport;
unsigned long whitePixel, blackPixel;
unsigned long rgf;
GCPtr GCperDepth[8+1];
PixmapPtr PixmapPerDepth[1];
pointer devPrivate;
short numVisuals;
VisualPtr visuals;
Bool (* CloseScreen)();
void (* QueryBestSize)();
Bool (* SaveScreen)();
void (* GetImage)();
unsigned int *(* GetSpans)();
void (* PointerNonInterestBox)();
Bool (* CreateWindow)();
Bool (* DestroyWindow)();
Bool (* PositionWindow)();
Bool (* ChangeWindowAttributes)();
Bool (* RealizeWindow)();
Bool (* UnrealizeWindow)();
int (* ValidateTree)();
void (* WindowExposures)();
PixmapPtr (* CreatePixmap)();
Bool (* DestroyPixmap)();
Bool (* RealizeFont)();
Bool (* UnrealizeFont)();
void (* ConstrainCursor)();
void (* CursorLimits)();
Bool (* DisplayCursor)();
Bool (* RealizeCursor)();
Bool (* UnrealizeCursor)();
void (* RecolorCursor)();
Bool (* SetCursorPosition)();
Bool (* CreateGC)();
void (* CreateColormap)();
void (* DestroyColormap)();
void (* InstallColormap)();
void (* UninstallColormap)();
int (* ListInstalledColormaps) ();
void (* StoreColors)();
void (* ResolveColor)();
RegionPtr (* RegionCreate)();
void (* RegionCopy)();
void (* RegionDestroy)();
int (* Intersect)();
int (* Union)();
int (* Subtract)();
int (* Inverse)();
void (* RegionReset)();
void (* TranslateRegion)();
int (* RectIn)();
Bool (* PointInRegion)();
Bool (* RegionNotEmpty)();
void (* RegionEmpty)();
BoxPtr (*RegionExtents)();
void (* SendGraphicsExpose)();
void (* BlockHandler)();
void (* WakeupHandler)();
pointer blockData;
pointer wakeupData;
} ScreenRec;
typedef struct _ScreenInfo {
int imageByteOrder;
int bitmapScanlineUnit;
int bitmapScanlinePad;
int bitmapBitOrder;
int numPixmapFormats;
PixmapFormatRec
formats[8];
int arraySize;
int numScreens;
ScreenPtr screen;
} ScreenInfo;
extern ScreenInfo screenInfo;
# 36 "events.c"
# 1 "../include/cursorstr.h"
# 1 "../include/cursor.h"
# 33 "../include/cursor.h"
# 28 "../include/cursorstr.h"
# 1 "../include/pixmap.h"
# 45 "../include/pixmap.h"
# 29 "../include/cursorstr.h"
# 1 "../include/misc.h"
# 117 "../include/misc.h"
# 30 "../include/cursorstr.h"
typedef struct _Cursor {
unsigned char *source;
unsigned char *mask;
long width;
long height;
long xhot;
long yhot;
unsigned foreRed, foreGreen, foreBlue;
unsigned backRed, backGreen, backBlue;
int refcnt;
pointer devPriv[3];
} CursorRec;
typedef struct _CursorMetric {
long width, height, xhot, yhot;
} CursorMetricRec;
extern int FreeCursor();
extern CursorPtr AllocCursor();
extern CursorPtr CreateRootCursor();
# 37 "events.c"
# 1 "../include/dixstruct.h"
# 75 "../include/dixstruct.h"
# 39 "events.c"
extern WindowRec WindowTable[];
extern void (* EventSwapVector[128]) ();
extern void (* ReplySwapVector[256]) ();
extern void CopySwap32Write(), SwapTimeCoordWrite();
static debug_events = 0;
static debug_modifiers = 0;
static InputInfo inputInfo;
static int keyThatActivatedPassiveGrab;
static KeySymsRec curKeySyms;
static GrabRec keybdGrab;
static GrabRec ptrGrab;
static struct {
unsigned int num;
QdEventRec pending, free;
DeviceIntPtr replayDev;
WindowPtr replayWin;
Bool playingEvents;
} syncEvents;
static WindowPtr *spriteTrace = (WindowPtr *) 0;
static int spriteTraceSize = 0;
static int spriteTraceGood;
static WindowPtr *focusTrace = (WindowPtr *) 0;
static int focusTraceSize = 0;
static int focusTraceGood;
static CARD16 keyButtonState = 0;
static int modifierKeyCount[8];
static int buttonsDown = 0;
static Mask buttonMotionMask = 0;
typedef struct {
int x, y;
} HotSpot;
static struct {
CursorPtr current;
BoxRec hotLimits;
BoxRec physLimits;
WindowPtr win;
HotSpot hot;
} sprite;
static WindowPtr motionHintWindow;
extern void DoEnterLeaveEvents();
static WindowPtr XYToWindow();
extern Bool CheckKeyboardGrabs();
static void NormalKeyboardEvent();
extern int DeliverDeviceEvents();
static void DoFocusEvents();
extern Mask EventMaskForClient();
static WindowPtr CheckMotion();
extern void WriteEventsToClient();
static Bool CheckDeviceGrabs();
extern GrabPtr CreateGrab();
extern void DeleteGrab();
extern Bool GrabMatchesSecond();
extern void DeletePassiveGrabFromList();
extern void AddPassiveGrabToWindowList();
static ScreenPtr currentScreen;
CARD16 keyModifiersList[256];
static CARD8 maxKeysPerModifier;
static KeyCode *modifierKeyMap;
static Mask lastEventMask;
static Mask filters[128] =
{
0x80000000 ,
0x80000000 ,
(1L<<0) ,
(1L<<1) ,
(1L<<2) ,
(1L<<3) ,
( (1L<<6) | (1L<<8) | (1L<<9) | (1L<<10) | (1L<<11) | (1L<<12) | (1L<<13) ),
(1L<<4) ,
(1L<<5) ,
(1L<<21) ,
(1L<<21) ,
(1L<<14),
(1L<<15) ,
0L,
0L,
(1L<<16) ,
(1L<<19) ,
( (1L<<17) | (1L<<19) ),
( (1L<<17) | (1L<<19) ),
( (1L<<17) | (1L<<19) ),
(1L<<20) ,
( (1L<<17) | (1L<<19) ),
( (1L<<17) | (1L<<19) ),
(1L<<20) ,
( (1L<<17) | (1L<<19) ),
(1L<<18) ,
( (1L<<17) | (1L<<19) ),
(1L<<20) ,
(1L<<22) ,
0L,
0L,
0L,
(1L<<23) ,
0L
};
Mask
GetNextEventMask()
{
lastEventMask <<= 1;
return lastEventMask;
}
void
SetMaskForEvent(mask, event)
Mask mask;
int event;
{
if ((event < 35 ) || (event >= 128))
FatalError("MaskForEvent: bogus event number");
filters[event] = mask;
}
static void
SyntheticMotion(x, y)
int x, y;
{
xEvent xE;
xE.u.keyButtonPointer.rootX = x;
xE.u.keyButtonPointer.rootY = y;
xE.u.keyButtonPointer.time = currentTime.milliseconds;
xE.u.u.type = 6;
ProcessPointerEvent(&xE, inputInfo.pointer);
}
static void
CheckPhysLimits(cursor, generateEvents)
CursorPtr cursor;
Bool generateEvents;
{
HotSpot new;
if (!cursor)
return;
new = sprite.hot;
(*currentScreen->CursorLimits) (
currentScreen, cursor, &sprite.hotLimits, &sprite.physLimits);
if (new.x < sprite.physLimits.x1)
new.x = sprite.physLimits.x1;
else
if (new.x >= sprite.physLimits.x2)
new.x = sprite.physLimits.x2 - 1;
if (new.y < sprite.physLimits.y1)
new.y = sprite.physLimits.y1;
else
if (new.y >= sprite.physLimits.y2)
new.y = sprite.physLimits.y2 - 1;
if ((new.x != sprite.hot.x) || (new.y != sprite.hot.y))
{
(*currentScreen->SetCursorPosition) (
currentScreen, new.x, new.y, generateEvents);
if (!generateEvents)
SyntheticMotion(new.x, new.y);
}
}
static void
ConfineCursorToWindow(pWin, x, y, generateEvents)
WindowPtr pWin;
int x, y;
Bool generateEvents;
{
ScreenPtr pScreen = pWin->drawable.pScreen;
sprite.hotLimits = *(* pScreen->RegionExtents)(pWin->borderSize);
if (currentScreen != pScreen)
{
currentScreen = pScreen;
spriteTrace[0] = &WindowTable[pScreen->myNum];
if (x < sprite.hotLimits.x1)
x = sprite.hotLimits.x1;
else if (x >= sprite.hotLimits.x2)
x = sprite.hotLimits.x2 - 1;
if (y < sprite.hotLimits.y1)
y = sprite.hotLimits.y1;
else if (y >= sprite.hotLimits.y2)
y = sprite.hotLimits.y2 - 1;
sprite.hot.x = -1;
sprite.hot.y = -1;
(* pScreen->SetCursorPosition)(pScreen, x, y, generateEvents);
if (!generateEvents)
SyntheticMotion(x, y);
}
CheckPhysLimits(sprite.current, generateEvents);
(* pScreen->ConstrainCursor)(pScreen, &sprite.physLimits);
}