From 0e8fd3398771da2f016d72830179507f3edda51b Mon Sep 17 00:00:00 2001 From: Samba Release Account Date: Sat, 4 May 1996 07:50:46 +0000 Subject: Initial version imported to CVS (This used to be commit 291551d80711daab7b7581720bcd9a08d6096517) --- source3/include/includes.h | 1154 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1154 insertions(+) create mode 100644 source3/include/includes.h (limited to 'source3/include/includes.h') diff --git a/source3/include/includes.h b/source3/include/includes.h new file mode 100644 index 0000000000..cc2bbbfad7 --- /dev/null +++ b/source3/include/includes.h @@ -0,0 +1,1154 @@ +#ifndef _INCLUDES_H +#define _INCLUDES_H +/* + Unix SMB/Netbios implementation. + Version 1.9. + Machine customisation and include handling + Copyright (C) Andrew Tridgell 1994-1995 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ +/* + This file does all the #includes's. This makes it easier to + port to a new unix. Hopefully a port will only have to edit the Makefile + and add a section for the new unix below. +*/ + + +/* the first OS dependent section is to setup what includes will be used. + the main OS dependent section comes later on +*/ + +#ifdef ALTOS +#define NO_UTIMEH +#endif + +#ifdef MIPS +#define POSIX_H +#define NO_UTIMEH +#endif + +#ifdef sun386 +#define NO_UTIMEH +#endif + +#ifdef NEXT2 +#define NO_UTIMEH +#endif + +#ifdef NEXT3_0 +#define NO_UTIMEH +#define NO_UNISTDH +#endif + +#ifdef APOLLO +#define NO_UTIMEH +#define NO_SYSMOUNTH +#define NO_UNISTDH +#endif + +#ifdef AIX +#define NO_SYSMOUNTH +#endif + +#ifdef M88K_R3 +#define SVR3H +#define NO_RESOURCEH +#endif + +#ifdef DNIX +#define NO_SYSMOUNTH +#define NO_NETIFH +#define NO_RESOURCEH +#define PRIME_NMBD 0 +#define NO_SETGROUPS +#endif + + +#ifdef ISC +#define SYSSTREAMH +#define NO_RESOURCEH +#endif + +#ifdef QNX +#define NO_RESOURCEH +#define NO_SYSMOUNTH +#define USE_MMAP 1 +#ifdef __386__ + #define __i386__ +#endif +#endif + +#ifdef NEWS42 +#define NO_UTIMEH +#define NO_STRFTIME +#define NO_UTIMBUF +#define REPLACE_MKTIME +#define NO_TM_NAME +#endif + +#ifdef OS2 +#define NO_SYSMOUNTH +#define NO_NETIFH +#endif + +#ifdef LYNX +#define NO_SYSMOUNTH +#endif + + +#if (defined(SHADOW_PWD)||defined(OSF1_ENH_SEC)||defined(SecureWare)||defined(PWDAUTH)) +#define PASSWORD_LENGTH 16 +#endif + +/* here is the general includes section - with some ifdefs generated + by the previous section +*/ +#include "local.h" +#include +#ifdef POSIX_STDLIBH +#include +#else +#include +#endif +#include +#include +#ifndef NO_UTIMEH +#include +#endif +#include + +#ifdef SVR3H +#include +#include +#include +#include +#include +#endif + +#include +#include +#include +#ifdef POSIX_H +#include +#include +#include +#else +#include +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#ifndef NO_RESOURCEH +#include +#endif +#ifndef NO_SYSMOUNTH +#include +#endif +#include +#ifdef __STDC__ +#include +#else +#include +#endif +#ifndef NO_UNISTDH +#include +#endif +#include +#ifdef SYSSTREAMH +#include +#endif +#ifndef NO_NETIFH +#ifdef POSIX_H +#include +#else +#include +#endif +#endif + +#if USE_MMAP +#include +#endif + +#if defined(GETPWANAM) +#include +#include +#include +#include +#endif + +#if defined(SHADOW_PWD) && !defined(NETBSD) && !defined(CONVEX) +#include +#endif + +/* this might be different on different systems */ +#ifdef QUOTAS +#ifdef LINUX +#ifdef __KERNEL__ +#undef __KERNEL__ +#include +#define __KERNEL__ +#else +#include +#endif +#include +#else +#include +#ifndef CRAY +#include +#else +#include +#endif +#endif +#endif + +#ifdef SYSLOG +#include +#endif + + + +/*************************************************************************** +Here come some platform specific sections +***************************************************************************/ + + +#ifdef LINUX +#include +#include +#include +#include +#include +#ifndef NO_ASMSIGNALH +#include +#endif +#define SIGNAL_CAST (__sighandler_t) +#define USE_GETCWD +#define USE_SETSID +#define HAVE_BZERO +#define HAVE_MEMMOVE +#ifdef SHADOW_PWD +#ifndef crypt +#define crypt pw_encrypt +#endif +#endif +#endif + +#ifdef SUNOS4 +#define SIGNAL_CAST (void (*)(int)) +#include +#include +#include +#include +#include +#include +#include +#include +/* #include */ +#ifdef sun386 +#define NO_STRFTIME +#define NO_UTIMBUF +#define mktime timelocal +typedef unsigned short mode_t; +#else +#include +#define NO_STRERROR +#endif +#define REPLACE_GETPASS +#define BSD_TERMIO +#endif + + +#ifdef SUNOS5 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +extern int gettimeofday (struct timeval *, void *); +extern int gethostname (char *name, int namelen); +extern int innetgr (const char *, const char *, const char *, const char *); +#define USE_SETVBUF +#define SIGNAL_CAST (void (*)(int)) +#ifndef SYSV +#define SYSV +#endif +#define USE_WAITPID +#define REPLACE_STRLEN +#define USE_STATVFS +#define USE_GETCWD +#define USE_SETSID +#define REPLACE_GETPASS +#endif + + +#ifdef ULTRIX +#include +#include +#include +#include +#ifdef ULTRIX_AUTH +#include +#endif +char *getwd(char *); +#define NOSTRDUP +#ifdef __STDC__ +#define SIGNAL_CAST (void(*)(int)) +#endif +#define USE_DIRECT +#endif + +#ifdef SGI +#include +#include +#include +#include +#ifndef SYSV +#define SYSV +#endif +#define SIGNAL_CAST (void (*)()) +#define STATFS4 +#define USE_WAITPID +#define USE_DIRECT +#endif + +#ifdef SGI5 +#include +#include +#include +#include +#include +#define USE_WAITPID +#define NETGROUP +#ifndef SYSV +#define SYSV +#endif +#define SIGNAL_CAST (void (*)()) +#define USE_STATVFS +#define USE_WAITPID +#endif + + +#ifdef MIPS +#include +#include +#include +#include +#include +#include +#include +#define SIGNAL_CAST (void (*)()) +typedef int mode_t; +extern struct group *getgrnam(); +extern struct passwd *getpwnam(); +#define STATFS4 +#define NO_STRERROR +#define REPLACE_STRSTR +#endif /* MIPS */ + + + +#ifdef DGUX +#include +#include +#include +#include +#include +#include +#define SYSV +#define USE_WAITPID +#define SIGNAL_CAST (void (*)(int)) +#define STATFS4 +#define USE_GETCWD +#endif + + +#ifdef SVR4 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define SYSV +#define USE_WAITPID +#define SIGNAL_CAST (void (*)(int)) +#define USE_STATVFS +#define USE_GETCWD +#define USE_SETSID +#endif + + +#ifdef OSF1 +#include +#include +#include +char *getwd(char *); +char *mktemp(char *); /* No standard include */ +#include +#include /* both for inet_ntoa */ +#define SIGNAL_CAST ( void (*) (int) ) +#define STATFS3 +#define USE_F_FSIZE +#include +#ifdef OSF1_ENH_SEC +#include +#include +#include +#include +#include +#define PASSWORD_LENGTH 16 +#define NEED_AUTH_PARAMETERS +#endif /* OSF1_ENH_SEC */ +#endif + + +#ifdef CLIX +#include +#define SIGNAL_CAST (void (*)()) +#include +#include +#include +#define NO_EID +#define USE_WAITPID +#define STATFS4 +#define NO_FSYNC +#define USE_GETCWD +#define USE_SETSID +#define REPLACE_GETPASS +#define NO_GETRLIMIT +#endif /* CLIX */ + + + +#ifdef BSDI +#include +#include +#define SIGNAL_CAST (void (*)()) +#define USE_DIRECT +#endif + + +#ifdef NETBSD +#include +#include +/* you may not need this */ +#define NO_GETSPNAM +#define SIGNAL_CAST (void (*)()) +#define USE_DIRECT +#define REPLACE_INNETGR +#endif + + + +#ifdef FreeBSD +#include +#include +#include +#include +#define SIGNAL_CAST (void (*)()) +#define USE_DIRECT +#define REPLACE_INNETGR +#endif + + + +#ifdef AIX +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define SYSV +#define USE_WAITPID +#define SIGNAL_CAST (void (*)()) +#define DEFAULT_PRINTING PRINT_AIX +#endif + + +#ifdef HPUX +#include +#include +#include +#include +#include +#include +#include +#ifdef HPUX_10_TRUSTED +#include +#include +#define NEED_AUTH_PARAMETERS +#endif +#define SIGNAL_CAST (void (*)(__harg)) +#define SELECT_CAST (int *) +#define SYSV +#define USE_WAITPID +#define WAIT3_CAST2 (int *) +#define USE_GETCWD +#define USE_SETSID +#define USE_SETRES +#define DEFAULT_PRINTING PRINT_HPUX +#define SIGCLD_IGNORE +#endif + + +#ifdef SEQUENT +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define SIGNAL_CAST (void (*)(int)) +#define USE_WAITPID +#define USE_GETCWD +#define NO_EID +#define STATFS4 +#define USE_DIRECT +#endif + +#ifdef NEXT2 +#include +#include +#include +#include +#define bzero(b,len) memset(b,0,len) +#define mode_t int +#define NO_UTIMBUF +#include +#define NOSTRDUP +#define USE_DIRECT +#define USE_WAITPID +#endif + + +#ifdef NEXT3_0 +#include +#include +#include +#define bzero(b,len) memset(b,0,len) +#define NO_UTIMBUF +#include +#define NOSTRDUP +#define USE_DIRECT +#define mode_t int +#define GID_TYPE int +#define gid_t int +#define SIGNAL_CAST (void (*)(int)) +#define WAIT3_CAST1 (union wait *) +#define HAVE_GMTOFF +#endif + + + +#ifdef APOLLO +#include +#include +#include +#define NO_UTIMBUF +#define USE_DIRECT +#define USE_GETCWD +#define SIGNAL_CAST (void (*)()) +#define HAVE_FCNTL_LOCK 0 +#define HAVE_GETTIMEOFDAY +#define STATFS4 +#endif + + + +#ifdef SCO +#include +#include +#include +#include +#include +#include +#include +#include +#include +#ifdef EVEREST +#include +#endif +#ifdef NETGROUP +#include +#endif +#ifdef SecureWare +#include +#include +#include +#define crypt bigcrypt +#endif +#ifndef EVEREST + #define ftruncate(f,l) syscall(0x0a28,f,l) +#endif +#define SIGNAL_CAST (void (*)(int)) +#define USE_WAITPID +#define USE_GETCWD +#define USE_SETSID +#ifdef SCO3_2_2 +#define NO_EID +#else +#ifndef EVEREST +#define USE_IFREQ +#endif +#endif +#define STATFS4 +#define NO_FSYNC +#ifndef EVEREST +#define NO_INITGROUPS +#endif +#define HAVE_PATHCONF +#define NO_GETRLIMIT +#endif + + + +/* Definitions for RiscIX */ +#ifdef RiscIX +#define SIGNAL_CAST (void (*)(int)) +#include +#include +#include +#include +#include +#include +#define HAVE_GETTIMEOFDAY +#define NOSTRCASECMP +#define NOSTRDUP +#endif + + + +#ifdef ISC +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define FIONREAD FIORDCHK +#define SYSV +#define USE_WAITPID +#define SIGNAL_CAST (void (*)(int)) +#define USE_GETCWD +#define USE_SETSID +#define USE_IFREQ +#define NO_FTRUNCATE +#define STATFS4 +#define NO_FSYNC +#endif + + + +#ifdef AUX +#include +#include +#include +#include +#include +#include +#define SYSV +#define USE_WAITPID +#define SIGNAL_CAST (void (*)(int)) +char *strdup (char *); +#define USE_GETCWD +#endif + + +#ifdef M88K_R3 +#include +#include +#include +#include +#define STATFS4 +#define SYSV +#define USE_WAITPID +#define SIGNAL_CAST (void (*)(int)) +char *strdup (char *); +#define USE_GETCWD +#define NO_FSYNC +#define NO_EID +#endif + + +#ifdef DNIX +#include +#include +#include +#include +#include +#define NO_GET_BROADCAST +#define USE_WAITPID +#define USE_GETCWD +#define USE_SETSID +#define STATFS4 +#define NO_EID +#define PF_INET AF_INET +#define NO_STRERROR +#define ftruncate(f,l) chsize(f,l) +#endif /* DNIX */ + +#ifdef CONVEX +#define SIGNAL_CAST (void (*)(int)) +#include +#include +#include +#include +#include +#include +#define DONT_REINSTALL_SIG +#define USE_SIGBLOCK +#define USE_WAITPID +#define SIGNAL_CAST (_SigFunc_Ptr_t) +#define NO_GETSPNAM +#define HAVE_MEMMOVE +extern char *mktemp(char *); +extern int fsync(int); +extern int seteuid(uid_t); +extern int setgroups(int, int *); +extern int initgroups(char *, int); +extern int statfs(char *, struct statfs *); +extern int setegid(gid_t); +extern int getopt(int, char *const *, const char *); +extern int chroot(char *); +extern int gettimeofday(struct timeval *, struct timezone *); +extern int gethostname(char *, int); +extern char *crypt(char *, char *); +extern char *getpass(char *); +#endif + + +#ifdef CRAY +#define MAXPATHLEN 1024 +#include +#include +#include +#include +#define SIGNAL_CAST (void (*)(int)) +#define SIGCLD_IGNORE +#define HAVE_FCNTL_LOCK 1 +#define USE_SETSID +#define STATFS4 +#endif + + +#ifdef ALTOS +#include +#include +#include +#include +#include +#define const +#define uid_t int +#define gid_t int +#define mode_t int +#define ptrdiff_t int +#define HAVE_GETGRNAM 0 +#define NO_EID +#define NO_FSYNC +#define NO_FTRUNCATE +#define NO_GETRLIMIT +#define NO_INITGROUPS +#define NO_SELECT +#define NO_SETGROUPS +#define NO_STRERROR +#define NO_STRFTIME +#define NO_TM_NAME +#define NO_UTIMEH +#define NOSTRCASECMP +#define REPLACE_MKTIME +#define REPLACE_RENAME +#define REPLACE_STRSTR +#define STATFS4 +#define USE_GETCWD +#endif + +#ifdef QNX +#define STATFS4 +#include +#include +#include +#include +#define SIGNAL_CAST (void (*)()) +#define USE_WAITPID +#define NO_INITGROUPS +#define NO_SETGROUPS +#define HAVE_TIMEZONE +#define USE_GETCWD +#define USE_SETSID +#define HAVE_FCNTL_LOCK 1 +#define DEFAULT_PRINTING PRINT_QNX +#endif + + +#ifdef NEWS42 +#include +#include +#include +#include +typedef int mode_t; +#endif + +#ifdef OS2 +#include +#include +#include +#include +#define SIGNAL_CAST (void (*)()) +#define HAVE_FCNTL_LOCK 0 +#define USE_WAITPID +#define NO_GET_BROADCAST +#define NO_EID +#define NO_SETGROUPS +#define NO_INITGROUPS +#define NO_CRYPT +#define NO_STATFS +#define NO_CHROOT +#define NO_CHOWN +#define strcasecmp stricmp +#define strncasecmp strnicmp +#endif + + +#ifdef LYNX +#define SIGNAL_CAST (void (*)()) +#define WAIT3_CAST1 (union wait *) +#define STATFS4 +#include +#include +#include +#include +#include +#include +#define USE_GETCWD +#define USE_GETSID +#endif + + +/******************************************************************* +end of the platform specific sections +********************************************************************/ + +#ifdef SecureWare +#define NEED_AUTH_PARAMETERS +#endif + +#ifdef REPLACE_GETPASS +extern char *getsmbpass(char *); +#define getpass(s) getsmbpass(s) +#endif + +#ifdef REPLACE_INNETGR +#define innetgr(group,host,user,dom) InNetGr(group,host,user,dom) +#endif + +#ifndef FD_SETSIZE +#define FD_SETSIZE 255 +#endif + +#ifndef MAXINT +#define MAXINT ((((unsigned)1)<<(sizeof(int)*8-1))-1) +#endif + +#ifndef __STDC__ +#define const +#endif + +/* Now for some other grungy stuff */ +#ifdef NO_GETSPNAM +struct spwd { /* fake shadow password structure */ + char *sp_pwdp; +}; +#endif + +#ifndef HAVE_BZERO +#ifndef bzero +#define bzero(p,s) memset(p,0,s) +#endif +#endif + +#ifndef HAVE_MEMMOVE +#ifndef memmove +#define memmove(d,s,n) MemMove(d,s,n) +#endif +#endif + +#ifdef USE_DIRECT +#include +#endif + +/* some unixes have ENOTTY instead of TIOCNOTTY */ +#ifndef TIOCNOTTY +#ifdef ENOTTY +#define TIOCNOTTY ENOTTY +#endif +#endif + +#ifndef SIGHUP +#define SIGHUP 1 +#endif + +/* if undefined then use bsd or sysv printing */ +#ifndef DEFAULT_PRINTING +#ifdef SYSV +#define DEFAULT_PRINTING PRINT_SYSV +#else +#define DEFAULT_PRINTING PRINT_BSD +#endif +#endif + + +#ifdef AFS_AUTH +#include +#include +#endif + +#ifdef DFS_AUTH +#include +#include +#endif + +#ifdef NO_UTIMBUF +struct utimbuf { + time_t actime; + time_t modtime; +}; +#endif + +#ifdef NO_STRERROR +#ifndef strerror +extern char *sys_errlist[]; +#define strerror(i) sys_errlist[i] +#endif +#endif + +#ifndef perror +#define perror(m) printf("%s: %s\n",m,strerror(errno)) +#endif + +#ifndef MAXHOSTNAMELEN +#define MAXHOSTNAMELEN 255 +#endif + +#include "version.h" +#include "smb.h" +#include "byteorder.h" +#ifdef SMB_PASSWD +#include "smbpass.h" +#endif + +#include "kanji.h" +#include "charset.h" + +#ifndef S_IFREG +#define S_IFREG 0100000 +#endif + +#ifndef S_ISREG +#define S_ISREG(x) ((S_IFREG & x)!=0) +#endif + +#ifndef S_ISDIR +#define S_ISDIR(x) ((S_IFDIR & x)!=0) +#endif + +#ifdef UFC_CRYPT +#define crypt ufc_crypt +#endif + +#ifdef REPLACE_STRLEN +#define strlen(s) Strlen(s) +#endif + +#ifdef REPLACE_STRSTR +#define strstr(s,p) Strstr(s,p) +#endif + +#ifdef REPLACE_MKTIME +#define mktime(t) Mktime(t) +#endif + +#ifndef NGROUPS_MAX +#define NGROUPS_MAX 128 +#endif + +#ifndef EDQUOT +#define EDQUOT ENOSPC +#endif + +#ifndef HAVE_GETGRNAM +#define HAVE_GETGRNAM 1 +#endif + +#ifndef SOL_TCP +#define SOL_TCP 6 +#endif + +/* default to using ftruncate workaround as this is safer than assuming +it works and getting lots of bug reports */ +#ifndef FTRUNCATE_CAN_EXTEND +#define FTRUNCATE_CAN_EXTEND 0 +#endif + +/* maybe this unix doesn't separate RD and WR locks? */ +#ifndef F_RDLCK +#define F_RDLCK F_WRLCK +#endif + +#ifndef ENOTSOCK +#define ENOTSOCK EINVAL +#endif + +#ifndef SIGCLD +#define SIGCLD SIGCHLD +#endif + +#ifndef HAVE_FCNTL_LOCK +#define HAVE_FCNTL_LOCK 1 +#endif + +#ifndef WAIT3_CAST2 +#define WAIT3_CAST2 (struct rusage *) +#endif + +#ifndef WAIT3_CAST1 +#define WAIT3_CAST1 (int *) +#endif + +#ifndef QSORT_CAST +#define QSORT_CAST (int (*)()) +#endif + +/* this is a rough check to see if this machine has a lstat() call. + it is not guaranteed to work */ +#if !(defined(S_ISLNK) || defined(S_IFLNK)) +#define lstat stat +#endif + +/* Not all systems declare ERRNO in errno.h... and some systems #define it! */ +#ifndef errno +extern int errno; +#endif + + +#ifdef NO_EID +#define geteuid() getuid() +#define getegid() getgid() +#define seteuid(x) setuid(x) +#define setegid(x) setgid(x) +#endif + + +#if (HAVE_FCNTL_LOCK == 0) +/* since there is no locking available, system includes */ +/* for DomainOS 10.4 do not contain any of the following */ +/* #define's. So, to satisfy the compiler, add these */ +/* #define's, although they arn't really necessary. */ +#define F_GETLK 0 +#define F_SETLK 0 +#define F_WRLCK 0 +#define F_UNLCK 0 +#endif /* HAVE_FCNTL_LOCK == 0 */ + +#ifdef NOSTRCASECMP +#define strcasecmp(s1,s2) StrCaseCmp(s1,s2) +#define strncasecmp(s1,s2,n) StrnCaseCmp(s1,s2,n) +#endif + +#ifndef strcpy +#define strcpy(dest,src) StrCpy(dest,src) +#endif + + +/* possibly wrap the malloc calls */ +#if WRAP_MALLOC + +/* undo the old malloc def if necessary */ +#ifdef malloc +#define xx_old_malloc malloc +#undef malloc +#endif + +#define malloc(size) malloc_wrapped(size,__FILE__,__LINE__) + +/* undo the old realloc def if necessary */ +#ifdef realloc +#define xx_old_realloc realloc +#undef realloc +#endif + +#define realloc(ptr,size) realloc_wrapped(ptr,size,__FILE__,__LINE__) + +/* undo the old free def if necessary */ +#ifdef free +#define xx_old_free free +#undef free +#endif + +#define free(ptr) free_wrapped(ptr,__FILE__,__LINE__) + +/* and the malloc prototypes */ +void *malloc_wrapped(int,char *,int); +void *realloc_wrapped(void *,int,char *,int); +void free_wrapped(void *,char *,int); + +#endif + + +#if WRAP_MEMCPY +/* undo the old memcpy def if necessary */ +#ifdef memcpy +#define xx_old_memcpy memcpy +#undef memcpy +#endif + +#define memcpy(d,s,l) memcpy_wrapped(d,s,l,__FILE__,__LINE__) +void *memcpy_wrapped(void *d,void *s,int l,char *fname,int line); +#endif + +#endif -- cgit