|
|
1.1 ! root 1: /* ! 2: * global definitions for config ! 3: */ ! 4: ! 5: #define NULL 0 ! 6: #define NONUM (-1) ! 7: #define STDERR 2 ! 8: ! 9: ! 10: /* ! 11: * an entry from the master devices file ! 12: */ ! 13: ! 14: #define NSTR 10 ! 15: ! 16: typedef struct mdev { ! 17: struct mdev *next; ! 18: char *name; ! 19: char *tag; ! 20: char *strs[NSTR]; ! 21: char fstrs[NSTR]; ! 22: short rept; /* repeat count; e.g. 8 dz11s per controller */ ! 23: char atype; /* type of address */ ! 24: char nvec; /* unibus only; number of vector entries */ ! 25: char adptype; /* if i'm an adapter, which kind */ ! 26: char flags; ! 27: } Mdev; ! 28: ! 29: extern Mdev *mlist; ! 30: ! 31: /* ! 32: * flags ! 33: */ ! 34: #define FTBDONE 01 /* already marked as used in all tables */ ! 35: #define FDUPOK 02 /* duplicate devices supercede */ ! 36: #define FRAWVEC 04 /* raw vector, whatever that may mean */ ! 37: ! 38: /* ! 39: * address type ! 40: * these are indices into acode; see main.c ! 41: */ ! 42: ! 43: #define ANONE 0 /* no address */ ! 44: #define ACNT 1 /* unaddressed device, but print the count */ ! 45: #define ASBI 2 /* sbi-style nexus */ ! 46: #define AMBA 3 /* dev on massbus */ ! 47: #define AUBA 4 /* dev on unibus */ ! 48: #define ASUB 5 /* subdevice */ ! 49: #define AVBI 6 /* VAXBI nexus */ ! 50: #define APARAM 7 /* unaddressed; print count without `cnt' */ ! 51: #define AMSCP 8 /* MSCP device */ ! 52: #define ANOBUS 9 /* device adapter attached to no bus */ ! 53: ! 54: struct acode { ! 55: int (*syntax)(); /* check Dev when conf file is read */ ! 56: int (*fixup)(); /* fix entry before printing address */ ! 57: int (*putaddr)(); /* put address stuff */ ! 58: int (*putvec)(); /* put vector interrupt routine */ ! 59: } acode[]; ! 60: ! 61: /* ! 62: * an entry in the conf file ! 63: */ ! 64: ! 65: #define NADDR 4 ! 66: ! 67: typedef struct dev { ! 68: struct dev *next; ! 69: struct dev *parent; /* bus adapter */ ! 70: Mdev *mdev; ! 71: int id; /* 0 in `dz11 0' */ ! 72: int vecoff; /* vector offset if bus adapter */ ! 73: long addr[NADDR]; /* used in mysterious ways */ ! 74: } Dev; ! 75: ! 76: extern Dev *dlist; ! 77: ! 78: /* ! 79: * an entry in the scb/trap vector list ! 80: */ ! 81: ! 82: typedef struct scb { ! 83: struct scb *next; ! 84: int offset; ! 85: int type; ! 86: char *name; ! 87: } Scb; ! 88: ! 89: extern Scb *llist; ! 90: ! 91: /* ! 92: * scb entry types ! 93: */ ! 94: ! 95: #define STRAP 0 /* trap onto kernel stack */ ! 96: #define SINTR 1 /* trap onto interrupt stack */ ! 97: ! 98: /* ! 99: * device tables ! 100: */ ! 101: ! 102: typedef struct devtab { ! 103: Mdev *dev; ! 104: int used; ! 105: } Devtab; ! 106: ! 107: extern Devtab bdevsw[], cdevsw[], fstypsw[], ldispsw[], mscpsw[];; ! 108: extern int nblk, nchr, nfs, nld, nmscp; ! 109: ! 110: typedef struct include { ! 111: struct include *next; ! 112: Mdev *dev; ! 113: char *incl; ! 114: char inuse; ! 115: } Include; ! 116: ! 117: extern Include *inclist; ! 118: ! 119: typedef struct swapdev { ! 120: Mdev *mp; ! 121: short major, minor; ! 122: long size; ! 123: } Swapdev; ! 124: ! 125: extern Swapdev swaptab[]; ! 126: extern int nswapdev; ! 127: extern Mdev *rootfmp, *rootdmp; ! 128: extern int rootfs, rootmaj, rootmin; ! 129: extern int swapmaj, swapmin; ! 130: extern char *dumprout; ! 131: extern int dumpunit; ! 132: extern long dumplow, dumpsize; ! 133: ! 134: char *ealloc(); ! 135: char *estrdup(); ! 136: Dev *advtype(); ! 137: Mdev *mdlook(); ! 138: long nconv(); ! 139: char *keyread(); ! 140: ! 141: extern int errs;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.