1: /*	@(#)mach.h	4.6	(Berkeley)	12/27/82	*/
   2: 
   3: /* sccs id variable */
   4: static char *mach_h_sid = "@(#)mach.h	1.11";
   5: 
   6: /*
   7: 
   8: 	mach.h	-- define machine-dependent things
   9: 
  10: *** Pre-processor Flags ***
  11: 
  12: This set of code is controlled by this set of conditional
  13: compilation flags:
  14: 
  15: TESTING		if defined, do not generate tests, etc. which require
  16: 		super-user status.
  17: 
  18: OLDTTY		if defined, compile for old 1 character TTY names
  19: CCTTY		if defined, compile for CC tty name format
  20: 		if neither is defined, use v7 ttyname format
  21: 
  22: PASSWDF		compile in code to handle /etc/passwdf - split passwd files
  23: 
  24: V6		Assume the v6 features instead of the v7 ones.
  25: 
  26: FUID		use the funny uid's present on CC V6
  27: 
  28: SENDMAIL	Uses the sendmail program
  29: 
  30: HPASSWD		The local machine has the hashed password stuff
  31: 
  32: OLDMAIL		mail is in home-directory/.mail
  33: USRMAIL		mail is in /usr/mail/name
  34: 		(mail is in /usr/spool/mail/name)
  35: 
  36: CC		Machine is a Computer Center machine
  37: NUID		userid (as returned by getuid()) on this machine
  38: UID1CHAR	Uses vanila Version6 userid's (only 1 byte for uid)
  39: NOEUID		Does not have the geteuid() system call
  40: NFREECMD	doesn't allow any "network" free commands
  41: NOFP		floating point just doesn't work on this machine
  42: NOREMACCT	allows netlpr's on remote machines without an account
  43: CSH		use the /bin/csh shell (Paths.h sets BINSH to this path ).
  44: CRN		CC crn's are passed
  45: DONTHOLDBIG	large (size > MAXDAYFILE ) jobs wont be held until night for
  46: 		transmission
  47: 
  48: SWAB		this machine has byte-ordering reversed from the DEC VAX
  49: 		and PDP-11 standard (the only current example is Onyx)
  50: The conditonal flags are first defined
  51: in "local.h" in this directory.
  52: 
  53: For "normal" version 6 machines, there is a dummy machine
  54: definition for "VANILLA6" which indicates the v6 UNIX options.
  55: 
  56: For "normal" version 7 machines, there is a dummy machine
  57: definition for "VANILLA7" which indicates the v7 UNIX options.
  58: (VM/UNIX and Berkeley VM/VAX/UNIX can use this)
  59: */
  60: /* be sure to include <stdio.h> before these defns */
  61: 
  62: # include "local.h"
  63: # include <sysexits.h>
  64: 
  65: /* note NUID is only used in mmail.c */
  66: 
  67: # ifdef RAND
  68: /* definitions for Rand-Unix */
  69: # ifdef VAX
  70: # define LOCAL 'v'
  71: # define NUID (-1)
  72: # endif VAX
  73: 
  74: # ifdef GRAPHICS
  75: # define V6
  76: # define OLDTTY
  77: # define UID1CHAR
  78: # define OLDMAIL
  79: # define LOCAL 'g'
  80: # define NUID (-1)
  81: # endif GRAPHICS
  82: 
  83: # ifdef TP
  84: # define LOCAL 't'
  85: # define V6
  86: # define OLDTTY
  87: # define UID1CHAR
  88: # define OLDMAIL
  89: # define NUID (-1)
  90: # endif TP
  91: 
  92: /* end of definitions for Rand */
  93: # endif RAND
  94: 
  95: 
  96: # ifdef NOSC
  97: /* definitions for Naval Ocean Systems Center NOSC */
  98: # ifdef ATTS
  99: # define LOCAL 'a'
 100: # define V6
 101: # define OLDTTY
 102: # define UID1CHAR
 103: # define OLDMAIL
 104: # define NUID (-1)
 105: # endif ATTS
 106: 
 107: # ifdef CCMM
 108: # define LOCAL 'c'
 109: # define V6
 110: # define OLDTTY
 111: # define UID1CHAR
 112: # define OLDMAIL
 113: # define NUID (-1)
 114: # endif CCMM
 115: 
 116: # ifdef MSSF
 117: # define V6
 118: # define OLDTTY
 119: # define UID1CHAR
 120: # define OLDMAIL
 121: # define LOCAL 'm'
 122: # define NUID (-1)
 123: # endif MSSF
 124: 
 125: /* end of definitions for NOSC */
 126: 
 127: # endif NOSC
 128: 
 129: # ifdef BERKELEY
 130: 
 131: /* all berkeley sites use sendmail.....         (someday?) */
 132: # define SENDMAIL
 133: 
 134: /* CFO - A */
 135: # ifdef A
 136: # define CCV7
 137: # define LOCAL 'a'
 138: # endif A
 139: 
 140: /* CFO - B */
 141: # ifdef B
 142: # define CCV7
 143: # define LOCAL 'b'
 144: # endif B
 145: 
 146: /* CFO - C */
 147: # ifdef C
 148: # define CCV7
 149: # define LOCAL 'c'
 150: # endif C
 151: 
 152: /* CFO - D */
 153: # ifdef D
 154: # define CCV7
 155: # define LOCAL 'd'
 156: # endif D
 157: 
 158: /* CFO - E */
 159: # ifdef E
 160: # define CCV7
 161: # define LOCAL 'e'
 162: # endif E
 163: 
 164: /* CFO - F */
 165: # ifdef F
 166: # define CCV7
 167: # define LOCAL 'f'
 168: # endif F
 169: 
 170: /* CFO - G */
 171: # ifdef G
 172: # define LOCAL 'g'
 173: # define NUID (501)
 174: # endif G
 175: 
 176: /* CFO - Jade */
 177: # ifdef H
 178: # define LOCAL 'h'
 179: # define NUID (501)
 180: # endif H
 181: 
 182: /* CSSG - ucberl70 */
 183: # ifdef ERL70
 184: # define LOCAL 'i'
 185: # define NUID (174)
 186: # endif ERL70
 187: 
 188: /* Ingres Group - ucbingres */
 189: # ifdef INGVAX
 190: # define LOCAL 'j'
 191: # define NUID (37)
 192: # define FREELPR
 193: # endif INGVAX
 194: 
 195: /* CS network hub - ucbvax */
 196: # ifdef UCBVAX
 197: # define LOCAL 'k'
 198: # define NUID (35)
 199: # define MAXSENDQ 35
 200: # endif UCBVAX
 201: 
 202: /* Brodersen - ucboz */
 203: # ifdef OZ
 204: # define LOCAL 'l'
 205: # define NUID (501)
 206: # endif OZ
 207: 
 208: /* EE-Signal Proccessing - ucbmedea */
 209: # ifdef MEDEA
 210: # define LOCAL 'm'
 211: # define NUID (501)
 212: # endif MEDEA
 213: 
 214: /* Fateman - ucbkim */
 215: # ifdef KIM
 216: # define LOCAL 'n'
 217: # define NUID (501)
 218: # endif KIM
 219: 
 220: /* EECS-Research - ucbesvax */
 221: # ifdef ESVAX
 222: # define LOCAL 'o'
 223: # define NUID (67)
 224: # endif ESVAX
 225: 
 226: /* Newton CAD - ucbcad */
 227: # ifdef CAD
 228: # define LOCAL 'p'
 229: # define NUID (67)
 230: # endif CAD
 231: 
 232: /* currently unused */
 233: # ifdef Q
 234: # define LOCAL 'q'
 235: # endif Q
 236: 
 237: /* Fabry CSRG - ucbarpa */
 238: # ifdef ARPAVAX
 239: # define LOCAL 'r'
 240: # define NUID (501)
 241: # define MAXSENDQ 35
 242: # endif ARPAVAX
 243: 
 244: /* CFO & SRC - SRC */
 245: # ifdef SRC
 246: # define LOCAL 's'
 247: # define NUID  38
 248: # endif SRC
 249: 
 250: /* Math/Stat Dept - MathStat */
 251: # ifdef MATHSTAT
 252: # define LOCAL 't'
 253: # define NUID (-1)
 254: # endif MATHSTAT
 255: 
 256: /* Fabry CSRG - c70 */
 257: # ifdef C70
 258: # define LOCAL 'u'
 259: # define NUID (501)
 260: # define MAXSENDQ 35
 261: # endif C70
 262: 
 263: /* CS Research - ucbernie */
 264: # ifdef CSVAX
 265: # define LOCAL 'v'
 266: # define NUID (501)
 267: # define MAXSENDQ 35
 268: # endif CSVAX
 269: 
 270: /* Stat Dept - statvax */
 271: # ifdef STATVAX
 272: # define LOCAL 'w'
 273: # define NUID
 274: # endif STATVAX
 275: 
 276: /* CS Research - Onyx */
 277: # ifdef ONYX
 278: # define LOCAL 'x'
 279: # define NUID (10)
 280: # define NOFP
 281: # define SWAB
 282: # undef PARMLIST
 283: # define PARMLIST 20
 284: # endif ONYX
 285: 
 286: /* EECS Dept - Cory */
 287: # ifdef CORY
 288: # define LOCAL 'y'
 289: # define NUID (10)
 290: # define MAXSENDQ 35
 291: # include <signal.h>
 292: # undef NETLDISC
 293: # endif CORY
 294: 
 295: /* EECS Dept Administrative - ucbear */
 296: # ifdef EARVAX
 297: # define LOCAL 'z'
 298: # define NUID ((1 << 8) | 104)
 299: # endif EARVAX
 300: 
 301: /* end of Berkeley definitions */
 302: # endif BERKELEY
 303: 
 304: /*
 305: 	the CC V6 machines are all the same.
 306: 	splitting their type into a separate group will
 307: 	allow the binary patching program "patchd" to be
 308: 	used to patch the binaries so the sources can be compiled
 309: 	on one CC machine and the binaries shipped around
 310: 	to the other CC machines.
 311: */
 312: # ifdef CCV7
 313: # undef CC
 314: # define NOREMACCT
 315: # define NUID (10)
 316: # define MAXSENDQ 35
 317: # define CSH
 318: # define CRN
 319: # define MAGICCRN   "3700"      /* default CC crn */
 320: # endif CCV7
 321: 
 322: # ifdef CC
 323: # define V6
 324: # define CCV6
 325: # define CCTTY
 326: # define PASSWDF
 327: # define FUID
 328: # define USRMAIL
 329: # define NUID (115)
 330: # define MAXSENDQ 35
 331: # define NOREMACCT
 332: # define CSH
 333: # define CRN
 334: # define MAGICCRN   "3700"      /* default CC crn */
 335: # endif CC
 336: 
 337: /* default version 6 options */
 338: # ifdef VANILLA6
 339: # define V6
 340: # define UID1CHAR
 341: # define OLDTTY
 342: # define OLDMAIL
 343: # endif VANILLA6
 344: 
 345: /* default version 7 options */
 346: # ifdef VANILLA7
 347: # endif VANILLA7
 348: 
 349: # ifndef V6
 350: # include <sys/param.h>
 351: # include <sys/stat.h>
 352: # include <dir.h>
 353: # include <sys/times.h>
 354: # include <ctype.h>
 355: # include <sgtty.h>
 356: # include <errno.h>
 357: # include <pwd.h>
 358: # include <assert.h>
 359: # include <setjmp.h>
 360: # define getsize(S) ((S)->st_size)
 361: # define gettime()  (time(0))
 362: int (*signal())();
 363: /*
 364: #define	SIG_DFL	(int (*)())0
 365: #define	SIG_IGN	(int (*)())1
 366: */
 367: 
 368: # else V6
 369: 
 370: # define ETXTBSY 26
 371: # define S_IREAD 0400
 372: # define S_IFMT 060000
 373: # define S_IFDIR 0040000
 374: # define ANYP 0300
 375: # define ECHO 010
 376: # define ROOTINO 1
 377: # define TIOCEXCL 0
 378: # define SIGHUP     1
 379: # define SIGINT     2
 380: # define SIGQUIT    3
 381: # define SIGKILL        9
 382: # define SIGALRM    14
 383: # define SIGTERM    15
 384: # define SIG_IGN    1
 385: # define ASSERT "Assertion failed: file %s, line %d\n", __FILE__, __LINE__);exit(1);}}
 386: # define assert(ex) {if (!(ex)){fprintf(stderr,ASSERT
 387: # define isprint(c) (040 <= c && c <= 0176)
 388: # define longjmp(a,b) reset()
 389: # define setjmp(a) setexit()
 390: 
 391: 
 392: struct tms {                /* see times - sect 2 */
 393:     int tms_utime;      /* user time */
 394:     int tms_stime;      /* system time */
 395:     long    tms_cutime;     /* user time, children */
 396:     long    tms_cstime;     /* system time, children */
 397:     };
 398: struct sgttyb {
 399:     char sg_ispeed;
 400:     char sg_ospeed;
 401:     char sg_erase;
 402:     char sg_kill;
 403:     int sg_flags;
 404:     };
 405: struct  passwd { /* see getpwent(3) */
 406:     char    *pw_name;
 407:     char    *pw_passwd;
 408:     int pw_uid;
 409:     int pw_gid;
 410:     int pw_quota;
 411:     char    *pw_comment;
 412:     char    *pw_gecos;
 413:     char    *pw_dir;
 414:     char    *pw_shell;
 415:     };
 416: /* /usr/include/varargs.h */
 417: typedef char *va_list;
 418: # define va_dcl int va_alist;
 419: # define va_start(list) list = (char *) &va_alist
 420: # define va_end(list)
 421: # define va_arg(list,mode) ((mode *)(list += sizeof(mode)))[-1]
 422: 
 423: typedef int jmp_buf[10];
 424: long gettime(), getsize();
 425: # endif V6
 426: /* end of non-v7 defns */
 427: 
 428: # ifdef FUID
 429: # define getgid(s) (0)
 430: # endif FUID
 431: 
 432: # ifdef UID1CHAR
 433: # define uidmask(S) (S & 0377)
 434: # define geteuid() ((getuid()>>8)&0377)
 435: # else UID1CHAR
 436: # define uidmask(S) (S)
 437: # endif UID1CHAR
 438: 
 439: # ifdef NOEUID
 440: # define geteuid(S) (-1)
 441: # endif NOEUID
 442: 
 443: # ifdef CCTTY
 444: # define ttyname(S) myttyname(S)
 445: # endif CCTTY
 446: 
 447: #ifdef CRN
 448: #include    <gecos.h>
 449: #endif CRN
 450: 
 451: # ifdef OLDTTY
 452: /* this is the version 7 utmp structure. the getutmp() procedure
 453:    converts the v6 structure into this format
 454: */
 455: struct utmp {
 456:     char    ut_line[8];     /* tty name */
 457:     char    ut_name[8];     /* user id */
 458:     long    ut_time;        /* time on */
 459: };
 460: # else OLDTTY
 461: # include <utmp.h>
 462: # endif OLDTTY
 463: 
 464: # define chfromf(S) (S ? 'T' : 'F')
 465: 
 466: /* functions */
 467: 
 468: char *hgethome(), *calloc(), *ctime(), *getenv();
 469: char *getname(), *getun(), *getlogin();
 470: char *SnFromUid(), *ttyname();
 471: struct passwd *getpwnam(), *getpwuid();
 472: long atol(),time();
 473: struct utmp *getutmp();

