|
|
1.1 ! root 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();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.