From dbf94a72289efaa89fdab27b4cf0608994ebd0a1 Mon Sep 17 00:00:00 2001 From: Stuart Kreitman Date: Thu, 11 Sep 2008 18:28:24 -0700 Subject: Merge Sun's version of xscope in Conversion to ANSI C SysVR4 support Conversion of networking code to use xtrans --- fd.h | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 10 deletions(-) (limited to 'fd.h') diff --git a/fd.h b/fd.h index 8836638..aa7bf06 100644 --- a/fd.h +++ b/fd.h @@ -23,15 +23,47 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. * * + * * + * Copyright 2002 Sun Microsystems, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, and/or sell copies of the Software, and to permit persons + * to whom the Software is furnished to do so, provided that the above + * copyright notice(s) and this permission notice appear in all copies of + * the Software and that both the above copyright notice(s) and this + * permission notice appear in supporting documentation. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT + * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL + * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING + * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Except as contained in this notice, the name of a copyright holder + * shall not be used in advertising or otherwise to promote the sale, use + * or other dealings in this Software without prior written authorization + * of the copyright holder. + * ********************************************** */ -/* +/* the following structure remembers for each file descriptor its state. In particular, we need to know if it is busy or free and if it is in use, by whom. */ - +#ifdef USE_XTRANS +#include +#else +typedef void *XtransConnInfo; +#endif #include typedef int FD; @@ -39,16 +71,25 @@ typedef int FD; struct FDDescriptor { Boolean Busy; - int (*InputHandler)(); + void (*InputHandler)(int); +#ifdef USE_XTRANS + XtransConnInfo trans_conn; +#endif }; struct FDDescriptor *FDD /* array of FD descriptors */ ; -short MaxFD /* maximum number of FD's possible */ ; - -short nFDsInUse /* number of FD's actually in use */ ; - +int MaxFD /* maximum number of FD's possible */ ; +int nFDsInUse /* number of FD's actually in use */ ; fd_set ReadDescriptors /* bit map of FD's in use -- for select */ ; -short HighestFD /* highest FD in use -- for select */ ; +int HighestFD /* highest FD in use -- for select */ ; + +/* need to change the MaxFD to allow larger number of fd's */ +#define StaticMaxFD FD_SETSIZE -Boolean ValidFD(); -Boolean InputAvailable(); +extern void InitializeFD(void); +extern void UsingFD(FD fd, void (*Handler)(int), XtransConnInfo trans_conn); +extern void NotUsingFD(FD fd); +extern int MainLoop(void); +#ifdef USE_XTRANS +extern XtransConnInfo GetXTransConnInfo(FD fd); +#endif -- cgit v1.2.1