b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $XFree86: xc/programs/Xserver/os/osdep.h,v 3.17 2002/05/31 18:46:06 dawes Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/***********************************************************
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCopyright 1987, 1998 The Open Group
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncthe above copyright notice appear in all copies and that both that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynccopyright notice and this permission notice appear in supporting
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdocumentation.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncThe above copyright notice and this permission notice shall be included in
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncall copies or substantial portions of the Software.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncin this Software without prior written authorization from The Open Group.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync All Rights Reserved
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncPermission to use, copy, modify, and distribute this software and its
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdocumentation for any purpose and without fee is hereby granted,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncprovided that the above copyright notice appear in all copies and that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncboth that copyright notice and this permission notice appear in
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncsupporting documentation, and that the name of Digital not be
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncused in advertising or publicity pertaining to distribution of the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncsoftware without specific, written prior permission.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncSOFTWARE.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync******************************************************************/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $Xorg: osdep.h,v 1.5 2001/02/09 02:05:23 xorgcvs Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef HAVE_DIX_CONFIG_H
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <dix-config.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef _OSDEP_H_
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define _OSDEP_H_ 1
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BOTIMEOUT 200 /* in milliseconds */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BUFSIZE 4096
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define BUFWATERMARK 8192
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef MAXBUFSIZE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MAXBUFSIZE (1 << 22)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <X11/Xdmcp.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef sgi /* SGI defines OPEN_MAX in a useless way */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef X_NOT_POSIX
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef _POSIX_SOURCE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <limits.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define _POSIX_SOURCE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <limits.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#undef _POSIX_SOURCE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else /* X_NOT_POSIX */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef WIN32
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define _POSIX_
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <limits.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#undef _POSIX_
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* X_NOT_POSIX */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef __QNX__
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define NOFILES_MAX 256
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef OPEN_MAX
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef SVR4
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define OPEN_MAX 256
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <sys/param.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef OPEN_MAX
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if defined(NOFILE) && !defined(NOFILES_MAX)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define OPEN_MAX NOFILE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if !defined(__UNIXOS2__) && !defined(WIN32)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define OPEN_MAX NOFILES_MAX
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define OPEN_MAX 256
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <X11/Xpoll.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * MAXSOCKS is used only for initialising MaxClients when no other method
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * like sysconf(_SC_OPEN_MAX) is not supported.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if OPEN_MAX <= 256
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MAXSOCKS (OPEN_MAX - 1)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MAXSOCKS 256
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* MAXSELECT is the number of fds that select() can handle */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MAXSELECT (sizeof(fd_set) * NBBY)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if !defined(hpux) && !defined(SVR4) && !defined(SYSV)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define HAS_GETDTABLESIZE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include <stddef.h>
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef Bool (*ValidatorFunc)(ARRAY8Ptr Auth, ARRAY8Ptr Data, int packet_type);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef Bool (*GeneratorFunc)(ARRAY8Ptr Auth, ARRAY8Ptr Data, int packet_type);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef Bool (*AddAuthorFunc)(unsigned name_length, char *name, unsigned data_length, char *data);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _connectionInput {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync struct _connectionInput *next;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char *buffer; /* contains current client input */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char *bufptr; /* pointer to current start of data */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int bufcnt; /* count of bytes in buffer */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int lenLastReq;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int size;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} ConnectionInput, *ConnectionInputPtr;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _connectionOutput {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync struct _connectionOutput *next;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int size;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned char *buf;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int count;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef LBX
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync Bool nocompress;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} ConnectionOutput, *ConnectionOutputPtr;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef K5AUTH
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _k5_state {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int stageno; /* current stage of auth protocol */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer srvcreds; /* server credentials */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer srvname; /* server principal name */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer ktname; /* key table: principal-key pairs */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer skey; /* session key */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} k5_state;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef LBX
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _LbxProxy *OsProxyPtr;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncstruct _osComm;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AuthInitArgs void
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef void (*AuthInitFunc) (AuthInitArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AuthAddCArgs unsigned short data_length, char *data, XID id
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef int (*AuthAddCFunc) (AuthAddCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AuthCheckArgs unsigned short data_length, char *data, ClientPtr client, char **reason
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef XID (*AuthCheckFunc) (AuthCheckArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AuthFromIDArgs XID id, unsigned short *data_lenp, char **datap
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef int (*AuthFromIDFunc) (AuthFromIDArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AuthGenCArgs unsigned data_length, char *data, XID id, unsigned *data_length_return, char **data_return
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef XID (*AuthGenCFunc) (AuthGenCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AuthRemCArgs unsigned short data_length, char *data
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef int (*AuthRemCFunc) (AuthRemCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AuthRstCArgs void
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef int (*AuthRstCFunc) (AuthRstCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define AuthToIDArgs unsigned short data_length, char *data
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef XID (*AuthToIDFunc) (AuthToIDArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef void (*OsCloseFunc)(ClientPtr);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef int (*OsFlushFunc)(ClientPtr who, struct _osComm * oc, char* extraBuf, int extraCount);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _osComm {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int fd;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ConnectionInputPtr input;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ConnectionOutputPtr output;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync XID auth_id; /* authorization id */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef K5AUTH
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync k5_state authstate; /* state of setup auth conversation */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CARD32 conn_time; /* timestamp if not established, else 0 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync struct _XtransConnInfo *trans_conn; /* transport connection object */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef LBX
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync OsProxyPtr proxy;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ConnectionInputPtr largereq;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync OsCloseFunc Close;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync OsFlushFunc Flush;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} OsCommRec, *OsCommPtr;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef LBX
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define FlushClient(who, oc, extraBuf, extraCount) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (*(oc)->Flush)(who, oc, extraBuf, extraCount)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int StandardFlushClient(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ClientPtr /*who*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync OsCommPtr /*oc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char* /*extraBuf*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*extraCount*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int LbxFlushClient(ClientPtr /*who*/, OsCommPtr /*oc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char * /*extraBuf*/, int /*extraCount*/);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int FlushClient(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ClientPtr /*who*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync OsCommPtr /*oc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char* /*extraBuf*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*extraCount*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void FreeOsBuffers(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync OsCommPtr /*oc*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "dix.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern ConnectionInputPtr AllocateInputBuffer(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern ConnectionOutputPtr AllocateOutputBuffer(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern fd_set AllSockets;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern fd_set AllClients;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern fd_set LastSelectMask;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern fd_set WellKnownConnections;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern fd_set EnabledDevices;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern fd_set ClientsWithInput;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern fd_set ClientsWriteBlocked;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern fd_set OutputPending;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern fd_set IgnoredClientsWithInput;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef WIN32
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int *ConnectionTranslation;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int GetConnectionTranslation(int conn);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void SetConnectionTranslation(int conn, int client);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void ClearConnectionTranslation();
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool NewOutputPending;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool AnyClientsWriteBlocked;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool CriticalOutputPending;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int timesThisConnection;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern ConnectionInputPtr FreeInputs;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern ConnectionOutputPtr FreeOutputs;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern OsCommPtr AvailableInput;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern WorkQueuePtr workQueue;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* added by raphael */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef WIN32
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef long int fd_mask;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define ffs mffs
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int mffs(fd_mask);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* in auth.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void GenerateRandomData (int len, char *buf);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* in mitauth.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern XID MitCheckCookie (AuthCheckArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern XID MitGenerateCookie (AuthGenCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern XID MitToID (AuthToIDArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int MitAddCookie (AuthAddCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int MitFromID (AuthFromIDArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int MitRemoveCookie (AuthRemCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int MitResetCookie (AuthRstCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* in xdmauth.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef HASXDMAUTH
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern XID XdmCheckCookie (AuthCheckArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern XID XdmToID (AuthToIDArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int XdmAddCookie (AuthAddCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int XdmFromID (AuthFromIDArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int XdmRemoveCookie (AuthRemCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int XdmResetCookie (AuthRstCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* in rpcauth.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef SECURE_RPC
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void SecureRPCInit (AuthInitArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern XID SecureRPCCheck (AuthCheckArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern XID SecureRPCToID (AuthToIDArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int SecureRPCAdd (AuthAddCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int SecureRPCFromID (AuthFromIDArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int SecureRPCRemove (AuthRemCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int SecureRPCReset (AuthRstCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* in k5auth.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef K5AUTH
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern XID K5Check (AuthCheckArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern XID K5ToID (AuthToIDArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int K5Add (AuthAddCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int K5FromID (AuthFromIDArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int K5Remove (AuthRemCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int K5Reset (AuthRstCArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* in secauth.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern XID AuthSecurityCheck (AuthCheckArgs);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* in xdmcp.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpUseMsg (void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int XdmcpOptions(int argc, char **argv, int i);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpSetAuthentication (ARRAY8Ptr name);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpRegisterConnection (
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int type,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char *address,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int addrlen);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpRegisterAuthorizations (void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpRegisterAuthorization (char *name, int namelen);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpRegisterDisplayClass (char *name, int length);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpInit (void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpReset (void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpOpenDisplay(int sock);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpCloseDisplay(int sock);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpRegisterAuthentication (
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char *name,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int namelen,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char *data,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int datalen,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ValidatorFunc Validator,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GeneratorFunc Generator,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync AddAuthorFunc AddAuth);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int XdmcpCheckAuthentication (ARRAY8Ptr Name, ARRAY8Ptr Data, int packet_type);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int XdmcpAddAuthorization (ARRAY8Ptr name, ARRAY8Ptr data);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncstruct sockaddr_in;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmcpRegisterBroadcastAddress (struct sockaddr_in *addr);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef HASXDMAUTH
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void XdmAuthenticationInit (char *cookie, int cookie_length);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* _OSDEP_H_ */