VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/xorg-server-1.9.0/osdep.h@ 85498

Last change on this file since 85498 was 32163, checked in by vboxsync, 14 years ago

Additions/x11/x11include: additional headers for building drivers for X.Org Server 1.9

  • Property svn:eol-style set to native
File size: 8.4 KB
Line 
1/***********************************************************
2
3Copyright 1987, 1998 The Open Group
4
5Permission to use, copy, modify, distribute, and sell this software and its
6documentation for any purpose is hereby granted without fee, provided that
7the above copyright notice appear in all copies and that both that
8copyright notice and this permission notice appear in supporting
9documentation.
10
11The above copyright notice and this permission notice shall be included in
12all copies or substantial portions of the Software.
13
14THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20
21Except as contained in this notice, the name of The Open Group shall not be
22used in advertising or otherwise to promote the sale, use or other dealings
23in this Software without prior written authorization from The Open Group.
24
25
26Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
27
28 All Rights Reserved
29
30Permission to use, copy, modify, and distribute this software and its
31documentation for any purpose and without fee is hereby granted,
32provided that the above copyright notice appear in all copies and that
33both that copyright notice and this permission notice appear in
34supporting documentation, and that the name of Digital not be
35used in advertising or publicity pertaining to distribution of the
36software without specific, written prior permission.
37
38DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
39ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
40DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
41ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
42WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
43ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
44SOFTWARE.
45
46******************************************************************/
47
48#ifdef HAVE_DIX_CONFIG_H
49#include <dix-config.h>
50#endif
51
52#ifndef _OSDEP_H_
53#define _OSDEP_H_ 1
54
55#define BOTIMEOUT 200 /* in milliseconds */
56#define BUFSIZE 4096
57#define BUFWATERMARK 8192
58
59#if defined(XDMCP) || defined(HASXDMAUTH)
60#include <X11/Xdmcp.h>
61#endif
62
63#ifdef _POSIX_SOURCE
64#include <limits.h>
65#else
66#define _POSIX_SOURCE
67#include <limits.h>
68#undef _POSIX_SOURCE
69#endif
70
71#ifndef OPEN_MAX
72#ifdef SVR4
73#define OPEN_MAX 256
74#else
75#include <sys/param.h>
76#ifndef OPEN_MAX
77#if defined(NOFILE) && !defined(NOFILES_MAX)
78#define OPEN_MAX NOFILE
79#else
80#if !defined(WIN32)
81#define OPEN_MAX NOFILES_MAX
82#else
83#define OPEN_MAX 256
84#endif
85#endif
86#endif
87#endif
88#endif
89
90#include <X11/Xpoll.h>
91
92/*
93 * MAXSOCKS is used only for initialising MaxClients when no other method
94 * like sysconf(_SC_OPEN_MAX) is not supported.
95 */
96
97#if OPEN_MAX <= 256
98#define MAXSOCKS (OPEN_MAX - 1)
99#else
100#define MAXSOCKS 256
101#endif
102
103/* MAXSELECT is the number of fds that select() can handle */
104#define MAXSELECT (sizeof(fd_set) * NBBY)
105
106#ifndef HAS_GETDTABLESIZE
107#if !defined(SVR4) && !defined(SYSV)
108#define HAS_GETDTABLESIZE
109#endif
110#endif
111
112#include <stddef.h>
113
114#if defined(XDMCP) || defined(HASXDMAUTH)
115typedef Bool (*ValidatorFunc)(ARRAY8Ptr Auth, ARRAY8Ptr Data, int packet_type);
116typedef Bool (*GeneratorFunc)(ARRAY8Ptr Auth, ARRAY8Ptr Data, int packet_type);
117typedef Bool (*AddAuthorFunc)(unsigned name_length, const char *name,
118 unsigned data_length, char *data);
119#endif
120
121typedef struct _connectionInput {
122 struct _connectionInput *next;
123 char *buffer; /* contains current client input */
124 char *bufptr; /* pointer to current start of data */
125 int bufcnt; /* count of bytes in buffer */
126 int lenLastReq;
127 int size;
128} ConnectionInput, *ConnectionInputPtr;
129
130typedef struct _connectionOutput {
131 struct _connectionOutput *next;
132 int size;
133 unsigned char *buf;
134 int count;
135} ConnectionOutput, *ConnectionOutputPtr;
136
137struct _osComm;
138
139#define AuthInitArgs void
140typedef void (*AuthInitFunc) (AuthInitArgs);
141
142#define AuthAddCArgs unsigned short data_length, const char *data, XID id
143typedef int (*AuthAddCFunc) (AuthAddCArgs);
144
145#define AuthCheckArgs unsigned short data_length, const char *data, ClientPtr client, char **reason
146typedef XID (*AuthCheckFunc) (AuthCheckArgs);
147
148#define AuthFromIDArgs XID id, unsigned short *data_lenp, char **datap
149typedef int (*AuthFromIDFunc) (AuthFromIDArgs);
150
151#define AuthGenCArgs unsigned data_length, const char *data, XID id, unsigned *data_length_return, char **data_return
152typedef XID (*AuthGenCFunc) (AuthGenCArgs);
153
154#define AuthRemCArgs unsigned short data_length, const char *data
155typedef int (*AuthRemCFunc) (AuthRemCArgs);
156
157#define AuthRstCArgs void
158typedef int (*AuthRstCFunc) (AuthRstCArgs);
159
160#define AuthToIDArgs unsigned short data_length, char *data
161typedef XID (*AuthToIDFunc) (AuthToIDArgs);
162
163typedef void (*OsCloseFunc)(ClientPtr);
164
165typedef int (*OsFlushFunc)(ClientPtr who, struct _osComm * oc, char* extraBuf, int extraCount);
166
167typedef struct _osComm {
168 int fd;
169 ConnectionInputPtr input;
170 ConnectionOutputPtr output;
171 XID auth_id; /* authorization id */
172 CARD32 conn_time; /* timestamp if not established, else 0 */
173 struct _XtransConnInfo *trans_conn; /* transport connection object */
174} OsCommRec, *OsCommPtr;
175
176extern int FlushClient(
177 ClientPtr /*who*/,
178 OsCommPtr /*oc*/,
179 const void * /*extraBuf*/,
180 int /*extraCount*/
181);
182
183extern void FreeOsBuffers(
184 OsCommPtr /*oc*/
185);
186
187#include "dix.h"
188
189extern fd_set AllSockets;
190extern fd_set AllClients;
191extern fd_set LastSelectMask;
192extern fd_set WellKnownConnections;
193extern fd_set EnabledDevices;
194extern fd_set ClientsWithInput;
195extern fd_set ClientsWriteBlocked;
196extern fd_set OutputPending;
197extern fd_set IgnoredClientsWithInput;
198
199#ifndef WIN32
200extern int *ConnectionTranslation;
201#else
202extern int GetConnectionTranslation(int conn);
203extern void SetConnectionTranslation(int conn, int client);
204extern void ClearConnectionTranslation(void);
205#endif
206
207extern Bool NewOutputPending;
208extern Bool AnyClientsWriteBlocked;
209
210extern WorkQueuePtr workQueue;
211
212/* in WaitFor.c */
213#ifdef WIN32
214typedef long int fd_mask;
215#endif
216#define ffs mffs
217extern int mffs(fd_mask);
218
219/* in auth.c */
220extern void GenerateRandomData (int len, char *buf);
221
222/* in mitauth.c */
223extern XID MitCheckCookie (AuthCheckArgs);
224extern XID MitGenerateCookie (AuthGenCArgs);
225extern XID MitToID (AuthToIDArgs);
226extern int MitAddCookie (AuthAddCArgs);
227extern int MitFromID (AuthFromIDArgs);
228extern int MitRemoveCookie (AuthRemCArgs);
229extern int MitResetCookie (AuthRstCArgs);
230
231/* in xdmauth.c */
232#ifdef HASXDMAUTH
233extern XID XdmCheckCookie (AuthCheckArgs);
234extern XID XdmToID (AuthToIDArgs);
235extern int XdmAddCookie (AuthAddCArgs);
236extern int XdmFromID (AuthFromIDArgs);
237extern int XdmRemoveCookie (AuthRemCArgs);
238extern int XdmResetCookie (AuthRstCArgs);
239#endif
240
241/* in rpcauth.c */
242#ifdef SECURE_RPC
243extern void SecureRPCInit (AuthInitArgs);
244extern XID SecureRPCCheck (AuthCheckArgs);
245extern XID SecureRPCToID (AuthToIDArgs);
246extern int SecureRPCAdd (AuthAddCArgs);
247extern int SecureRPCFromID (AuthFromIDArgs);
248extern int SecureRPCRemove (AuthRemCArgs);
249extern int SecureRPCReset (AuthRstCArgs);
250#endif
251
252#ifdef XDMCP
253/* in xdmcp.c */
254extern void XdmcpUseMsg (void);
255extern int XdmcpOptions(int argc, char **argv, int i);
256extern void XdmcpRegisterConnection (
257 int type,
258 const char *address,
259 int addrlen);
260extern void XdmcpRegisterAuthorizations (void);
261extern void XdmcpRegisterAuthorization (const char *name, int namelen);
262extern void XdmcpInit (void);
263extern void XdmcpReset (void);
264extern void XdmcpOpenDisplay(int sock);
265extern void XdmcpCloseDisplay(int sock);
266extern void XdmcpRegisterAuthentication (
267 const char *name,
268 int namelen,
269 const char *data,
270 int datalen,
271 ValidatorFunc Validator,
272 GeneratorFunc Generator,
273 AddAuthorFunc AddAuth);
274
275struct sockaddr_in;
276extern void XdmcpRegisterBroadcastAddress (const struct sockaddr_in *addr);
277#endif
278
279#ifdef HASXDMAUTH
280extern void XdmAuthenticationInit (const char *cookie, int cookie_length);
281#endif
282
283#endif /* _OSDEP_H_ */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette