|
|
1.1 root 1: /* config.h 1.13 83/06/16 */
2:
3: /*
4: * Config.
5: */
6: #include <sys/types.h>
7:
8: #define NODEV ((dev_t)-1)
9:
10: struct file_list {
11: struct file_list *f_next;
12: char *f_fn; /* the name */
13: u_char f_type; /* see below */
14: u_char f_flags; /* see below */
15: short f_special; /* requires special make rule */
16: char *f_needs;
17: /*
18: * Random values:
19: * swap space parameters for swap areas
20: * root device, etc. for system specifications
21: */
22: union {
23: struct { /* when swap specification */
24: dev_t fuw_swapdev;
25: int fuw_swapsize;
26: } fuw;
27: struct { /* when system specification */
28: dev_t fus_rootdev;
29: dev_t fus_argdev;
30: dev_t fus_dumpdev;
31: } fus;
32: } fun;
33: #define f_swapdev fun.fuw.fuw_swapdev
34: #define f_swapsize fun.fuw.fuw_swapsize
35: #define f_rootdev fun.fus.fus_rootdev
36: #define f_argdev fun.fus.fus_argdev
37: #define f_dumpdev fun.fus.fus_dumpdev
38: };
39:
40: /*
41: * Types.
42: */
43: #define DRIVER 1
44: #define NORMAL 2
45: #define INVISIBLE 3
46: #define PROFILING 4
47: #define SYSTEMSPEC 5
48: #define SWAPSPEC 6
1.1.1.2 ! root 49: #define FILESPT 7
1.1 root 50:
51: /*
52: * Attributes (flags).
53: */
54: #define CONFIGDEP 1
55:
56: struct idlst {
57: char *id;
58: struct idlst *id_next;
59: };
60:
61: struct device {
62: int d_type; /* CONTROLLER, DEVICE, or VBA */
63: struct device *d_conn; /* what it is connected to */
64: char *d_name; /* name of device (e.g. rk11) */
65: struct idlst *d_vec; /* interrupt vectors */
66: int d_pri; /* interrupt priority */
67: int d_addr; /* address of csr */
68: int d_unit; /* unit number */
69: int d_drive; /* drive number */
70: int d_slave; /* slave number */
71: #define QUES -1 /* -1 means '?' */
72: #define UNKNOWN -2 /* -2 means not set yet */
73: int d_dk; /* if init 1 set to number for iostat */
74: int d_flags; /* nlags for device init */
75: struct device *d_next; /* Next one in list */
76: };
77: #define TO_NEXUS (struct device *)-1
78: #define TO_VBA (struct device *)-2
79:
80: struct config {
81: char *c_dev;
82: char *s_sysname;
83: };
84:
85: /*
86: * Config has a global notion of which machine type is
87: * being used. It uses the name of the machine in choosing
88: * files and directories. Thus if the name of the machine is ``vax'',
89: * it will build from ``makefile.vax'' and use ``../vax/asm.sed''
90: * in the makerules, etc.
91: */
92: int machine;
93: char *machinename;
94: #define MACHINE_VAX 1
95: #define MACHINE_SUN 2
96: #define MACHINE_TAHOE 3
97:
98: /*
99: * For each machine, a set of CPU's may be specified as supported.
100: * These and the options (below) are put in the C flags in the makefile.
101: */
102: struct cputype {
103: char *cpu_name;
104: struct cputype *cpu_next;
105: } *cputype;
106:
107: /*
108: * A set of options may also be specified which are like CPU types,
109: * but which may also specify values for the options.
110: */
111: struct opt {
112: char *op_name;
113: char *op_value;
114: struct opt *op_next;
115: } *opt;
116:
117: char *ident;
118: char *ns();
119: char *tc();
120: char *qu();
121: char *get_word();
122: char *path();
123: char *raise();
124:
125: int do_trace;
126:
127: char *index();
128: char *rindex();
129: char *malloc();
130: char *strcpy();
131: char *strcat();
132: char *sprintf();
133:
134: int seen_vba, seen_mba, seen_uba;
135:
136: struct device *connect();
137: struct device *dtab;
138: dev_t nametodev();
139: char *devtoname();
140:
141: char errbuf[80];
142: int yyline;
143:
144: struct file_list *ftab, *conf_list, **confp;
145: char *PREFIX;
146:
147: int hz, timezone, hadtz;
148: int dst;
149: int profiling;
150:
151: int maxusers;
152:
153: #define eq(a,b) (!strcmp(a,b))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.