|
|
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
49:
50: /*
51: * Attributes (flags).
52: */
53: #define CONFIGDEP 1
54:
55: struct idlst {
56: char *id;
57: struct idlst *id_next;
58: };
59:
60: struct device {
61: int d_type; /* CONTROLLER, DEVICE, UBA or MBA */
62: struct device *d_conn; /* what it is connected to */
63: char *d_name; /* name of device (e.g. rk11) */
64: struct idlst *d_vec; /* interrupt vectors */
65: int d_pri; /* interrupt priority */
66: int d_addr; /* address of csr */
67: int d_unit; /* unit number */
68: int d_drive; /* drive number */
69: int d_slave; /* slave number */
70: #define QUES -1 /* -1 means '?' */
71: #define UNKNOWN -2 /* -2 means not set yet */
72: int d_dk; /* if init 1 set to number for iostat */
73: int d_flags; /* nlags for device init */
74: struct device *d_next; /* Next one in list */
75: };
76: #define TO_NEXUS (struct device *)-1
77:
78: struct config {
79: char *c_dev;
80: char *s_sysname;
81: };
82:
83: /*
84: * Config has a global notion of which machine type is
85: * being used. It uses the name of the machine in choosing
86: * files and directories. Thus if the name of the machine is ``vax'',
87: * it will build from ``makefile.vax'' and use ``../vax/asm.sed''
88: * in the makerules, etc.
89: */
90: int machine;
91: char *machinename;
92: #define MACHINE_VAX 1
93: #define MACHINE_SUN 2
94:
95: /*
96: * For each machine, a set of CPU's may be specified as supported.
97: * These and the options (below) are put in the C flags in the makefile.
98: */
99: struct cputype {
100: char *cpu_name;
101: struct cputype *cpu_next;
102: } *cputype;
103:
104: /*
105: * A set of options may also be specified which are like CPU types,
106: * but which may also specify values for the options.
107: */
108: struct opt {
109: char *op_name;
110: char *op_value;
111: struct opt *op_next;
112: } *opt;
113:
114: char *ident;
115: char *ns();
116: char *tc();
117: char *qu();
118: char *get_word();
119: char *path();
120: char *raise();
121:
122: int do_trace;
123:
124: char *index();
125: char *rindex();
126: char *malloc();
127: char *strcpy();
128: char *strcat();
129: char *sprintf();
130:
131: #if MACHINE_VAX
132: int seen_mba, seen_uba;
133: #endif
134:
135: struct device *connect();
136: struct device *dtab;
137: dev_t nametodev();
138: char *devtoname();
139:
140: char errbuf[80];
141: int yyline;
142:
143: struct file_list *ftab, *conf_list, **confp;
144: char *PREFIX;
145:
146: int timezone, hadtz;
147: int dst;
148: int profiling;
149:
150: int maxusers;
151:
152: #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.