ftp.nice.ch/pub/next/connectivity/infosystems/Archie.2.18.s.tar.gz#/Archie/include/pmachine.h

This is pmachine.h in view mode; [Download] [Up]

/*
 * Copyright (c) 1989, 1990, 1991 by the University of Washington
 *
 * For copying and distribution information, please see the file
 * <uw-copyright.h>.
 */

#include <uw-copyright.h>

/*
 * pmachine.h - Processor/OS specific definitions
 */

/*
 * Machine types - Supported values
 *
 *   VAX, SUN, HP9000_S300, IBM_RTPC, ENCORE_NS32K,
 *   ENCORE_S93, ENCORE_S91, APOLLO, 
 * 
 *   MIPS_BE - MIPS Chip (Big Endian Byte Order)
 *   MIPS_LE - MIPS Chip (Little Endian Byte Order)
 *
 * Add others as needed.  
 *
 * Files that check these defintions:
 *   include/pmachine.h
 */
#define P_MACHINE_TYPE 		"VAX"
#define VAX

/*
 * Operating system - Supported values
 * 
 * ULTRIX, BSD43, SUNOS, SUNOS_V3, HPUX, SYSV, MACH, DOMAINOS
 *
 * Add others as needed.  
 *
 * Files that check these defintions:
 *   include/pmachine.h, lib/pcompat/opendir.c, lib/pcompat/readdir.c
 */
#define P_OS_TYPE		"ULTRIX"
#define ULTRIX

/*
 * Shell types - Supported values
 *
 *   CSH, SH
 *
 * The vcd and vfsetup commands and the vfsetup.source script
 * return commands to the shell that must be interpreted.  These 
 * commands set variables and define aliases.  By default,
 * Prospero is configured to return commands that can be
 * interpreted by the C shell.  If you would prefer to use
 * a different shell, define the shell type here.  You may have to 
 * add commands in the appropriate syntax to lib/pfs/penviorn.c
 * and to user/gen_vfsetup.c.  Note that whatever shell you use must
 * support aliases.  Only some versions of the Bourne shell do.  
 * Unfortunately, at present, only one shell type can be supported 
 * at a time.  This may be fixed in future releases.
 */
#define P_SHELL_TYPE		"CSH"
#define CSH


/*
 * Miscellaneous definitions
 *
 * Even within a particular hardware and OS type, not all systems
 * are configured identically.  Some systems may need additinal
 * definitions, some of which are included below.   Note that for
 * some system types, these are automatically defined.
 *
 * define NEED_MODE_T if mode_t is not typedefed on your system
 * define DD_SEEKLEN if your system doesn't support dd_bbase and dd_bsize
 * define DIRECT if direct is the name of your dirent structure
 * define USE_SYS_DIR_H if your system doesn't include dirent.h
 * define CLOSEDIR_RET_TYPE_VOID if your closedir returns void
 * Define GETDENTS if your system supports getdents instead of getdirentries
 */

/*****************************************************************/
/* If your machine and OS type are listed above, and if your     */
/* configuration is relatively standard for your machine and     */
/* OS, there should be no need for any changes below this point. */
/*****************************************************************/

/*
 * Machine or OS dependent parameters
 *
 *  The comment at the head of each section names the paramter
 *  and the files that use the definition
 */

/*
 *  BYTE_ORDER: lib/psrv/plog.c, lib/psrv/check_acl.c
 */
#define BIG_ENDIAN		1
#define LITTLE_ENDIAN		2

#if defined(SUN)        || defined(HP9000_S300) || defined(IBM_RTPC) || \
    defined(ENCORE_S91) || defined(ENCORE_S93)  || defined(APOLLO)   || \
    defined(MIPS_BE)
#define BYTE_ORDER BIG_ENDIAN
#else
#define BYTE_ORDER LITTLE_ENDIAN
#endif

/*
 * PUTENV: lib/pfs/vfsetenv.c
 *
 * PUTENV must be defined if your C library supports the putenv
 * call instead of setenv (e.g. Ultrix and SunOS).
 */
#if defined(ULTRIX) || defined(SUNOS) || defined(SUNOS_V3) || defined(HPUX)
#define PUTENV
#endif

/*
 * NOREGEX: lib/pfs/wcmatch.c
 *
 * NOREGEX must be defined if your C library does not support the
 * re_comp and re_exec regular expression routines.
 */
#if defined(HPUX)
#define NOREGEX
#endif

/*
 * String and byte manipulating 
 * procedures: lib/pfs/nlsindex.c, lib/pfs/nxtline.c,
 *             lib/pfs/sindex.c, lib/pcompat/pfs_access.c
 */
#if defined(HPUX) || defined(SYSV)
#define index		strchr
#define rindex		strrchr
#define bcopy(a,b,n)	memmove(b,a,n)
#define bzero(a,n)	memset(a,0,n)
#endif