Defined variables

mach_h_sid defined in line 4; never used

Defined struct's

passwd defined in line 405; used 2 times
  • in line 471(2)
sgttyb defined in line 398; used 6 times
tms defined in line 392; used 2 times
utmp defined in line 455; used 2 times
  • in line 473(2)

Defined typedef's

va_list defined in line 417; never used

Defined macros

ANYP defined in line 374; used 2 times
ASSERT defined in line 385; used 1 times
CCTTY defined in line 325; used 3 times
CCV6 defined in line 324; used 1 times
CCV7 defined in line 166; used 6 times
CRN defined in line 333; used 9 times
CSH defined in line 332; never used
ECHO defined in line 375; used 2 times
ETXTBSY defined in line 370; used 1 times
FREELPR defined in line 192; used 1 times
FUID defined in line 327; used 4 times
LOCAL defined in line 297; used 1 times
MAXSENDQ defined in line 330; used 6 times
NOFP defined in line 280; used 8 times
NOREMACCT defined in line 331; used 2 times
NUID defined in line 329; used 2 times
OLDMAIL defined in line 342; used 6 times
OLDTTY defined in line 341; used 6 times
PASSWDF defined in line 326; used 1 times
ROOTINO defined in line 376; used 1 times
SENDMAIL defined in line 132; used 3 times
SIGALRM defined in line 382; used 4 times
SIGKILL defined in line 381; used 1 times
S_IFDIR defined in line 373; used 3 times
S_IFMT defined in line 372; used 1 times
S_IREAD defined in line 371; never used
TIOCEXCL defined in line 377; used 2 times
UID1CHAR defined in line 340; used 2 times
USRMAIL defined in line 328; used 2 times
assert defined in line 386; never used
chfromf defined in line 464; used 5 times
geteuid defined in line 440; never used
isprint defined in line 387; never used
longjmp defined in line 388; used 2 times
setjmp defined in line 389; used 2 times
ttyname defined in line 444; used 11 times
va_arg defined in line 421; never used
va_dcl defined in line 418; never used
va_end defined in line 420; never used
va_start defined in line 419; never used

Usage of this include

Last modified: 1982-12-27
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2582
Valid CSS Valid XHTML 1.0 Strict