#ifdef __cplusplus
extern "C" {
#endif
/*
 *		AIX/370
 *		5713-AFL
 *	LICENSED MATERIALS - PROPERTY OF IBM
 *	(c) Copyright 1985, 1986, 1989 IBM Corp.
 *	(c) Copyright 1983, 1984, 1985, 1986,  1989 Locus Computing Corporation
 *	All Rights Reserved
 */

#ifndef	H_SCCSID
#include <sccs.h>
#endif	/* ~H_SCCSID */
H_SCCSID(@(#)DOPTIONS.h	1.2    IBM AIX)    /* Modified: 20:01:57 7/15/92 */

#ifndef	_h_DOPTIONS
#define	_h_DOPTIONS

/*
 * explanation of some of the machine-dependent symbols:
 *
 * u370 - 370-based unix (defined by the compiler)
 * S370 - 370 machine architecture
 * XA370 - 370 extended architecture
 * b370 - "bare" 370 (without RESSUP)
 *	(includes both S370 and XA370 versions)
 *
 * i386 - Intel 80386 in native mode
 *
 *
 * CC4 - VAX BSD 4.1 C compiler
 */

#define	BIGTTWATER	1
#define DEVINDCKSUM	1
#define	HET		1
#define NETSTATS	1
#define TABGROW 	1
#define __AIX 		1
#define IP_LOCUS	1

#if !defined(CC4) && !defined(KERNEL)
/* Define this value for System V applications.
 * This MUST match the value in the master file. */
#define HZ		60
#endif /* ! CC4 && ! KERNEL */

#ifdef	vax
#define	BSD_SCHED	1	/* BSD Scheduler */
#define C_MINMAX	1
#define	CHECK_CPU_INT	5
#define	DMFDMA		1
#define DUP2		1
#define	ETHERNET	1
#define	LONGCNTRLT	1
#define	LOADAV		1
#define	NEWMSGBUF	1
#define	PAGING		1
#define	PROFILE		1
#define	TIME_SYNC	1
#define	TTYPAGE		1
#define	TTYINTRCNT	1
#define	UPSI		1
#define	USE_A_OUT	1
#define	USE_S5_OUT	1
#define	CONSPAGING	1	/* Enable console paging code */
#define	VAX750		1
#define	VAX730		1
#define	VAX7ZZ		1

#ifndef vax1k
#define vax4k		1
#endif	/* ! vax1k */

#ifdef	vax4k
#define	SMALLBLOCKS	1
#endif	/* vax4k */
#define NFS		1
#endif	/* vax */

#ifdef romp
#undef	u370
#undef  S370
#undef	HZ
#define	HZ 64
#define	SOFT_VAX 1
#define	DUALCALL 1
#define NCS	1
#define NFL	1
#define	FPA	1
#define CLOCKOFF 1
#define	C_MINMAX 1
#define	CNDEBUG 1
#define	SIG42	1
#define	SBMODEL	1	/* For clock related stuff in machdep. Chris	*/

/* The next ones are the same as those in b370 */
#define LOOPONPANICS	1	/* What is it? */
#define LARGETABLES	1
#define	NOCLOCKSLEW	1	/* What is it? */
#define	OLDSIGS		1
/*
 * #define PASSTHRUREGS	1 
 * Arguments to trap passed through registers ?
 * Determines sysent structure. 	(Chris)
 */
#define PREPAGE		1	/* What is it? */
#define PRFPID		1
#define SEVENCHARNAMES	1
#define	LONGCNTRLT	1
#define	LOADAV		1
#define	CHECK_CPU_INT	5	/* What is it? */
#define SLEEPCHECKS	1
#define SMALLBLOCKS	1
#define SPRINTF		1
#define SYSCALLNAMES	1
/*
#define	TIME_SYNC	1		Do we want it? 
					I took it out temporarily (Chris).
*/
#define	TTYPAGE		1
#define BITSHI		1
#define DEBUGVAR	1
/*
#define	NEWJOURNAL	1
 */
#define PAGING 		1
#endif	/* romp */

#ifdef  u370

#ifdef XA370
#undef S370			/* XA370 overrides S370 */
#else  /* !XA370 */
#ifndef S370
#define S370			/* If neither specified, assume S370 */
#endif /* !S370 */
#endif /* !XA370 */
#ifndef b370
#define b370			/* always define b370 */
#endif /* b370 */

#define	AIXTRACE	1	/* Aix Trace driver instrumentation. */
#define LOOPONPANICS	1
#define LARGETABLES	1
#define	NOCLOCKSLEW	1
#define	OLDSIGS		1
#define PASSTHRUREGS	1
#define PREPAGE		1
#define PRFPID		1
#define SEVENCHARNAMES	1
#define	LOADAV		1
#define	CHECK_CPU_INT	5
#define SLEEPCHECKS	1
#define SMALLBLOCKS	1
#define SPRINTF		1
#define SYSCALLNAMES	1
#define	TIME_SYNC	1
#define	TTYPAGE		1
#define	USE_S5_OUT	1
#define u370COMP	1
#define BITSHI		1
#define NFS		1
#define NFSCLIENT	1	/* NFS client support */
#endif  /* u370 */

#ifdef  u370
#define	IUCV 		1
#define	LONGCNTRLT	1
#ifdef	PAGING
#define	SOFT_VAX	1
#else	/* !PAGING */
#define SVPAGING	1
#define	MM_VSEGS	1
#define	COPYonREF	1	/* Cannot do COPYonWRITE */
#ifdef	XA370
#define	MIXEDVSEGS	1	/* Support old (64k aligned) modules */
#endif	/* XA370 */
#define	SYS5SHM		1
#endif	/* !PAGING */

#define	BSD_SCHED	1	/* BSD Scheduler */
#define SYS5IPC		1
/* #define NATIVE 		0 */
#define SNOOP		1
#define MBSTRAT		1
#define ONE_DEV_SWITCH	1
#ifdef __ASMFILE__
#define TRACING		1
#endif __ASMFILE__

#ifdef KERNEL
#define	NLS		1
#endif /* KERNEL */
#endif  /* u370 */




#if	defined(i386)

#define MBSTRAT		1

#define	AIXTRACE	1	/* Aix Trace driver instrumentation. */
#define C_MINMAX	1
#define	CHECK_CPU_INT	5
#define CONSLOGGER	0	/* Enable console logging */
#define	CONSPAGING	1	/* Enable console paging code */
#define DUP2		1
#define	LOADAV		1
#define	LONGCNTRLT	1
#define	LONGADDRS	1
#define LONGPID		1
#define	MERGE386	1	/* Enable MERGE386 hooks */
#define	MM_VSEGS	1
#define	NEWMSGBUF	1
#define NEWJOURNAL	1
#define NFS		1
#define	NOCLOCKSLEW	1
#define NOFLOATINGPOINT	1
#define NOTEXTLINKS	1
#define NOVMMETER	1
#define ONE_DEV_SWITCH	1
#define SLEEPCHECKS	1
#define	SMALLBLOCKS	1
#define	SVPAGING	1
#define SYS3_SCHED	1	/* System III scheduler */
#define	SYS5COMPAT	1
#define SYS5IPC		1
#define	SYS5SIG		1	
#define	SYS5SHM		1
#define SYSCALLNAMES	1
#define	TIME_SYNC	1
#define	TTYPAGE		1
#define	TTYINTRCNT	1
#define	TINYCNTRLT	1
#define	USE_S5_OUT	1	/* support system 5 COFF load modules */
#define	USE_X_OUT	1	/* x.out load modules */
#define	FLOATREG	1
#define	X286PROCS	1
#define NFSCLIENT	1	/* NFS client support */
#ifndef NOHFT
#define HFTHOOKS	1
#endif /* NOHFT */

#ifdef KERNEL
#define	NLS		1
#endif /* KERNEL */

#ifdef	MERGE386
#define	AT386		1	/* used by merge code */
#define	LCCFIX		1	/* used by merge code */
#define	LOCUS_MERGE	1	/* used by merge code */
#define	PS2_VM		1	/* used by merge for PS/2 vs AT virtual 86s */
#endif /* MERGE386 */

#ifdef	DEBUG
#define	HETHIST	1
#endif	/* DEBUG */
#endif	/* defined(i386) */

/*
 * __BSD43 identifies code and data structures which came from BSD 4.3 Unix
 */
#define	__BSD43		1

#define	QUOTA		1

#define _TCF		1

/* 4.3 BSD IPC exists for ALL machine types now */
#define	SELECT		1

#ifndef NO_BSD43IPC
#define	INET		1
#define	IPC43		1
#define GATEWAY		1	/* We can act as an Internet gateway */
#endif /* ~NO_BSD43IPC */

#ifndef	HZ			/* HZ is always 60 */
#define	HZ 60
#endif /* HZ */

#endif	/* _h_DOPTIONS */
#ifdef __cplusplus
}
#endif
