VirtualBox

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

Last change on this file was 43251, checked in by vboxsync, 12 years ago

Additions/x11: added headers for X.Org Server 1.13.

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