|
|
1.1 ! root 1: /* ! 2: ! 3: mach.h -- define machine-dependent things ! 4: ! 5: *** Pre-processor Flags *** ! 6: ! 7: This set of code is controlled by this set of conditional ! 8: compilation flags: ! 9: ! 10: TESTING if defined, do not generate tests, etc. which require ! 11: super-user status. ! 12: ! 13: OLDTTY if defined, compile for old 1 character TTY names ! 14: CCTTY if defined, compile for CC tty name format ! 15: if neither is defined, use v7 ttyname format ! 16: ! 17: PASSWDF compile in code to handle /etc/passwdf - split passwd files ! 18: ! 19: NEWPROT use the new protocol, instead of the default protocol ! 20: ! 21: V6 Assume the v6 features insted of the v7 ones. ! 22: ! 23: FUID use the funny uid's present on Cory and CC ! 24: ROPTION The local machine mail program has the magic -r option ! 25: ROPTION2 The local machine mail program has the magic -r option ! 26: ! 27: HPASSWD The local machine has the hashed password stuff ! 28: ! 29: SPACCT under certain circumstances, allow remote login without acct ! 30: ! 31: OLDMAIL mail is in home-directory/.mail ! 32: USRMAIL mail is in /usr/mail/name ! 33: (mail is in /usr/spool/mail/name) ! 34: ! 35: CC Machine is a Computer Center machine ! 36: NUID userid (as returned by getuid()) on this machine ! 37: UID1CHAR Uses vanila Version6 userid's (only 1 byte for uid) ! 38: NOEUID Does not have the geteuid() system call ! 39: ! 40: ! 41: The conditonal flags are first defined ! 42: in "/usr/include/whoami.h" on the local machine. ! 43: ! 44: For "normal" version 6 machines, there is a dummy machine ! 45: definition for "VANILLA6" which indicates the v6 UNIX options. ! 46: ! 47: For "normal" version 7 machines, there is a dummy machine ! 48: definition for "VANILLA7" which indicates the v7 UNIX options. ! 49: */ ! 50: /* be sure to include <stdio.h> before these defns */ ! 51: ! 52: # include <whoami.h> ! 53: ! 54: /* note NUID is only used in mmail.c */ ! 55: ! 56: # ifdef A ! 57: # define CC ! 58: # define LOCAL 'a' ! 59: # endif ! 60: ! 61: # ifdef B ! 62: # define CC ! 63: # define LOCAL 'b' ! 64: # endif ! 65: ! 66: # ifdef C ! 67: # define CC ! 68: # define LOCAL 'c' ! 69: # endif ! 70: ! 71: # ifdef D ! 72: # define CC ! 73: # define LOCAL 'd' ! 74: # endif ! 75: ! 76: # ifdef E ! 77: # define CC ! 78: # define LOCAL 'e' ! 79: # endif ! 80: ! 81: # ifdef F ! 82: # define ROPTION2 ! 83: # define LOCAL 'f' ! 84: # define NUID (501) ! 85: # define ISVAX ! 86: # endif ! 87: ! 88: # ifdef ING70 ! 89: # define V6 ! 90: # define OLDTTY ! 91: # define UID1CHAR ! 92: # define PASSWDF ! 93: # define ROPTION2 ! 94: # define MULTNAMS ! 95: # define FREELPR ! 96: # define LOCAL 'i' ! 97: # define NUID (174) ! 98: /* correct vers. 7 = LOCAL, NUID */ ! 99: # endif ! 100: ! 101: # ifdef INGVAX ! 102: # define LOCAL 'j' ! 103: # define NUID (37) ! 104: # define ROPTION2 ! 105: # define ISVAX ! 106: # define FREELPR ! 107: # endif ! 108: ! 109: # ifdef IMAGE ! 110: # define V6 ! 111: # define OLDTTY ! 112: # define UID1CHAR ! 113: # define USRMAIL ! 114: # define LOCAL 'm' ! 115: # define NUID (-1) ! 116: /* correct vers. 7 = LOCAL, NUID */ ! 117: # endif ! 118: ! 119: # ifdef OPTVAX ! 120: # define LOCAL 'o' ! 121: # define NUID (-1) ! 122: # define ISVAX ! 123: # endif ! 124: ! 125: # ifdef Q ! 126: # define V6 ! 127: # define OLDTTY ! 128: # define FUID ! 129: # define NOEUID ! 130: # define LOCAL 'q' ! 131: # define NUID ((11 << 8) | 38) ! 132: /* correct vers. 7 = LOCAL, NUID */ ! 133: # endif ! 134: ! 135: # ifdef SRC ! 136: # define V6 ! 137: # define OLDTTY ! 138: # define FUID ! 139: # define NOEUID ! 140: # define SPACCT ! 141: # define LOCAL 's' ! 142: # define NUID ((11 << 8) | 38) ! 143: /* correct vers. 7 = LOCAL, NUID */ ! 144: # endif ! 145: ! 146: # ifdef CSVAX ! 147: # define ROPTION ! 148: # define LOCAL 'v' ! 149: # define NUID (501) ! 150: # define ISVAX ! 151: # endif ! 152: ! 153: # ifdef CORY ! 154: # define LOCAL 'y' ! 155: # define NUID (10) ! 156: # define ROPTION ! 157: # endif ! 158: ! 159: # ifdef EECS40 ! 160: # define V6 ! 161: # define OLDTTY ! 162: # define USRMAIL ! 163: # define UID1CHAR ! 164: # define LOCAL 'z' ! 165: # define NUID (-1) ! 166: /* correct vers. 7 = LOCAL, NUID */ ! 167: # endif ! 168: ! 169: /* ! 170: the CC V6 machines are all the same. ! 171: splitting their type into a separate group will ! 172: allow the binary patching program "patchd" to be ! 173: used to patch the binaries so the sources can be compiled ! 174: on one CC machine and the binaries shipped around ! 175: to the other CC machines. ! 176: */ ! 177: # ifdef CC ! 178: # define V6 ! 179: # define CCTTY ! 180: # define PASSWDF ! 181: # define FUID ! 182: # define USRMAIL ! 183: # define SPACCT ! 184: # define NUID ((217 << 8) | 2) ! 185: /* correct vers. 7 = LOCAL, NUID, CC */ ! 186: # endif ! 187: ! 188: /* default version 6 options */ ! 189: # ifdef VANILLA6 ! 190: # define V6 ! 191: # define UID1CHAR ! 192: # define OLDTTY ! 193: # endif ! 194: ! 195: /* default version 7 options */ ! 196: # ifdef VANILLA7 ! 197: # endif ! 198: ! 199: # ifndef V6 ! 200: # include <sys/param.h> ! 201: # include <sys/stat.h> ! 202: # include <sys/dir.h> ! 203: # include <sys/times.h> ! 204: /* # include <signal.h> */ ! 205: # include <ctype.h> ! 206: # include <sgtty.h> ! 207: # include <errno.h> ! 208: # include <pwd.h> ! 209: # include <assert.h> ! 210: # include <setjmp.h> ! 211: # define getsize(S) ((S)->st_size) ! 212: # define gettime() (time(0)) ! 213: # define SIG_IGN 1 ! 214: ! 215: # else ! 216: ! 217: # define ETXTBSY 26 ! 218: # define S_IREAD 0400 ! 219: # define S_IFMT 060000 ! 220: # define S_IFDIR 0040000 ! 221: # define ANYP 0300 ! 222: # define ECHO 010 ! 223: # define ROOTINO 1 ! 224: # define DIRSIZ 14 ! 225: # define TIOCEXCL 0 ! 226: # define SIGHUP 1 ! 227: # define SIGINT 2 ! 228: # define SIGQUIT 3 ! 229: # define SIGKIL 9 ! 230: # define SIGCLK 14 ! 231: # define SIGTRM 15 ! 232: # define SIG_IGN 1 ! 233: # define ASSERT "Assertion failed: file %s, line %d\n", __FILE__, __LINE__);exit(1);}} ! 234: # define assert(ex) {if (!(ex)){fprintf(stderr,ASSERT ! 235: # define isprint(c) (040 <= c && c <= 0176) ! 236: # define longjmp(a,b) reset() ! 237: # define setjmp(a) setexit() ! 238: ! 239: struct stat { ! 240: int st_dev; ! 241: int st_ino; ! 242: int st_mode; ! 243: char st_nlink:8; ! 244: char st_uid:8; ! 245: char st_gid:8; ! 246: char st_size0; ! 247: int st_size1; ! 248: int st_addr[8]; ! 249: long st_atime; ! 250: long st_mtime; ! 251: }; ! 252: struct direct { ! 253: int d_ino; ! 254: char d_name[DIRSIZ]; ! 255: }; ! 256: struct tms { /* see times - sect 2 */ ! 257: int tms_utime; /* user time */ ! 258: int tms_stime; /* system time */ ! 259: long tms_cutime; /* user time, children */ ! 260: long tms_cstime; /* system time, children */ ! 261: }; ! 262: struct sgttyb { ! 263: char sg_ispeed; ! 264: char sg_ospeed; ! 265: char sg_erase; ! 266: char sg_kill; ! 267: int sg_flags; ! 268: }; ! 269: struct passwd { /* see getpwent(3) */ ! 270: char *pw_name; ! 271: char *pw_passwd; ! 272: int pw_uid; ! 273: int pw_gid; ! 274: int pw_quota; ! 275: char *pw_comment; ! 276: char *pw_gecos; ! 277: char *pw_dir; ! 278: char *pw_shell; ! 279: }; ! 280: typedef int jmp_buf[10]; ! 281: long gettime(), getsize(); ! 282: # endif ! 283: /* end of non-v7 defns */ ! 284: ! 285: # ifdef FUID ! 286: # define getgid(s) (0) ! 287: # endif ! 288: ! 289: # ifdef UID1CHAR ! 290: # define uidmask(S) (S & 0377) ! 291: # define geteuid() ((getuid()>>8)&0377) ! 292: # else ! 293: # define uidmask(S) (S) ! 294: # endif ! 295: ! 296: # ifdef NOEUID ! 297: # define geteuid(S) (-1) ! 298: # endif ! 299: ! 300: # ifdef CCTTY ! 301: # define ttyname(S) myttyname(S) ! 302: # endif ! 303: ! 304: # ifdef OLDTTY ! 305: struct utmp { ! 306: char ut_name[8]; ! 307: char ut_tty; ! 308: char ut_fill; ! 309: long ut_time; ! 310: int ut_fill1; ! 311: }; ! 312: # else ! 313: # include <utmp.h> ! 314: # endif ! 315: ! 316: /* functions */ ! 317: ! 318: char *hgethome(), *calloc(), *ctime(), *getenv(); ! 319: char *getname(), *getun(), *getlogin(); ! 320: struct passwd *getpwnam(), *getpwuid(); ! 321: long fixuplong(),atol(),time();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.