This is includes.h in view mode; [Download] [Up]
/* includes.h Author: Tatu Ylonen <ylo@cs.hut.fi> Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland All rights reserved Created: Thu Mar 23 16:29:37 1995 ylo This file includes most of the needed system headers. */ /* * $Id: includes.h,v 1.12 1998/04/30 01:51:53 kivinen Exp $ * $Log: includes.h,v $ * Revision 1.12 1998/04/30 01:51:53 kivinen * Added linux sparc fix. * * Revision 1.11 1998/01/21 14:01:11 kivinen * Fixed bug raported Paul J. Sanchez <paul@spectrum.slu.edu> * about S_ISLNK macro defination. * * Revision 1.10 1998/01/02 06:18:20 kivinen * Added sys/resource.h include. Added _S_IFLNK and S_ISLNK * defines if not defined by system. * * Revision 1.9 1997/03/19 18:02:19 kivinen * Added SECURE_RPC, SECURE_NFS and NIS_PLUS support from Andy * Polyakov <appro@fy.chalmers.se>. * * Revision 1.8 1996/10/14 16:16:19 ttsalo * Support for OpenBSD (from Thorsten Lockert <tholo@SigmaSoft.COM> * * Revision 1.7 1996/10/14 02:37:12 ylo * Removed spaces from error tokens so that compiler reports the * error in the right place. * * Revision 1.6 1996/10/07 11:40:20 ttsalo * Configuring for hurd and a small fix to do_popen() * from "Charles M. Hannum" <mycroft@gnu.ai.mit.edu> added. * * Revision 1.5 1996/08/11 22:30:59 ylo * Changed the way machine/endian.h include is tested (no longer * lists specific systems). * Added optional defines of _S_IFMT and _S_IFDIR. * * Revision 1.4 1996/07/12 07:19:23 ttsalo * SCO v5 support * * Revision 1.3 1996/04/26 00:33:48 ylo * Added support for HPUX 7.x. * * Revision 1.2 1996/04/22 23:40:42 huima * Added #define SUPPORT_OLD_CHANNELS. * * Revision 1.1.1.1 1996/02/18 21:38:10 ylo * Imported ssh-1.2.13. * * Revision 1.12 1995/10/02 01:22:37 ylo * Added machine/endian.h on Paragon. * * Revision 1.11 1995/09/27 02:14:08 ylo * Added support for SCO unix. * * Revision 1.10 1995/09/21 17:11:28 ylo * Added Paragon support. * Added definition of AF_UNIX_SIZE. * * Revision 1.9 1995/09/13 11:57:21 ylo * Changed the code so that "short" gets used as word32 on Cray. * Some of the code depends on that. (BTW, "short" has really * weird semantics on Cray...) * * Revision 1.8 1995/09/11 17:35:27 ylo * Define word32 properly if any int type is 32 bits. * * Revision 1.7 1995/08/18 22:54:59 ylo * Added using netinet/in_system.h if netinet/in_systm.h does not * exist (some old linux versions, at least). * * Added support for NextStep. * * Revision 1.6 1995/07/27 03:27:46 ylo * Moved sparc HAVE_SYS_IOCTL_H stuff to the proper place. * * Revision 1.5 1995/07/26 23:35:32 ylo * Undef HAVE_VHANGUP on Sony News. * * Revision 1.4 1995/07/26 23:15:05 ylo * Include version.h. * Fixed SIZEOF_LONG test. * Added ultrix specific porting stuff. * Added sparc/sunos specific porting stuff. * * Revision 1.3 1995/07/13 01:46:00 ylo * Added snabb's patches for IRIX 4. * * Revision 1.2 1995/07/13 01:25:11 ylo * Removed "Last modified" header. * Added cvs log. * * $Endlog$ */ #ifndef INCLUDES_H #define INCLUDES_H /* Note: autoconf documentation tells to use the <...> syntax and have -I. */ #include <config.h> #include "version.h" typedef unsigned short word16; #if SIZEOF_LONG == 4 typedef unsigned long word32; #else #if SIZEOF_INT == 4 typedef unsigned int word32; #else #if SIZEOF_SHORT >= 4 typedef unsigned short word32; #else YOU_LOSE #endif #endif #endif #if defined(SCO) && !defined(SCO5) /* this is defined so that winsize gets ifdef'd in termio.h */ #define _IBCS2 #endif #if defined(__mips) /* Mach3 on MIPS defines conflicting garbage. */ #define uint32 hidden_uint32 #endif /* __mips */ #include <sys/types.h> #if defined(__mips) #undef uint32 #endif /* __mips */ #ifdef HAVE_MACHINE_ENDIAN_H #include <sys/param.h> #include <machine/endian.h> #endif #if defined(linux) #include <endian.h> #endif #include <stdio.h> #include <ctype.h> #include <sys/stat.h> #include <errno.h> #include <fcntl.h> #include <assert.h> #include <signal.h> #ifdef sparc #ifdef linux #undef HAVE_UTMPX_H #else #undef HAVE_SYS_IOCTL_H #endif #endif #ifdef HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif /* HAVE_SYS_IOCTL_H */ #ifdef HAVE_TERMIOS_H #include <termios.h> #define USING_TERMIOS #endif /* HAVE_TERMIOS_H */ #if defined(HAVE_SGTTY_H) && !defined(USING_TERMIOS) #include <sgtty.h> #define USING_SGTTY #endif #if !defined(USING_SGTTY) && !defined(USING_TERMIOS) ERROR NO TERMIOS OR SGTTY #endif #ifdef STDC_HEADERS #include <stdlib.h> #include <string.h> #include <stdarg.h> #else /* STDC_HEADERS */ /* stdarg.h is present almost everywhere, and comes with gcc; I am too lazy to make things work with both it and varargs. */ #include <stdarg.h> #ifndef HAVE_STRCHR #define strchr index #define strrchr rindex #endif char *strchr(), *strrchr(); #ifndef HAVE_MEMCPY #define memcpy(d, s, n) bcopy((s), (d), (n)) #define memmove(d, s, n) bcopy((s), (d), (n)) #define memset(d, ch, n) bzero((d), (n)) /* We only memset to 0. */ #define memcmp(a, b, n) bcmp((a), (b), (n)) #endif #endif /* STDC_HEADERS */ #include <sys/socket.h> #include <netinet/in.h> #ifdef HAVE_NETINET_IN_SYSTM_H #include <netinet/in_systm.h> #else /* Some old linux systems at least have in_system.h instead. */ #ifdef HAVE_NETINET_IN_SYSTEM_H #include <netinet/in_system.h> #endif /* HAVE_NETINET_IN_SYSTEM_H */ #endif /* HAVE_NETINET_IN_SYSTM_H */ #ifdef __OpenBSD__ #include <netgroup.h> #include <util.h> #endif #ifdef SCO /* SCO does not have a un.h and there is no appropriate substitute. */ /* Latest news: it doesn't have AF_UNIX at all, but this allows it to compile, and outgoing forwarded connections appear to work. */ struct sockaddr_un { short sun_family; /* AF_UNIX */ char sun_path[108]; /* path name (gag) */ }; /* SCO needs sys/stream.h and sys/ptem.h */ #include <sys/stream.h> #include <sys/ptem.h> #else /* SCO */ #include <sys/un.h> #endif /* SCO */ #ifdef HAVE_NETINET_IP_H #include <netinet/ip.h> #endif /* HAVE_NETINET_IP_H */ #ifdef HAVE_NETINET_TCP_H #include <netinet/tcp.h> #endif /* HAVE_NETINET_TCP_H */ #if defined(HPSUX7_KLUDGES) struct linger { int l_onoff;/* option on/off */ int l_linger; /* linger time */ }; #else /* normal system */ #include <arpa/inet.h> #endif #include <netdb.h> #ifdef HAVE_SYS_SELECT_H #include <sys/select.h> #endif /* HAVE_SYS_SELECT_H */ #include <pwd.h> #include <grp.h> #ifdef HAVE_GETSPNAM #include <shadow.h> #endif /* HAVE_GETSPNAM */ #ifdef HAVE_SYS_WAIT_H #include <sys/wait.h> #else /* HAVE_SYS_WAIT_H */ #if !defined(WNOHANG) /* && (defined(bsd43) || defined(vax)) */ #define WNOHANG 1 #endif #ifndef WEXITSTATUS #define WEXITSTATUS(X) ((unsigned)(X) >> 8) #endif #ifndef WIFEXITED #define WIFEXITED(X) (((X) & 255) == 0) #endif #ifndef WIFSIGNALED #define WIFSIGNALED(X) ((((X) & 255) != 0x255 && ((X) & 255) != 0)) #endif #ifndef WTERMSIG #define WTERMSIG(X) ((X) & 255) #endif #endif /* HAVE_SYS_WAIT_H */ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif /* HAVE_UNISTD_H */ #ifdef TIME_WITH_SYS_TIME #ifndef SCO /* I excluded <sys/time.h> to avoid redefinition of timeval which SCO puts in both <sys/select.h> and <sys/time.h> */ #include <sys/time.h> #endif /* SCO */ #include <time.h> #else /* TIME_WITH_SYS_TIME */ #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #else /* HAVE_SYS_TIME_H */ #include <time.h> #endif /* HAVE_SYS_TIME_H */ #endif /* TIME_WITH_SYS_TIME */ #if HAVE_SYS_RESOURCE_H #include <sys/resource.h> #endif #ifdef HAVE_PATHS_H #include <paths.h> #endif #if HAVE_DIRENT_H #include <dirent.h> #define NAMLEN(dirent) strlen((dirent)->d_name) #else #define dirent direct #define NAMLEN(dirent) (dirent)->d_namlen #if HAVE_SYS_NDIR_H #include <sys/ndir.h> #endif #if HAVE_SYS_DIR_H #include <sys/dir.h> #endif #if HAVE_NDIR_H #include <ndir.h> #endif #endif /* These POSIX macros are not defined in every system. */ #ifndef S_IRWXU #define S_IRWXU 00700 /* read, write, execute: owner */ #define S_IRUSR 00400 /* read permission: owner */ #define S_IWUSR 00200 /* write permission: owner */ #define S_IXUSR 00100 /* execute permission: owner */ #define S_IRWXG 00070 /* read, write, execute: group */ #define S_IRGRP 00040 /* read permission: group */ #define S_IWGRP 00020 /* write permission: group */ #define S_IXGRP 00010 /* execute permission: group */ #define S_IRWXO 00007 /* read, write, execute: other */ #define S_IROTH 00004 /* read permission: other */ #define S_IWOTH 00002 /* write permission: other */ #define S_IXOTH 00001 /* execute permission: other */ #endif /* S_IRWXU */ #ifndef S_ISUID #define S_ISUID 0x800 #endif /* S_ISUID */ #ifndef S_ISGID #define S_ISGID 0x400 #endif /* S_ISGID */ #ifndef S_ISDIR /* NextStep apparently fails to define this. */ #define S_ISDIR(mode) (((mode)&(_S_IFMT))==(_S_IFDIR)) #endif #ifndef _S_IFMT #define _S_IFMT 0170000 #endif #ifndef _S_IFDIR #define _S_IFDIR 0040000 #endif #ifndef _S_IFLNK #define _S_IFLNK 0120000 #endif #ifndef S_ISLNK #define S_ISLNK(mode) (((mode)&(_S_IFMT))==(_S_IFLNK)) #endif #if USE_STRLEN_FOR_AF_UNIX #define AF_UNIX_SIZE(unaddr) \ (sizeof((unaddr).sun_family) + strlen((unaddr).sun_path) + 1) #else #define AF_UNIX_SIZE(unaddr) sizeof(unaddr) #endif #define SUPPORT_OLD_CHANNELS #ifdef _HPUX_SOURCE #define seteuid(uid) setresuid(-1,(uid),-1) #endif #endif /* INCLUDES_H */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.