From ae31e19f92e717919ac8e3db9039eb38d2b89aae Mon Sep 17 00:00:00 2001 From: in2 Date: Thu, 7 Mar 2002 15:13:44 +0000 Subject: Initial revision git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@1 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- innbbsd/clibrary.h | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 innbbsd/clibrary.h (limited to 'innbbsd/clibrary.h') diff --git a/innbbsd/clibrary.h b/innbbsd/clibrary.h new file mode 100644 index 00000000..92ec82e0 --- /dev/null +++ b/innbbsd/clibrary.h @@ -0,0 +1,131 @@ +/* $Revision: 1.1 $ +** +** Here be declarations of routines and variables in the C library. +** You must #include and before this file. +*/ + +#if defined(DO_HAVE_UNISTD) +#include +#endif /* defined(DO_HAVE_UNISTD) */ + +#if defined(DO_HAVE_VFORK) +#include +#endif /* defined(DO_HAVE_VFORK) */ + + /* Generic pointer, used by memcpy, malloc, etc. */ + /* =()@ *POINTER;>()= */ +typedef char *POINTER; + /* What is a file offset? Will not work unless long! */ + /* =()@ OFFSET_T;>()= */ +typedef long OFFSET_T; + /* What is the type of an object size? */ + /* =()@ SIZE_T;>()= */ +typedef int SIZE_T; + /* What is the type of a passwd uid and gid, for use in chown(2)? */ + /* =()@ UID_T;>()= */ +typedef int UID_T; + /* =()@ GID_T;>()= */ +typedef int GID_T; + /* =()@ PID_T;>()= */ +typedef int PID_T; + /* What should a signal handler return? */ + /* =()<#define SIGHANDLER @@>()= */ +#define SIGHANDLER void + +#if defined(SIG_DFL) + /* What types of variables can be modified in a signal handler? */ + /* =()@ SIGVAR;>()= */ +typedef int SIGVAR; +#endif /* defined(SIG_DFL) */ + +/* =()<#include @@>()= */ +#include +/* =()<#include @@>()= */ +#include + + +/* +** It's a pity we have to go through these contortions, for broken +** systems that have fd_set but not the FD_SET. +*/ +#if defined(FD_SETSIZE) +#define FDSET fd_set +#else +#include +#if !defined(NOFILE) + error -- #define NOFILE to the number of files allowed on your machine! +#endif /* !defined(NOFILE) */ +#if !defined(howmany) +#define howmany(x, y) (((x) + ((y) - 1)) / (y)) +#endif /* !defined(howmany) */ +#define FD_SETSIZE NOFILE +#define NFDBITS (sizeof (long) * 8) +typedef struct _FDSET { + long fds_bits[howmany(FD_SETSIZE, NFDBITS)]; +} FDSET; +#define FD_SET(n, p) (p)->fds_bits[(n) / NFDBITS] |= (1 << ((n) % NFDBITS)) +#define FD_CLR(n, p) (p)->fds_bits[(n) / NFDBITS] &= ~(1 << ((n) % NFDBITS)) +#define FD_ISSET(n, p) ((p)->fds_bits[(n) / NFDBITS] & (1 << ((n) % NFDBITS))) +#define FD_ZERO(p) (void)memset((POINTER)(p), 0, sizeof *(p)) +#endif /* defined(FD_SETSIZE) */ + + +#if !defined(SEEK_SET) +#define SEEK_SET 0 +#endif /* !defined(SEEK_SET) */ +#if !defined(SEEK_END) +#define SEEK_END 2 +#endif /* !defined(SEEK_END) */ + +/* +** We must use #define to set FREEVAL, since "typedef void FREEVAL;" doesn't +** work on some broken compilers, sigh. +*/ +/* =()<#define FREEVAL @@>()= */ +#define FREEVAL int + +extern int optind; +extern char *optarg; +#if !defined(__STDC__) +extern int errno; +#endif /* !defined(__STDC__) */ + +extern char *getenv(); +extern char *inet_ntoa(); +extern char *mktemp(); +#if !defined(strerror) +extern char *strerror(); +#endif /* !defined(strerror) */ +extern long atol(); +extern time_t time(); +extern unsigned long inet_addr(); +extern FREEVAL free(); +extern POINTER malloc(); +extern POINTER realloc(); +#if defined(ACT_MMAP) +extern char *mmap(); +#endif /* defined(ACT_MMAP) */ + +/* Some backward systems need this. */ +extern FILE *popen(); + +/* This is in , but not in some system string headers, + * so we put it here just in case. */ +extern int strncasecmp(); + +/* =()@ abort();>()= */ +extern int abort(); +/* =()@ alarm();>()= */ +extern int alarm(); +/* =()@ exit();>()= */ +extern void exit(); +/* =()@ getpid();>()= */ +extern int getpid(); +/* =()@ lseek();>()= */ +extern off_t lseek(); +/* =()@ qsort();>()= */ +extern int qsort(); +/* =()@ sleep();>()= */ +extern int sleep(); +/* =()@ _exit();>()= */ +extern int _exit(); -- cgit v1.2.3