|
|
1.1 root 1: /*
2: * config.h 1.5 81/05/22
3: * Definitions that everybody needs to know
4: */
5: #include <sys/types.h>
6:
7: #define eq(a,b) (strcmp(a,b) == 0)
8: #define TRUE 1
9: #define FALSE 0
10: #define DRIVER 1
11: #define NORMAL 2
12: #define INVISIBLE 3
13:
14: #define TO_NEXUS (struct device *)-1
15:
16: #define STREAM_DEVICE 1
17: #define BLOCK_DEVICE 2
18: #define CHAR_DEVICE 3
19: #define LINE_DISC 4
20: #define FILE_SYS 5
21: #define NDEVTYPE 5
22:
23: struct file_list {
24: char *f_fn;
25: int f_type;
26: struct file_list *f_next;
27: char *f_needs;
28: };
29:
30: struct dev_list {
31: char *dev_name;
32: int dev_standard;
33: int dev_type;
34: int dev_num;
35: long dev_mask;
36: char *dev_if;
37: char *dev_prefix;
38: struct dev_list *dev_next;
39: };
40:
41: struct idlst {
42: char *id;
43: struct idlst *id_next;
44: int vec;
45: };
46:
47: struct litlst {
48: char *line;
49: struct litlst *lit_next;
50: };
51:
52: typedef char bool;
53:
54: struct device {
55: int d_type; /* CONTROLLER, DEVICE, UBA or MBA */
56: struct device *d_conn; /* What it is connected to */
57: char *d_name; /* Name of device (e.g. rk11) */
58: struct idlst *d_vec; /* interrupt vectors */
59: int d_pri; /* interrupt priority */
60: int d_addr; /* Address of csr */
61: int d_unit; /* Unit number */
62: int d_drive; /* Drive number */
63: int d_slave; /* Slave number */
64: #define QUES -1 /* -1 means '?' */
65: #define UNKNOWN -2 /* -2 means not set yet */
66: bool d_dk; /* if init 1 set to number for iostat */
67: int d_flags; /* Flags for device init */
68: int d_count; /* # for pseudo devs */
69: struct device *d_next; /* Next one in list */
70: u_short d_mach; /* Sun - machine type (0 = all)*/
71: u_short d_bus; /* Sun - bus type (0 = unknown) */
72: };
73:
74: struct config {
75: char *c_dev;
76: char *s_sysname;
77: };
78:
79: /*
80: * Config has a global notion of which machine type is
81: * being used. It uses the name of the machine in choosing
82: * files and directories. Thus if the name of the machine is ``vax'',
83: * it will build from ``makefile.vax'' and use ``../vax/asm.sed''
84: * in the makerules, etc.
85: */
86: int machine;
87: char *machinename;
88: #define MACHINE_VAX 1
89: #define MACHINE_SUN2 2
90: #define MACHINE_SUN3 3
91:
92: struct cputype {
93: char *cpu_name;
94: struct cputype *cpu_next;
95: } *cputype;
96: struct opt {
97: char *op_name;
98: struct opt *op_next;
99: } *opt;
100: char *ident, *mkfile, *ns(), *malloc(), *tc(), *qu();
101: bool do_trace, seen_mba, seen_uba;
102: struct device *connect();
103: struct device *dtab;
104: char errbuf[80];
105: int yyline;
106: struct file_list *ftab, *conf_list, *confp;
107: int hz, timezone, hadtz, maxusers, dst;
108: struct dev_list *devtab;
109: struct litlst *littab;
110: int max_num[NDEVTYPE+1];
111:
112: #define WEOF (char *)EOF
113: char *get_word();
114:
115: #define GLOBAL(file) gpath(file) /* file for all systems */
116: #define LOCAL(file) file /* file for just our system */
117: char *gpath();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.