1 dawes 1.1 /***********************************************************
2 Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
3
4 All Rights Reserved
5
6 Permission to use, copy, modify, and distribute this software and its
7 documentation for any purpose and without fee is hereby granted,
8 provided that the above copyright notice appear in all copies and that
9 both that copyright notice and this permission notice appear in
10 supporting documentation, and that the name of Digital not be
11 used in advertising or publicity pertaining to distribution of the
12 software without specific, written prior permission.
13
14 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
15 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
16 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
17 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
18 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
19 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20 SOFTWARE.
21
22 dawes 1.1 ******************************************************************/
|
23 dawes 3.7 /* $XConsortium: dixstruct.h /main/43 1996/12/15 21:25:06 rws $ */
|
24 dawes 3.8.4.2 /* $XFree86: xc/programs/Xserver/include/dixstruct.h,v 3.8.4.1 1998/06/03 15:50:18 dawes Exp $ */
|
25 dawes 1.1
26 #ifndef DIXSTRUCT_H
27 #define DIXSTRUCT_H
28
29 #include "dix.h"
30 #include "resource.h"
31 #include "cursor.h"
32 #include "gc.h"
33 #include "pixmap.h"
34 #include <X11/Xmd.h>
35
36 /*
37 * direct-mapped hash table, used by resource manager to store
38 * translation from client ids to server addresses.
39 */
40
41 #ifdef DEBUG
42 #define MAX_REQUEST_LOG 100
43 #endif
44
45 extern CallbackListPtr ClientStateCallback;
46 dawes 1.1
|
47 dawes 3.1 typedef struct {
48 ClientPtr client;
49 xConnSetupPrefix *prefix;
50 xConnSetup *setup;
51 } NewClientInfoRec;
52
|
53 dawes 3.8 typedef void (*ReplySwapPtr) (
54 #if NeedNestedPrototypes
55 ClientPtr /* pClient */,
56 int /* size */,
57 void * /* pbuf */
58 #endif
59 );
60
61 extern void ReplyNotSwappd (
62 #if NeedNestedPrototypes
63 ClientPtr /* pClient */,
64 int /* size */,
65 void * /* pbuf */
66 #endif
67 );
68
|
69 dawes 1.1 typedef enum {ClientStateInitial,
70 ClientStateAuthenticating,
71 ClientStateRunning,
72 ClientStateRetained,
|
73 dawes 3.7 ClientStateGone,
74 ClientStateCheckingSecurity,
75 ClientStateCheckedSecurity} ClientState;
|
76 dawes 3.6
|
77 dawes 1.1 typedef struct _Client {
78 int index;
79 Mask clientAsMask;
80 pointer requestBuffer;
81 pointer osPrivate; /* for OS layer, including scheduler */
82 Bool swapped;
|
83 dawes 3.5 ReplySwapPtr pSwapReplyFunc;
|
84 dawes 1.1 XID errorValue;
85 int sequence;
86 int closeDownMode;
87 int clientGone;
88 int noClientException; /* this client died or needs to be
89 * killed */
90 DrawablePtr lastDrawable;
91 Drawable lastDrawableID;
92 GCPtr lastGC;
93 GContext lastGCID;
94 pointer *saveSet;
95 int numSaved;
96 pointer screenPrivate[MAXSCREENS];
97 int (**requestVector) (
98 #if NeedNestedPrototypes
99 ClientPtr /* pClient */
100 #endif
101 );
102 CARD32 req_len; /* length of current request */
103 Bool big_requests; /* supports large requests */
104 int priority;
105 dawes 1.1 ClientState clientState;
106 DevUnion *devPrivates;
107 #ifdef XKB
|
108 dawes 3.3 unsigned short xkbClientFlags;
109 unsigned short mapNotifyMask;
|
110 dawes 3.4 unsigned short newKeyboardNotifyMask;
|
111 dawes 3.3 unsigned short vMajor,vMinor;
112 KeyCode minKC,maxKC;
|
113 dawes 1.1 #endif
114
115 #ifdef DEBUG
116 unsigned char requestLog[MAX_REQUEST_LOG];
117 int requestLogIndex;
118 #endif
|
119 dawes 3.7 #ifdef LBX
120 int (*readRequest)(
121 #if NeedNestedPrototypes
122 ClientPtr /*client*/
123 #endif
124 );
|
125 dawes 1.1 #endif
|
126 dawes 3.1 unsigned long replyBytesRemaining;
|
127 dawes 3.7 #ifdef XCSECURITY
128 XID authId;
129 unsigned int trustLevel;
130 pointer (* CheckAccess)(
131 #if NeedNestedPrototypes
132 ClientPtr /*pClient*/,
133 XID /*id*/,
134 RESTYPE /*classes*/,
135 Mask /*access_mode*/,
136 pointer /*resourceval*/
137 #endif
138 );
139 #endif
140 #ifdef XAPPGROUP
141 struct _AppGroupRec* appgroup;
142 #endif
143 struct _FontResolution * (*fontResFunc) ( /* no need for font.h */
144 #if NeedNestedPrototypes
145 ClientPtr /* pClient */,
146 int * /* num */
147 #endif
148 dawes 3.7 );
|
149 dawes 1.1 } ClientRec;
|
150 dawes 3.6
|
151 dawes 3.8 /* This prototype is used pervasively in Xext, dix */
152 #if NeedFunctionPrototypes
153 #define DISPATCH_PROC(func) int func(ClientPtr /* client */)
154 #else
155 #define DISPATCH_PROC(func) int func(/* ClientPtr client */)
156 #endif
|
157 dawes 1.1
158 typedef struct _WorkQueue {
159 struct _WorkQueue *next;
160 Bool (*function) (
161 #if NeedNestedPrototypes
162 ClientPtr /* pClient */,
163 pointer /* closure */
164 #endif
165 );
166 ClientPtr client;
167 pointer closure;
168 } WorkQueueRec;
169
170 extern TimeStamp currentTime;
171 extern TimeStamp lastDeviceEventTime;
172
173 extern int CompareTimeStamps(
174 #if NeedFunctionPrototypes
175 TimeStamp /*a*/,
176 TimeStamp /*b*/
177 #endif
178 dawes 1.1 );
179
180 extern TimeStamp ClientTimeToServerTime(
181 #if NeedFunctionPrototypes
182 CARD32 /*c*/
183 #endif
184 );
185
186 typedef struct _CallbackRec {
187 CallbackProcPtr proc;
188 pointer data;
189 Bool deleted;
190 struct _CallbackRec *next;
191 } CallbackRec, *CallbackPtr;
192
193 typedef struct _CallbackList {
194 CallbackFuncsRec funcs;
195 int inCallback;
196 Bool deleted;
197 int numDeleted;
198 CallbackPtr list;
199 dawes 1.1 } CallbackListRec;
|
200 dawes 3.7
201 /* proc vectors */
202
203 extern int (* InitialVector[3]) (
204 #if NeedNestedPrototypes
205 ClientPtr /*client*/
206 #endif
207 );
208
209 extern int (* ProcVector[256]) (
210 #if NeedNestedPrototypes
211 ClientPtr /*client*/
212 #endif
213 );
214
215 extern int (* SwappedProcVector[256]) (
216 #if NeedNestedPrototypes
217 ClientPtr /*client*/
218 #endif
219 );
220
221 dawes 3.7 #ifdef K5AUTH
222 extern int (*k5_Vector[256])() =
223 #if NeedNestedPrototypes
224 ClientPtr /*client*/
225 #endif
226 );
227 #endif
228
|
229 dawes 3.8.4.2 extern ReplySwapPtr ReplySwapVector[256];
|
230 dawes 3.7
231 extern int ProcBadRequest(
232 #if NeedFunctionPrototypes
233 ClientPtr /*client*/
234 #endif
235 );
|
236 dawes 1.1
237 #endif /* DIXSTRUCT_H */
|