/*
 * getwd: server/pstart.c
 */
#if defined(HPUX) || defined(SYSV)
#define getwd(d)	getcwd(d, MAXPATHLEN)
#endif

/*
 * SETSID:  server/dirsrv.c
 *
 * SETSID is to be defined if the system supports the POSIX
 * setsid routine to create a new session and set the process 
 * group ID.
 */
#if defined(HPUX)
#define SETSID
#endif

/*
 * NFILES: user/vget/pclose.c
 *
 * NFILES is the size of the descriptor table.
 */
#if defined(HPUX)
#define NFILES _NFILE
#else
#define NFILES getdtablesize()
#endif

/*
 * SIGNAL_RET_TYPE: user/vget/ftp.c, user/vget/pclose.c
 *
 * This is the type retruned by the procedure returned by
 * signal.  In some systems it is void, in others int.
 *
 */
#if defined (BSD43) || defined(SUNOS_V3)
#define SIGNAL_RET_TYPE int
#else
#define SIGNAL_RET_TYPE void
#endif

/*
 * CLOSEDIR_RET_TYPE_VOID: lib/pcompat/closedir.c
 *
 * If set, closedir returns void.
 */
#if defined (NOTDEFINED) 
#define CLOSEDIR_RET_TYPE_VOID
#endif

/*
 * DIRECT: lib/pcompat/*dir.c app/ls.c
 *
 *  Use direct as the name of the dirent struct
 */
#if defined (NOTDEFINED) || defined(DIRECT)
#define dirent direct
#endif

/*
 * USE_SYS_DIR_H: lib/pcompat/*dir.c app/ls.c
 *
 *  Include the file <sys/dir.h> instead of <dirent.h>
 */
#if defined (NOTDEFINED)
#define USE_SYS_DIR_H
#endif

/*
 * DIR structure definitions: lib/pcompat/telldir.c,opendir.c
 */
#if defined (SUNOS) || defined(SUNOS_V3)
#define dd_bbase dd_off
#endif

#if defined (DD_SEEKLEN)
#define dd_bbase dd_seek
#define dd_bsize dd_len
#endif
 
/*
 * GETDENTS: lib/pcompar/readdir.c
 *
 * Define GETDENTS if your system supports getdents instead of
 * getdirentries.
 */
#if defined (GETDENTS)
#define getdirentries(F,B,N,P) getdents(F,B,N)
#endif

/*
 * NEED MODE_T typedef: ls.c
 *
 * Define this if mode_t is not defined my your systems include
 * files (sys/types.h or sys/stdtypes.h or sys/stat.h).
 */
#if defined (NEED_MODE_T)
typedef unsigned short mode_t;
#endif

/*
 * Catch any definitions not in system include files
 *
 *  The comment at the head of each section names the paramter
 *  and the files that use the definition
 */

/*
 * OPEN_MAX: Maximum number of files a process can have open
 */
#ifndef OPEN_MAX
#define OPEN_MAX 64
#endif

/*
 * FD_SET: lib/pfs/dirsend.c, user/vget/ftp.c
 */
#ifndef FD_SET
#define	NFDBITS		32
#define	FD_SETSIZE	32
#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)	bzero((char *)(p), sizeof(*(p)))
#endif
 
/*
 * howmany: app/ls.c
 */
#ifndef	howmany
#define	howmany(x, y)   ((((u_int)(x))+(((u_int)(y))-1))/((u_int)(y)))
#endif

/*
 * MAXHOSTNAMELEN: user/vget/ftp.c
 */
#ifndef MAXHOSTNAMELEN
#define MAXHOSTNAMELEN 64
#endif

/*
 * O_ACCMODE: lib/pcompat/open.c
 */
#ifndef O_ACCMODE
#define O_ACCMODE         (O_RDONLY|O_WRONLY|O_RDWR)
#endif

/*
 * Definitions from stat.h: app/ls.c lib/pfs/mkdirs.c
 */
#ifndef S_IFMT
#define S_IFMT	 070000
#endif
#ifndef S_IFDIR
#define S_IFDIR	 040000
#endif
#ifndef S_IFCHR
#define S_IFCHR 020000
#endif
#ifndef S_IFBLK
#define S_IFBLK 060000
#endif
#ifndef S_IXUSR
#define S_IXUSR 0100
#endif
#ifndef S_IXGRP
#define S_IXGRP 0010
#endif
#ifndef S_IXOTH
#define S_IXOTH 0001
#endif
#ifndef S_ISDIR
#define	S_ISDIR(mode)  (((mode) & S_IFMT) == S_IFDIR)
#endif
#ifndef S_ISCHR
#define S_ISCHR(m)  ((S_IFLNK & m) == S_IFCHR)
#endif  
#ifndef S_ISBLK
#define S_ISBLK(m)  ((S_IFLNK & m) == S_IFBLK)
#endif

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.