Add patch that contain Mali fixes.
[deb_xorg-server.git] / os / osdep.h
CommitLineData
a09e091a
JB
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 *ConnectionInputPtr;
111typedef struct _connectionOutput *ConnectionOutputPtr;
112
113struct _osComm;
114
115#define AuthInitArgs void
116typedef void (*AuthInitFunc) (AuthInitArgs);
117
118#define AuthAddCArgs unsigned short data_length, const char *data, XID id
119typedef int (*AuthAddCFunc) (AuthAddCArgs);
120
121#define AuthCheckArgs unsigned short data_length, const char *data, ClientPtr client, const char **reason
122typedef XID (*AuthCheckFunc) (AuthCheckArgs);
123
124#define AuthFromIDArgs XID id, unsigned short *data_lenp, char **datap
125typedef int (*AuthFromIDFunc) (AuthFromIDArgs);
126
127#define AuthGenCArgs unsigned data_length, const char *data, XID id, unsigned *data_length_return, char **data_return
128typedef XID (*AuthGenCFunc) (AuthGenCArgs);
129
130#define AuthRemCArgs unsigned short data_length, const char *data
131typedef int (*AuthRemCFunc) (AuthRemCArgs);
132
133#define AuthRstCArgs void
134typedef int (*AuthRstCFunc) (AuthRstCArgs);
135
136#define AuthToIDArgs unsigned short data_length, char *data
137typedef XID (*AuthToIDFunc) (AuthToIDArgs);
138
139typedef void (*OsCloseFunc) (ClientPtr);
140
141typedef int (*OsFlushFunc) (ClientPtr who, struct _osComm * oc, char *extraBuf,
142 int extraCount);
143
144typedef struct _osComm {
145 int fd;
146 ConnectionInputPtr input;
147 ConnectionOutputPtr output;
148 XID auth_id; /* authorization id */
149 CARD32 conn_time; /* timestamp if not established, else 0 */
150 struct _XtransConnInfo *trans_conn; /* transport connection object */
151} OsCommRec, *OsCommPtr;
152
153extern int FlushClient(ClientPtr /*who */ ,
154 OsCommPtr /*oc */ ,
155 const void * /*extraBuf */ ,
156 int /*extraCount */
157 );
158
159extern void FreeOsBuffers(OsCommPtr /*oc */
160 );
161
162#include "dix.h"
163
164extern fd_set AllSockets;
165extern fd_set AllClients;
166extern fd_set LastSelectMask;
167extern fd_set WellKnownConnections;
168extern fd_set EnabledDevices;
169extern fd_set ClientsWithInput;
170extern fd_set ClientsWriteBlocked;
171extern fd_set OutputPending;
172extern fd_set IgnoredClientsWithInput;
173
174#ifndef WIN32
175extern int *ConnectionTranslation;
176#else
177extern int GetConnectionTranslation(int conn);
178extern void SetConnectionTranslation(int conn, int client);
179extern void ClearConnectionTranslation(void);
180#endif
181
182extern Bool NewOutputPending;
183extern Bool AnyClientsWriteBlocked;
184
185extern WorkQueuePtr workQueue;
186
187/* in WaitFor.c */
188#ifdef WIN32
189typedef long int fd_mask;
190#endif
191#define ffs mffs
192extern int mffs(fd_mask);
193
194/* in access.c */
195extern Bool ComputeLocalClient(ClientPtr client);
196
197/* in auth.c */
198extern void GenerateRandomData(int len, char *buf);
199
200/* in mitauth.c */
201extern XID MitCheckCookie(AuthCheckArgs);
202extern XID MitGenerateCookie(AuthGenCArgs);
203extern XID MitToID(AuthToIDArgs);
204extern int MitAddCookie(AuthAddCArgs);
205extern int MitFromID(AuthFromIDArgs);
206extern int MitRemoveCookie(AuthRemCArgs);
207extern int MitResetCookie(AuthRstCArgs);
208
209/* in xdmauth.c */
210#ifdef HASXDMAUTH
211extern XID XdmCheckCookie(AuthCheckArgs);
212extern XID XdmToID(AuthToIDArgs);
213extern int XdmAddCookie(AuthAddCArgs);
214extern int XdmFromID(AuthFromIDArgs);
215extern int XdmRemoveCookie(AuthRemCArgs);
216extern int XdmResetCookie(AuthRstCArgs);
217#endif
218
219/* in rpcauth.c */
220#ifdef SECURE_RPC
221extern void SecureRPCInit(AuthInitArgs);
222extern XID SecureRPCCheck(AuthCheckArgs);
223extern XID SecureRPCToID(AuthToIDArgs);
224extern int SecureRPCAdd(AuthAddCArgs);
225extern int SecureRPCFromID(AuthFromIDArgs);
226extern int SecureRPCRemove(AuthRemCArgs);
227extern int SecureRPCReset(AuthRstCArgs);
228#endif
229
230#ifdef XDMCP
231/* in xdmcp.c */
232extern void XdmcpUseMsg(void);
233extern int XdmcpOptions(int argc, char **argv, int i);
234extern void XdmcpRegisterConnection(int type, const char *address, int addrlen);
235extern void XdmcpRegisterAuthorizations(void);
236extern void XdmcpRegisterAuthorization(const char *name, int namelen);
237extern void XdmcpInit(void);
238extern void XdmcpReset(void);
239extern void XdmcpOpenDisplay(int sock);
240extern void XdmcpCloseDisplay(int sock);
241extern void XdmcpRegisterAuthentication(const char *name,
242 int namelen,
243 const char *data,
244 int datalen,
245 ValidatorFunc Validator,
246 GeneratorFunc Generator,
247 AddAuthorFunc AddAuth);
248
249struct sockaddr_in;
250extern void XdmcpRegisterBroadcastAddress(const struct sockaddr_in *addr);
251#endif
252
253#ifdef HASXDMAUTH
254extern void XdmAuthenticationInit(const char *cookie, int cookie_length);
255#endif
256
257#endif /* _OSDEP_H_ */