xref: /csrg-svn/old/berknet/mach.h (revision 9982)
1*9982Seric /*	@(#)mach.h	4.6	(Berkeley)	12/27/82	*/
28213Smckusick 
38213Smckusick /* sccs id variable */
48213Smckusick static char *mach_h_sid = "@(#)mach.h	1.11";
58213Smckusick 
68213Smckusick /*
78213Smckusick 
88213Smckusick 	mach.h	-- define machine-dependent things
98213Smckusick 
108213Smckusick *** Pre-processor Flags ***
118213Smckusick 
128213Smckusick This set of code is controlled by this set of conditional
138213Smckusick compilation flags:
148213Smckusick 
158213Smckusick TESTING		if defined, do not generate tests, etc. which require
168213Smckusick 		super-user status.
178213Smckusick 
188213Smckusick OLDTTY		if defined, compile for old 1 character TTY names
198213Smckusick CCTTY		if defined, compile for CC tty name format
208213Smckusick 		if neither is defined, use v7 ttyname format
218213Smckusick 
228213Smckusick PASSWDF		compile in code to handle /etc/passwdf - split passwd files
238213Smckusick 
248213Smckusick V6		Assume the v6 features instead of the v7 ones.
258213Smckusick 
268213Smckusick FUID		use the funny uid's present on CC V6
278213Smckusick 
28*9982Seric SENDMAIL	Uses the sendmail program
298213Smckusick 
308213Smckusick HPASSWD		The local machine has the hashed password stuff
318213Smckusick 
328213Smckusick OLDMAIL		mail is in home-directory/.mail
338213Smckusick USRMAIL		mail is in /usr/mail/name
348213Smckusick 		(mail is in /usr/spool/mail/name)
358213Smckusick 
368213Smckusick CC		Machine is a Computer Center machine
378213Smckusick NUID		userid (as returned by getuid()) on this machine
388213Smckusick UID1CHAR	Uses vanila Version6 userid's (only 1 byte for uid)
398213Smckusick NOEUID		Does not have the geteuid() system call
408213Smckusick NFREECMD	doesn't allow any "network" free commands
418213Smckusick NOFP		floating point just doesn't work on this machine
428213Smckusick NOREMACCT	allows netlpr's on remote machines without an account
438213Smckusick CSH		use the /bin/csh shell (Paths.h sets BINSH to this path ).
448213Smckusick CRN		CC crn's are passed
458213Smckusick DONTHOLDBIG	large (size > MAXDAYFILE ) jobs wont be held until night for
468213Smckusick 		transmission
478213Smckusick 
488213Smckusick SWAB		this machine has byte-ordering reversed from the DEC VAX
498213Smckusick 		and PDP-11 standard (the only current example is Onyx)
508213Smckusick The conditonal flags are first defined
518233Smckusick in "local.h" in this directory.
528213Smckusick 
538213Smckusick For "normal" version 6 machines, there is a dummy machine
548213Smckusick definition for "VANILLA6" which indicates the v6 UNIX options.
558213Smckusick 
568213Smckusick For "normal" version 7 machines, there is a dummy machine
578213Smckusick definition for "VANILLA7" which indicates the v7 UNIX options.
588213Smckusick (VM/UNIX and Berkeley VM/VAX/UNIX can use this)
598213Smckusick */
608213Smckusick /* be sure to include <stdio.h> before these defns */
618213Smckusick 
628233Smckusick # include "local.h"
638213Smckusick # include <sysexits.h>
648213Smckusick 
658213Smckusick /* note NUID is only used in mmail.c */
668213Smckusick 
678213Smckusick # ifdef RAND
688213Smckusick /* definitions for Rand-Unix */
698213Smckusick # ifdef VAX
708213Smckusick # define LOCAL 'v'
718213Smckusick # define NUID (-1)
728213Smckusick # endif VAX
738213Smckusick 
748213Smckusick # ifdef GRAPHICS
758213Smckusick # define V6
768213Smckusick # define OLDTTY
778213Smckusick # define UID1CHAR
788213Smckusick # define OLDMAIL
798213Smckusick # define LOCAL 'g'
808213Smckusick # define NUID (-1)
818213Smckusick # endif GRAPHICS
828213Smckusick 
838213Smckusick # ifdef TP
848213Smckusick # define LOCAL 't'
858213Smckusick # define V6
868213Smckusick # define OLDTTY
878213Smckusick # define UID1CHAR
888213Smckusick # define OLDMAIL
898213Smckusick # define NUID (-1)
908213Smckusick # endif TP
918213Smckusick 
928213Smckusick /* end of definitions for Rand */
938213Smckusick # endif RAND
948213Smckusick 
958213Smckusick 
968213Smckusick # ifdef NOSC
978213Smckusick /* definitions for Naval Ocean Systems Center NOSC */
988213Smckusick # ifdef ATTS
998213Smckusick # define LOCAL 'a'
1008213Smckusick # define V6
1018213Smckusick # define OLDTTY
1028213Smckusick # define UID1CHAR
1038213Smckusick # define OLDMAIL
1048213Smckusick # define NUID (-1)
1058213Smckusick # endif ATTS
1068213Smckusick 
1078213Smckusick # ifdef CCMM
1088213Smckusick # define LOCAL 'c'
1098213Smckusick # define V6
1108213Smckusick # define OLDTTY
1118213Smckusick # define UID1CHAR
1128213Smckusick # define OLDMAIL
1138213Smckusick # define NUID (-1)
1148213Smckusick # endif CCMM
1158213Smckusick 
1168213Smckusick # ifdef MSSF
1178213Smckusick # define V6
1188213Smckusick # define OLDTTY
1198213Smckusick # define UID1CHAR
1208213Smckusick # define OLDMAIL
1218213Smckusick # define LOCAL 'm'
1228213Smckusick # define NUID (-1)
1238213Smckusick # endif MSSF
1248213Smckusick 
1258213Smckusick /* end of definitions for NOSC */
1268213Smckusick 
1278213Smckusick # endif NOSC
1288213Smckusick 
1298213Smckusick # ifdef BERKELEY
130*9982Seric 
131*9982Seric /* all berkeley sites use sendmail.....         (someday?) */
132*9982Seric # define SENDMAIL
133*9982Seric 
1348233Smckusick /* CFO - A */
1358213Smckusick # ifdef A
1368213Smckusick # define CCV7
1378213Smckusick # define LOCAL 'a'
1388213Smckusick # endif A
1398213Smckusick 
1408233Smckusick /* CFO - B */
1418213Smckusick # ifdef B
1428213Smckusick # define CCV7
1438213Smckusick # define LOCAL 'b'
1448213Smckusick # endif B
1458213Smckusick 
1468233Smckusick /* CFO - C */
1478213Smckusick # ifdef C
1488213Smckusick # define CCV7
1498213Smckusick # define LOCAL 'c'
1508213Smckusick # endif C
1518213Smckusick 
1528233Smckusick /* CFO - D */
1538213Smckusick # ifdef D
1548213Smckusick # define CCV7
1558213Smckusick # define LOCAL 'd'
1568213Smckusick # endif D
1578213Smckusick 
1588233Smckusick /* CFO - E */
1598213Smckusick # ifdef E
1608213Smckusick # define CCV7
1618213Smckusick # define LOCAL 'e'
1628213Smckusick # endif E
1638213Smckusick 
1648233Smckusick /* CFO - F */
1658213Smckusick # ifdef F
1668213Smckusick # define CCV7
1678213Smckusick # define LOCAL 'f'
1688213Smckusick # endif F
1698213Smckusick 
1708233Smckusick /* CFO - G */
1718213Smckusick # ifdef G
1728213Smckusick # define LOCAL 'g'
1738213Smckusick # define NUID (501)
1748213Smckusick # endif G
1758213Smckusick 
1768233Smckusick /* CFO - Jade */
1778233Smckusick # ifdef H
1788233Smckusick # define LOCAL 'h'
1798233Smckusick # define NUID (501)
1808233Smckusick # endif H
1818233Smckusick 
1828280Scomay /* CSSG - ucberl70 */
1838280Scomay # ifdef ERL70
1848213Smckusick # define LOCAL 'i'
1858213Smckusick # define NUID (174)
1868280Scomay # endif ERL70
1878213Smckusick 
1888233Smckusick /* Ingres Group - ucbingres */
1898213Smckusick # ifdef INGVAX
1908213Smckusick # define LOCAL 'j'
1918213Smckusick # define NUID (37)
1928213Smckusick # define FREELPR
1938213Smckusick # endif INGVAX
1948213Smckusick 
1958233Smckusick /* CS network hub - ucbvax */
1968233Smckusick # ifdef UCBVAX
1978213Smckusick # define LOCAL 'k'
1988233Smckusick # define NUID (35)
1998233Smckusick # define MAXSENDQ 35
2008233Smckusick # endif UCBVAX
2018213Smckusick 
2028233Smckusick /* Brodersen - ucboz */
2038233Smckusick # ifdef OZ
2048233Smckusick # define LOCAL 'l'
2058233Smckusick # define NUID (501)
2068233Smckusick # endif OZ
2078233Smckusick 
2088233Smckusick /* EE-Signal Proccessing - ucbmedea */
2098233Smckusick # ifdef MEDEA
2108213Smckusick # define LOCAL 'm'
2118233Smckusick # define NUID (501)
2128233Smckusick # endif MEDEA
2138213Smckusick 
2148233Smckusick /* Fateman - ucbkim */
2158213Smckusick # ifdef KIM
2168213Smckusick # define LOCAL 'n'
2178233Smckusick # define NUID (501)
2188213Smckusick # endif KIM
2198213Smckusick 
2208233Smckusick /* EECS-Research - ucbesvax */
2218213Smckusick # ifdef ESVAX
2228213Smckusick # define LOCAL 'o'
2238213Smckusick # define NUID (67)
2248213Smckusick # endif ESVAX
2258213Smckusick 
2268233Smckusick /* Newton CAD - ucbcad */
2278213Smckusick # ifdef CAD
2288213Smckusick # define LOCAL 'p'
2298213Smckusick # define NUID (67)
2308213Smckusick # endif CAD
2318213Smckusick 
2328233Smckusick /* currently unused */
2338213Smckusick # ifdef Q
2348213Smckusick # define LOCAL 'q'
2358213Smckusick # endif Q
2368213Smckusick 
2378233Smckusick /* Fabry CSRG - ucbarpa */
2388213Smckusick # ifdef ARPAVAX
2398213Smckusick # define LOCAL 'r'
2408213Smckusick # define NUID (501)
2418213Smckusick # define MAXSENDQ 35
2428213Smckusick # endif ARPAVAX
2438213Smckusick 
2448233Smckusick /* CFO & SRC - SRC */
2458213Smckusick # ifdef SRC
2468213Smckusick # define LOCAL 's'
2478213Smckusick # define NUID  38
2488213Smckusick # endif SRC
2498213Smckusick 
2508233Smckusick /* Math/Stat Dept - MathStat */
2518213Smckusick # ifdef MATHSTAT
2528213Smckusick # define LOCAL 't'
2538233Smckusick # define NUID (-1)
2548213Smckusick # endif MATHSTAT
2558213Smckusick 
2568233Smckusick /* Fabry CSRG - c70 */
2578233Smckusick # ifdef C70
2588233Smckusick # define LOCAL 'u'
2598233Smckusick # define NUID (501)
2608233Smckusick # define MAXSENDQ 35
2618233Smckusick # endif C70
2628233Smckusick 
2638233Smckusick /* CS Research - ucbernie */
2648213Smckusick # ifdef CSVAX
2658213Smckusick # define LOCAL 'v'
2668213Smckusick # define NUID (501)
2678213Smckusick # define MAXSENDQ 35
2688213Smckusick # endif CSVAX
2698213Smckusick 
2708233Smckusick /* Stat Dept - statvax */
2718233Smckusick # ifdef STATVAX
2728233Smckusick # define LOCAL 'w'
2738233Smckusick # define NUID
2748233Smckusick # endif STATVAX
2758233Smckusick 
2768233Smckusick /* CS Research - Onyx */
2778213Smckusick # ifdef ONYX
2788213Smckusick # define LOCAL 'x'
2798213Smckusick # define NUID (10)
2808213Smckusick # define NOFP
2818213Smckusick # define SWAB
2828213Smckusick # undef PARMLIST
2838213Smckusick # define PARMLIST 20
2848213Smckusick # endif ONYX
2858213Smckusick 
2868233Smckusick /* EECS Dept - Cory */
2878213Smckusick # ifdef CORY
2888213Smckusick # define LOCAL 'y'
2898213Smckusick # define NUID (10)
2908213Smckusick # define MAXSENDQ 35
2918213Smckusick # include <signal.h>
2928213Smckusick # undef NETLDISC
2938213Smckusick # endif CORY
2948213Smckusick 
2958233Smckusick /* EECS Dept Administrative - ucbear */
2968233Smckusick # ifdef EARVAX
2978213Smckusick # define LOCAL 'z'
2988213Smckusick # define NUID ((1 << 8) | 104)
2998233Smckusick # endif EARVAX
3008213Smckusick 
3018213Smckusick /* end of Berkeley definitions */
3028213Smckusick # endif BERKELEY
3038213Smckusick 
3048213Smckusick /*
3058213Smckusick 	the CC V6 machines are all the same.
3068213Smckusick 	splitting their type into a separate group will
3078213Smckusick 	allow the binary patching program "patchd" to be
3088213Smckusick 	used to patch the binaries so the sources can be compiled
3098213Smckusick 	on one CC machine and the binaries shipped around
3108213Smckusick 	to the other CC machines.
3118213Smckusick */
3128213Smckusick # ifdef CCV7
3138213Smckusick # undef CC
3148213Smckusick # define NOREMACCT
3158213Smckusick # define NUID (10)
3168213Smckusick # define MAXSENDQ 35
3178213Smckusick # define CSH
3188213Smckusick # define CRN
3198213Smckusick # define MAGICCRN	"3700"		/* default CC crn */
3208213Smckusick # endif CCV7
3218213Smckusick 
3228213Smckusick # ifdef CC
3238213Smckusick # define V6
3248213Smckusick # define CCV6
3258213Smckusick # define CCTTY
3268213Smckusick # define PASSWDF
3278213Smckusick # define FUID
3288213Smckusick # define USRMAIL
3298213Smckusick # define NUID (115)
3308213Smckusick # define MAXSENDQ 35
3318213Smckusick # define NOREMACCT
3328213Smckusick # define CSH
3338213Smckusick # define CRN
3348213Smckusick # define MAGICCRN	"3700"		/* default CC crn */
3358213Smckusick # endif CC
3368213Smckusick 
3378213Smckusick /* default version 6 options */
3388213Smckusick # ifdef VANILLA6
3398213Smckusick # define V6
3408213Smckusick # define UID1CHAR
3418213Smckusick # define OLDTTY
3428213Smckusick # define OLDMAIL
3438213Smckusick # endif VANILLA6
3448213Smckusick 
3458213Smckusick /* default version 7 options */
3468213Smckusick # ifdef VANILLA7
3478213Smckusick # endif VANILLA7
3488213Smckusick 
3498213Smckusick # ifndef V6
3508213Smckusick # include <sys/param.h>
3518213Smckusick # include <sys/stat.h>
3528305Smckusick # include <dir.h>
3538213Smckusick # include <sys/times.h>
3548213Smckusick # include <ctype.h>
3558213Smckusick # include <sgtty.h>
3568213Smckusick # include <errno.h>
3578213Smckusick # include <pwd.h>
3588213Smckusick # include <assert.h>
3598213Smckusick # include <setjmp.h>
3608213Smckusick # define getsize(S)	((S)->st_size)
3618213Smckusick # define gettime()	(time(0))
3628213Smckusick int	(*signal())();
3638213Smckusick /*
3648213Smckusick #define	SIG_DFL	(int (*)())0
3658213Smckusick #define	SIG_IGN	(int (*)())1
3668213Smckusick */
3678213Smckusick 
3688213Smckusick # else V6
3698213Smckusick 
3708213Smckusick # define ETXTBSY 26
3718213Smckusick # define S_IREAD 0400
3728213Smckusick # define S_IFMT 060000
3738213Smckusick # define S_IFDIR 0040000
3748213Smckusick # define ANYP 0300
3758213Smckusick # define ECHO 010
3768213Smckusick # define ROOTINO 1
3778213Smckusick # define TIOCEXCL 0
3788213Smckusick # define SIGHUP		1
3798213Smckusick # define SIGINT 	2
3808213Smckusick # define SIGQUIT 	3
3818213Smckusick # define SIGKILL		9
3828213Smckusick # define SIGALRM 	14
3838213Smckusick # define SIGTERM 	15
3848213Smckusick # define SIG_IGN	1
3858213Smckusick # define ASSERT "Assertion failed: file %s, line %d\n", __FILE__, __LINE__);exit(1);}}
3868213Smckusick # define assert(ex) {if (!(ex)){fprintf(stderr,ASSERT
3878213Smckusick # define isprint(c) (040 <= c && c <= 0176)
3888213Smckusick # define longjmp(a,b) reset()
3898213Smckusick # define setjmp(a) setexit()
3908213Smckusick 
3918213Smckusick 
3928213Smckusick struct tms {				/* see times - sect 2 */
3938213Smckusick 	int	tms_utime;		/* user time */
3948213Smckusick 	int	tms_stime;		/* system time */
3958213Smckusick 	long	tms_cutime;		/* user time, children */
3968213Smckusick 	long	tms_cstime;		/* system time, children */
3978213Smckusick 	};
3988213Smckusick struct sgttyb {
3998213Smckusick 	char sg_ispeed;
4008213Smckusick 	char sg_ospeed;
4018213Smckusick 	char sg_erase;
4028213Smckusick 	char sg_kill;
4038213Smckusick 	int sg_flags;
4048213Smckusick 	};
4058213Smckusick struct	passwd { /* see getpwent(3) */
4068213Smckusick 	char	*pw_name;
4078213Smckusick 	char	*pw_passwd;
4088213Smckusick 	int	pw_uid;
4098213Smckusick 	int	pw_gid;
4108213Smckusick 	int	pw_quota;
4118213Smckusick 	char	*pw_comment;
4128213Smckusick 	char	*pw_gecos;
4138213Smckusick 	char	*pw_dir;
4148213Smckusick 	char	*pw_shell;
4158213Smckusick 	};
4168213Smckusick /* /usr/include/varargs.h */
4178213Smckusick typedef char *va_list;
4188213Smckusick # define va_dcl int va_alist;
4198213Smckusick # define va_start(list) list = (char *) &va_alist
4208213Smckusick # define va_end(list)
4218213Smckusick # define va_arg(list,mode) ((mode *)(list += sizeof(mode)))[-1]
4228213Smckusick 
4238213Smckusick typedef int jmp_buf[10];
4248213Smckusick long gettime(), getsize();
4258213Smckusick # endif V6
4268213Smckusick /* end of non-v7 defns */
4278213Smckusick 
4288213Smckusick # ifdef FUID
4298213Smckusick # define getgid(s) (0)
4308213Smckusick # endif FUID
4318213Smckusick 
4328213Smckusick # ifdef UID1CHAR
4338213Smckusick # define uidmask(S) (S & 0377)
4348213Smckusick # define geteuid() ((getuid()>>8)&0377)
4358213Smckusick # else UID1CHAR
4368213Smckusick # define uidmask(S) (S)
4378213Smckusick # endif UID1CHAR
4388213Smckusick 
4398213Smckusick # ifdef NOEUID
4408213Smckusick # define geteuid(S) (-1)
4418213Smckusick # endif NOEUID
4428213Smckusick 
4438213Smckusick # ifdef CCTTY
4448213Smckusick # define ttyname(S) myttyname(S)
4458213Smckusick # endif CCTTY
4468213Smckusick 
4478213Smckusick #ifdef CRN
4488213Smckusick #include	<gecos.h>
4498213Smckusick #endif CRN
4508213Smckusick 
4518213Smckusick # ifdef OLDTTY
4528213Smckusick /* this is the version 7 utmp structure. the getutmp() procedure
4538213Smckusick    converts the v6 structure into this format
4548213Smckusick */
4558213Smckusick struct utmp {
4568213Smckusick 	char	ut_line[8];		/* tty name */
4578213Smckusick 	char	ut_name[8];		/* user id */
4588213Smckusick 	long	ut_time;		/* time on */
4598213Smckusick };
4608213Smckusick # else OLDTTY
4618213Smckusick # include <utmp.h>
4628213Smckusick # endif OLDTTY
4638213Smckusick 
4648213Smckusick # define chfromf(S) (S ? 'T' : 'F')
4658213Smckusick 
4668213Smckusick /* functions */
4678213Smckusick 
4688213Smckusick char *hgethome(), *calloc(), *ctime(), *getenv();
4698213Smckusick char *getname(), *getun(), *getlogin();
4708213Smckusick char *SnFromUid(), *ttyname();
4718213Smckusick struct passwd *getpwnam(), *getpwuid();
4728213Smckusick long atol(),time();
4738213Smckusick struct utmp *getutmp();
474