/* * This file was produced by running the config_h.SH script, which * gets its values from config.sh, which is generally produced by * running Configure. * * Feel free to modify any of this as the need arises. Note, however, * that running eif_config.h.SH again will wipe out any changes you've made. * For a more permanent change edit config.sh and rerun eif_config.h.SH. * * $Id$ */ /* Configuration time: Tue Nov 22 09:59:25 PST 1994 * Configured by: davidm * Target system: sofia sofia 3.2 2 i386 */ #ifndef _config_h_ #define _config_h_ /* BSD: * This symbol, if defined, indicates that the program is running under * a BSD system. */ /*#define BSD /**/ /* ABORTSIG: * This symbol holds the signal number (symbol) used by the abort() call. To * actually define the signal symbol, should be included. */ #define ABORTSIG SIGABRT /**/ /* MEM_ALIGNBYTES: * This symbol contains the number of bytes required to align a * double. Usual values are 2, 4 and 8. */ #define MEM_ALIGNBYTES 4 /**/ /* BYTEORDER: * This symbol hold the hexadecimal constant defined in byteorder, * i.e. 0x1234 or 0x4321, etc... */ #define BYTEORDER 0x1234 /* large digits for MSB */ /* CAT2: * This macro catenates 2 tokens together. */ #if 1 == 1 #define CAT2(a,b)a/**/b #define CAT3(a,b,c)a/**/b/**/c #define CAT4(a,b,c,d)a/**/b/**/c/**/d #define CAT5(a,b,c,d,e)a/**/b/**/c/**/d/**/e #define STRINGIFY(a)"a" /* If you can get stringification with catify, tell me how! */ #endif #if 1 == 42 #define CAT2(a,b)a ## b #define CAT3(a,b,c)a ## b ## c #define CAT4(a,b,c,d)a ## b ## c ## d #define CAT5(a,b,c,d,e)a ## b ## c ## d ## e #define StGiFy(a)# a #define STRINGIFY(a)StGiFy(a) #define SCAT2(a,b)StGiFy(a) StGiFy(b) #define SCAT3(a,b,c)StGiFy(a) StGiFy(b) StGiFy(c) #define SCAT4(a,b,c,d)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) #define SCAT5(a,b,c,d,e)StGiFy(a) StGiFy(b) StGiFy(c) StGiFy(d) StGiFy(e) #endif #ifndef CAT2 #include "Bletch: How does this C preprocessor catenate tokens?" #endif /* VAL_NOFILE: * This symbol contains the number of file descriptors available to the * process, as determined at configuration time. Unless a static constant * is needed, you should rely on getdtablesize() to obtain that number. */ #define VAL_NOFILE 60 /* Number of file descriptors */ /* HAS_BCMP: * This symbol is defined if the bcmp() routine is available to * compare blocks of memory. */ /*#define HAS_BCMP /**/ /* HAS_BCOPY: * This symbol is defined if the bcopy() routine is available to * copy blocks of memory. */ /*#define HAS_BCOPY /**/ /* USE_BSDJMP: * This symbol, if defined, indicates that the BSD _setjmp and _longjmp * routines are available to do non-local gotos wihtout saving or restoring * the signal mask flag. */ /*#define USE_BSDJMP /**/ /* HAS_BZERO: * This symbol is defined if the bzero() routine is available to * set a memory block to 0. */ /*#define HAS_BZERO /**/ /* HAS_CHOWN: * This symbol, if defined, indicates that the chown routine is * available. */ /*#define HAS_CHOWN /**/ /* HAS_DUP2: * This symbol, if defined, indicates that the dup2 routine is * available to duplicate file descriptors. */ #define HAS_DUP2 /**/ /* EOFPIPE: * This symbol, if defined, indicates that EOF condition will be detected * by the reader of the pipe when it is closed by the writing process. * That is, a select() call on that file descriptor will not block when * only an EOF remains (typical behaviour for BSD systems). */ /*#define EOFPIPE /**/ /* HAS_FCNTL: * This symbol, if defined, indicates to the C program that * the fcntl() function exists. */ #define HAS_FCNTL /**/ /* HAS_FTIME: * This symbol, if defined, indicates that the ftime() routine exists. * It is basically a sub-second accuracy clock, but is less accurate * than gettimeofday(2) anyway. The type "Timeval" should be used to * refer to "struct timeb". */ /* HAS_GETTIMEOFDAY: * This symbol, if defined, indicates that the gettimeofday() system * call is available for a sub-second accuracy clock. Usually, the file * needs to be included (see I_SYS_RESOURCE). * The type "Timeval" should be used to refer to "struct timeval". */ #define HAS_FTIME /**/ /*#define HAS_GETTIMEOFDAY /**/ #ifdef HAS_FTIME #define Timeval struct timeb /* Structure used by ftime() */ #endif #ifdef HAS_GETTIMEOFDAY #define Timeval struct timeval /* Structure used by gettimeofday() */ #endif /* HAS_GETHOSTID: * This symbol, if defined, indicates that the gethostid system call is * available to get the host id. */ /*#define HAS_GETHOSTID /**/ /* HAS_GETHOSTNAME: * This symbol, if defined, indicates that the C program may use the * gethostname() routine to derive the host name. See also HAS_UNAME * and PHOSTNAME. */ /* HAS_UNAME: * This symbol, if defined, indicates that the C program may use the * uname() routine to derive the host name. See also HAS_GETHOSTNAME * and PHOSTNAME. */ /* PHOSTNAME: * This symbol, if defined, indicates that the C program may use the * contents of PHOSTNAME as a command to feed to the popen() routine * to derive the host name. See also HAS_GETHOSTNAME and HAS_UNAME. * Note that the command uses a fully qualified path, so that it is safe * even if used by a process with super-user privileges. */ #define HAS_GETHOSTNAME /**/ /*#define HAS_UNAME /**/ /*#define PHOSTNAME "/usr/bin/hostname" /* How to get the host name */ /* HAS_GETOPT: * This symbol, if defined, indicates that the getopt() routine exists. */ #define HAS_GETOPT /**/ /* PAGESIZE_VALUE: * This symbol holds the size in bytes of a system page (obtained via * the getpagesize() system call at configuration time or asked to the * user if the system call is not available). */ #define PAGESIZE_VALUE 4096 /* System page size, in bytes */ /* SIGNALS_KEPT: * This symbol is defined if signal handlers needn't be reinstated after * receipt of a signal. */ /*#define SIGNALS_KEPT /**/ /* HAS_LINK: * This symbol, if defined, indicates that the link routine is * available to create hard links. */ /* #define HAS_LINK /**/ /* HAS_LSTAT: * This symbol, if defined, indicates that the lstat routine is * available to do file stats on symbolic links. */ #define HAS_LSTAT /**/ /* HAS_MEMMOVE: * This symbol, if defined, indicates that the memmove routine is available * to copy potentially overlapping blocks of memory. This should be used * only when HAS_SAFE_BCOPY is not defined. If neither is there, roll your * own version. */ #define HAS_MEMMOVE /*/ /* HAS_MKDIR: * This symbol, if defined, indicates that the mkdir routine is available * to create directories. Otherwise you should fork off a new process to * exec /bin/mkdir. */ #define HAS_MKDIR /**/ /* PIDCHECK: * This symbol, if defined, means that the kill(pid, 0) will * check for an active pid (i.e. the kernel will run all the * necessary pid checks, but no signal is actually sent). */ /*#define PIDCHECK /**/ /* HAS_READDIR: * This symbol, if defined, indicates that the readdir routine is * available to read directory entries. You may have to include * . See I_DIRENT. */ #define HAS_READDIR /**/ /* HAS_REWINDDIR: * This symbol, if defined, indicates that the rewinddir routine is * available. You may have to include . See I_DIRENT. */ /*#define HAS_REWINDDIR /**/ /* HAS_RENAME: * This symbol, if defined, indicates that the rename routine is available * to rename files. Otherwise you should do the unlink(), link(), unlink() * trick. */ #define HAS_RENAME /**/ /* HAS_RMDIR: * This symbol, if defined, indicates that the rmdir routine is * available to remove directories. Otherwise you should fork off a * new process to exec /bin/rmdir. */ /* #define HAS_RMDIR /**/ /* HAS_GETRUSAGE: * This symbol, if defined, indicates that the getrusage() routine is * available to get process statistics with a sub-second accuracy. * Inclusion of and may be necessary. */ /*#define HAS_GETRUSAGE /**/ /* HAS_SAFE_BCOPY: * This symbol, if defined, indicates that the bcopy routine is available * to copy potentially overlapping memory blocks. Otherwise you should * probably use memmove() or memcpy(). If neither is defined, roll your * own version. */ /*#define HAS_SAFE_BCOPY /**/ /* HAS_SAFE_MEMCPY: * This symbol, if defined, indicates that the memcpy routine is available * to copy potentially overlapping memory blocks. Otherwise you should * probably use memmove() or memcpy(). If neither is defined, roll your * own version. */ /*#define HAS_SAFE_MEMCPY /**/ /* HAS_SBRK: * This symbol, if defined, indicates that the sbrk system call is * available to add/relase core. Always true on Unix. */ /*#define HAS_SBRK /**/ /* USE_BSDPGRP: * This symbol, if defined, indicates that the BSD notion of process * group is to be used. For instance, you have to say setpgrp(pid, pgrp) * instead of the USG setpgrp(). */ /*#define USE_BSDPGRP /**/ /* HAS_SYS_SIGLIST: * This symbol, if defined, indicates that the sys_siglist array is * available to translate signal numbers to strings. */ /*#define HAS_SYS_SIGLIST /**/ /* HAS_SIGSETMASK: * This symbol, if defined, indicates that the sigsetmask() routine is * available to set current signal mask. Otherwise, you should probably * emulate this by using signal(), but fear race conditions... */ /*#define HAS_SIGSETMASK /**/ /* HAS_SIGVEC: * This symbol, if defined, indicates that BSD reliable signals are * supported. */ /* HAS_SIGVECTOR: * This symbol, if defined, indicates that the sigvec() routine is called * sigvector() instead, and that sigspace() is provided instead of * sigstack(). This is probably only true for HP-UX. */ /*#define HAS_SIGVEC /**/ /*#define HAS_SIGVECTOR /**/ /* HAS_SOCKET: * This symbol, if defined, indicates that the BSD socket interface is * supported. */ #define HAS_SOCKET /**/ /* HAS_INDEX: * This symbol is defined to indicate that the index()/rindex() * functions are available for string searching. */ /*#define HAS_INDEX /**/ /* USE_STRUCT_COPY: * This symbol, if defined, indicates that this C compiler knows how * to copy structures. If undefined, you'll need to use a block copy * routine of some sort instead. */ #define USE_STRUCT_COPY /**/ /* HAS_STRDUP: * This symbol, if defined, indicates that the strdup routine is * available to duplicate strings in memory. Otherwise, roll up * your own... */ #define HAS_STRDUP /**/ /* HAS_STRERROR: * This symbol, if defined, indicates that the strerror routine is * available to translate error numbers to strings. See the writeup * of Strerror() in this file before you try to define your own. */ /* HAS_SYS_ERRLIST: * This symbol, if defined, indicates that the sys_errlist array is * available to translate error numbers to strings. The extern int * sys_nerr gives the size of that table. */ /* HAS_SYS_ERRNOLIST: * This symbol, if defined, indicates that the sys_errnolist array is * available to translate an errno code into its symbolic name (e.g. * ENOENT). The extern int sys_nerrno gives the size of that table. */ /* Strerror: * This preprocessor symbol is defined as a macro if strerror() is * not available to translate error numbers to strings but sys_errlist[] * array is there. */ #define HAS_STRERROR /**/ /*#define HAS_SYS_ERRLIST /**/ /*#define HAS_SYS_ERRNOLIST /**/ #define Strerror(e) strerror(e) /* HAS_TIME: * This symbol, if defined, indicates that the time() routine exists. */ /* Time_t: * This symbol holds the type returned by time(). It can be long, * or time_t on BSD sites (in which case should be * included). */ #define HAS_TIME /**/ #define Time_t time_t /* Time type */ /* HAS_TIMES: * This symbol, if defined, indicates that the times() routine exists. * Note that this became obsolete on some systems (SUNOS), which now * use getrusage(). It may be necessary to include . */ /* Clock_t: * This symbol holds the type returned by times(). It can be long, * or clock_t on BSD sites (in which case should be * included). */ /*#define HAS_TIMES /**/ #define Clock_t clock_t /* Clock time */ /* HAS_USLEEP: * This symbol, if defined, indicates that the usleep routine is * available to let the process sleep on a sub-second accuracy. */ /*#define HAS_USLEEP /**/ /* Signal_t: * This symbol's value is either "void" or "int", corresponding to the * appropriate return type of a signal handler. Thus, you can declare * a signal handler using "Signal_t (*handler)()", and define the * handler using "Signal_t handler(sig)". */ #define Signal_t void /* Signal handler's return type */ /* I_DIRENT: * This symbol, if defined, indicates to the C program that it should * include . Using this symbol also triggers the definition * of the Direntry_t define which ends up being 'struct dirent' or * 'struct direct' depending on the availability of . */ /* DIRNAMLEN: * This symbol, if defined, indicates to the C program that the length * of directory entry names is provided by a d_namlen field. Otherwise * you need to do strlen() on the d_name field. */ /*#define I_DIRENT /**/ /*#define DIRNAMLEN /**/ /* I_FCNTL: * This manifest constant tells the C program to include . */ #define I_FCNTL /**/ /* I_GRP: * This symbol, if defined, indicates to the C program that it should * include . */ /*#define I_GRP /**/ /* I_LIMITS: * This symbol, if defined, indicates to the C program that it should * include to get definition of symbols like WORD_BIT or * LONG_MAX, i.e. machine dependant limitations. */ #define I_LIMITS /**/ /* I_NETINET_IN: * This symbol, if defined, indicates to the C program that it should * include . Otherwise, you may try . */ /* I_SYS_IN: * This symbol, if defined, indicates to the C program that it should * include instead of . */ /*#define I_NETINET_IN /**/ /*#define I_SYS_IN /**/ /* I_PWD: * This symbol, if defined, indicates to the C program that it should * include . */ /*#define I_PWD /**/ /* I_STRING: * This symbol, if defined, indicates to the C program that it should * include (USG systems) instead of (BSD systems). */ #define I_STRING /**/ /* I_SYS_DIR: * This symbol, if defined, indicates to the C program that it should * include . */ /*#define I_SYS_DIR /**/ /* I_SYS_FILE: * This symbol, if defined, indicates to the C program that it should * include to get definition of R_OK and friends. */ /*#define I_SYS_FILE /**/ /* USE_TIOCNOTTY: * This symbol, if defined indicate to the C program that the ioctl() * call with TIOCNOTTY should be used to void tty association. * Otherwise (on USG probably), it is enough to close the standard file * decriptors and do a setpgrp(). */ /*#define USE_TIOCNOTTY /**/ /* I_SYS_NDIR: * This symbol, if defined, indicates to the C program that it should * include . */ /*#define I_SYS_NDIR /**/ /* I_SYS_RESOURCE: * This symbol, if defined, indicates to the C program that it should * include . */ /*#define I_SYS_RESOURCE /**/ /* I_SYS_SOCKET: * This symbol, if defined, indicates to the C program that it should * include before performing socket calls. */ #define I_SYS_SOCKET /**/ /* I_SYS_TIMEB: * This symbol, if defined, indicates to the C program that it should * include , in order to define struct timeb (some systems * define this in ). This is useful when using ftime(). * You should include if I_SYS_TIMEB is not defined, * nor is I_SYS_TIME. */ #define I_SYS_TIMEB /**/ /* I_SYS_TIMES: * This symbol, if defined, indicates to the C program that it should * include . */ /*#define I_SYS_TIMES /**/ /* I_SYS_UN: * This symbol, if defined, indicates to the C program that it should * include to get UNIX domain socket definitions. */ /*#define I_SYS_UN /**/ /* I_TIME: * This symbol, if defined, indicates to the C program that it should * include . */ /* I_SYS_TIME: * This symbol, if defined, indicates to the C program that it should * include . */ /* I_SYS_TIME_KERNEL: * This symbol, if defined, indicates to the C program that it should * include with KERNEL defined. */ #define I_TIME /**/ /*#define I_SYS_TIME /**/ /*#define I_SYS_TIME_KERNEL /**/ /* I_STDARG: * This symbol, if defined, indicates that exists and should * be included. */ /* I_VARARGS: * This symbol, if defined, indicates to the C program that it should * include . */ #define I_STDARG /**/ /*#define I_VARARGS /**/ /* INTSIZE: * This symbol contains the size of an int, so that the C preprocessor * can make decisions based on it. */ #define INTSIZE 4 /**/ /* Malloc_t: * This symbol is the type of pointer returned by malloc and realloc. */ #define Malloc_t void * /**/ /* Pid_t: * This symbol holds the type used to declare process ids in the kernel. * It can be int, uint, pid_t, etc... It may be necessary to include * to get any typedef'ed information. */ #define Pid_t pid_t /* PID type */ /* CAN_PROTOTYPE: * If defined, this macro indicates that the C compiler can handle * function prototypes. */ /* _: * This macro is used to declare function parameters for folks who want * to make declarations with prototypes using a different style than * the above macros. Use double parentheses. For example: * * int main _((int argc, char *argv[])); */ #define CAN_PROTOTYPE /**/ #ifdef CAN_PROTOTYPE #define _(args) args #else #define _(args) () #endif /* register1: * This symbol, along with register2, register3, etc. is either the word * "register" or null, depending on whether the C compiler pays attention * to this many register declarations. The intent is that you don't have * to order your register declarations in the order of importance, so you * can freely declare register variables in sub-blocks of code and as * function parameters. Do not use register more than once per routine. */ #define register1 register /**/ #define register2 register /**/ #define register3 register /**/ #define register4 register /**/ #define register5 register /**/ #define register6 register /**/ #define register7 /**/ /* HAS_SMART_SBRK: * This symbol is defined when the sbrk() system call may be used with * a negative argument to lower the break value, therefore releasing * core to the system. If not, you'd probably be better off using the * mmap() system call. */ /*#define HAS_SMART_SBRK /**/ /* Caddr_t: * This symbol holds the type of a core address. It is inteded to be used * to safely declare the return type of system calls like sbrk(). It might * be necessary to include as well. */ #define Caddr_t void * /* type */ /* KEEPALIVE: * This symbol if defined indicates to the C program that the SO_KEEPALIVE * option of setsockopt() will work as advertised in the manual. */ /*#define KEEPALIVE /**/ /* Uid_t: * This symbol holds the type used to declare user ids in the kernel. * It can be int, ushort, uid_t, etc... It may be necessary to include * to get any typedef'ed information. */ #define Uid_t uid_t /* UID type */ /* VOIDFLAGS: * This symbol indicates how much support of the void type is given by this * compiler. What various bits mean: * * 1 = supports declaration of void * 2 = supports arrays of pointers to functions returning void * 4 = supports comparisons between pointers to void functions and * addresses of void functions * 8 = suports declaration of generic void pointers * * The package designer should define VOIDUSED to indicate the requirements * of the package. This can be done either by #defining VOIDUSED before * including eif_config.h, or by defining defvoidused in Myinit.U. If the * latter approach is taken, only those flags will be tested. If the * level of void support necessary is not present, defines void to int. */ #ifndef VOIDUSED #define VOIDUSED 15 #endif #define VOIDFLAGS 15 #if (VOIDFLAGS & VOIDUSED) != VOIDUSED #define void int /* is void to be avoided? */ #define M_VOID /* Xenix strikes again */ #endif /* USE_ADD_LOG: * This symbol is defined if the run time logging is enabled, mainly for * debugging purposes (although the logging level may be set to a low level * to leave only critical error messages). This will never be defined by * default. */ /*#define USE_ADD_LOG /* Allow logging */ #define LOGGING_LEVEL 9 /* Logging level */ /* HAS_SMART_MMAP: * This symbol, if defined, indicates to the C program that it can * use mmap and munmap for shared memory. */ /*#define HAS_SMART_MMAP /**/ /* HAS_GETPWUID: * This symbol, if defined, indicates that the getpwuid system call is * available */ /* HAS_GETGRGID: * This symbol, if defined, indicates that the getgrgid system call is * available */ /* HAS_GETEUID: * This symbol, if defined, indicates that the geteuid system call is * available */ /*#define HAS_GETPWUID /**/ /*#define HAS_GETGRGID /**/ /*#define HAS_GETEUID /**/ /* HAS_UTIME: * This symbol, if defined, indicates that the utime routine is * available. */ #define HAS_UTIME /**/ /* I_DIRECT: * This symbol, if defined, indicates to the C program that it should * include . * This is a pseudo unit for the Watcom C compiler (DOS) */ #define I_DIRECT /**/ /* I_FD_SET_SYS_SELECT: * This symbol, if defined, indicates to the C program that it should * include in order to get definition of struct fd_set. */ /*#define I_FD_SET_SYS_SELECT /**/ /* I_NETNS_NS: * This symbol, if defined, indicates to the C program that it should * include . */ /*#define I_NETNS_NS /**/ /* I_TMVAL_SYS_SELECT: * This symbol, if defined, indicates to the C program that it should * include in order to get definition of struct timeval. *.I_SYS_SELECT is not set correctly in the dist3.0 p22 * This unit overrides the default one. It checks the content of * the include file to find the definition of timeval */ /*#define I_TMVAL_SYS_SELECT /**/ /* I_XM_PROTOCOLS: * This symbol, if defined, indicates to the C program that it should * include . */ /*#define I_XM_PROTOCOLS /**/ /* MAY_PANIC: * This symbol is defined if the run-time is to be compiled with extra * consistency checks. Those checks make sure some "impossible" conditions * never occur, and they raise a panic if they do. Typical checks include * free-list consistency check, stack overflow or underflow, etc... */ /*#define MAY_PANIC /* Extra run-time consistency checks */ #define I_SYSUTIME #define HAS_UNLINK #define EIF_OS2 #endif