another 6 => 8 change
[unix-history] / usr / src / usr.sbin / config / config.h
CommitLineData
cd68466f 1/*
f3c08ca3
KB
2 * Copyright (c) 1980, 1993
3 * The Regents of the University of California. All rights reserved.
cd68466f 4 *
32ce521f 5 * %sccs.include.redist.c%
86f9c1e9 6 *
f3c08ca3 7 * @(#)config.h 8.1 (Berkeley) %G%
cd68466f 8 */
358ba8d4 9
12c6954d 10/*
22d68ad0 11 * Config.
12c6954d 12 */
36edb824 13#include <sys/types.h>
cc30bdab
KB
14#include <stdlib.h>
15#include <string.h>
36edb824
SL
16
17#define NODEV ((dev_t)-1)
18
358ba8d4 19struct file_list {
36edb824 20 struct file_list *f_next;
12c6954d 21 char *f_fn; /* the name */
3c812eeb
SL
22 u_char f_type; /* see below */
23 u_char f_flags; /* see below */
441ba76a 24 char *f_special; /* special make rule if present */
12c6954d 25 char *f_needs;
36edb824
SL
26 /*
27 * Random values:
28 * swap space parameters for swap areas
29 * root device, etc. for system specifications
30 */
31 union {
32 struct { /* when swap specification */
33 dev_t fuw_swapdev;
34 int fuw_swapsize;
6e5546fb 35 int fuw_swapflag;
36edb824
SL
36 } fuw;
37 struct { /* when system specification */
38 dev_t fus_rootdev;
36edb824
SL
39 dev_t fus_dumpdev;
40 } fus;
6e5546fb
MH
41 struct { /* when component dev specification */
42 dev_t fup_compdev;
43 int fup_compinfo;
44 } fup;
36edb824
SL
45 } fun;
46#define f_swapdev fun.fuw.fuw_swapdev
47#define f_swapsize fun.fuw.fuw_swapsize
6e5546fb 48#define f_swapflag fun.fuw.fuw_swapflag
36edb824 49#define f_rootdev fun.fus.fus_rootdev
36edb824 50#define f_dumpdev fun.fus.fus_dumpdev
6e5546fb
MH
51#define f_compdev fun.fup.fup_compdev
52#define f_compinfo fun.fup.fup_compinfo
358ba8d4 53};
3c812eeb
SL
54
55/*
56 * Types.
57 */
12c6954d
BJ
58#define DRIVER 1
59#define NORMAL 2
60#define INVISIBLE 3
61#define PROFILING 4
36edb824
SL
62#define SYSTEMSPEC 5
63#define SWAPSPEC 6
6e5546fb
MH
64#define COMPDEVICE 7
65#define COMPSPEC 8
358ba8d4 66
3c812eeb
SL
67/*
68 * Attributes (flags).
69 */
70#define CONFIGDEP 1
71
08f9a943 72struct idlst {
12c6954d
BJ
73 char *id;
74 struct idlst *id_next;
08f9a943
BJ
75};
76
358ba8d4 77struct device {
a0105456 78 int d_type; /* CONTROLLER, DEVICE, bus adaptor */
12c6954d
BJ
79 struct device *d_conn; /* what it is connected to */
80 char *d_name; /* name of device (e.g. rk11) */
22d68ad0 81 struct idlst *d_vec; /* interrupt vectors */
12c6954d
BJ
82 int d_pri; /* interrupt priority */
83 int d_addr; /* address of csr */
84 int d_unit; /* unit number */
85 int d_drive; /* drive number */
86 int d_slave; /* slave number */
a5e18d6b
MT
87#define QUES -1 /* -1 means '?' */
88#define UNKNOWN -2 /* -2 means not set yet */
821eeaae 89 int d_dk; /* if init 1 set to number for iostat */
f4b2fb14 90 int d_flags; /* flags for device init */
1b6c65cb
WN
91 char *d_port; /* io port base manifest constant */
92 int d_portn; /* io port base (if number not manifest) */
93 char *d_mask; /* interrupt mask */
94 int d_maddr; /* io memory base */
95 int d_msize; /* io memory size */
96 int d_drq; /* DMA request */
97 int d_irq; /* interrupt request */
12c6954d 98 struct device *d_next; /* Next one in list */
358ba8d4 99};
22d68ad0 100#define TO_NEXUS (struct device *)-1
a0105456 101#define TO_VBA (struct device *)-2
358ba8d4
MT
102
103struct config {
12c6954d
BJ
104 char *c_dev;
105 char *s_sysname;
358ba8d4
MT
106};
107
12c6954d
BJ
108/*
109 * Config has a global notion of which machine type is
110 * being used. It uses the name of the machine in choosing
111 * files and directories. Thus if the name of the machine is ``vax'',
05b83a6c 112 * it will build from ``Makefile.vax'' and use ``../vax/inline''
12c6954d
BJ
113 * in the makerules, etc.
114 */
115int machine;
116char *machinename;
117#define MACHINE_VAX 1
a0105456 118#define MACHINE_TAHOE 2
f4b2fb14 119#define MACHINE_HP300 3
1b6c65cb 120#define MACHINE_I386 4
202b4043
RC
121#define MACHINE_MIPS 5
122#define MACHINE_PMAX 6
bdd7a2d8 123#define MACHINE_LUNA68K 7
4bce7b73 124#define MACHINE_NEWS3400 8
12c6954d
BJ
125
126/*
127 * For each machine, a set of CPU's may be specified as supported.
128 * These and the options (below) are put in the C flags in the makefile.
129 */
a5e18d6b 130struct cputype {
12c6954d
BJ
131 char *cpu_name;
132 struct cputype *cpu_next;
a5e18d6b 133} *cputype;
12c6954d
BJ
134
135/*
136 * A set of options may also be specified which are like CPU types,
137 * but which may also specify values for the options.
7c1d4665 138 * A separate set of options may be defined for make-style options.
12c6954d 139 */
e809ccba 140struct opt {
12c6954d
BJ
141 char *op_name;
142 char *op_value;
22d68ad0 143 struct opt *op_next;
7c1d4665 144} *opt, *mkopt;
12c6954d 145
22d68ad0
BJ
146char *ident;
147char *ns();
148char *tc();
149char *qu();
150char *get_word();
441ba76a 151char *get_quoted_word();
22d68ad0
BJ
152char *path();
153char *raise();
154
821eeaae 155int do_trace;
12c6954d
BJ
156
157#if MACHINE_VAX
821eeaae 158int seen_mba, seen_uba;
12c6954d 159#endif
a0105456
SL
160#if MACHINE_TAHOE
161int seen_vba;
162#endif
1b6c65cb
WN
163#if MACHINE_I386
164int seen_isa;
165#endif
6e5546fb 166int seen_cd;
12c6954d
BJ
167
168struct device *connect();
169struct device *dtab;
36edb824
SL
170dev_t nametodev();
171char *devtoname();
12c6954d
BJ
172
173char errbuf[80];
174int yyline;
175
6e5546fb 176struct file_list *ftab, *conf_list, **confp, *comp_list, **compp;
12c6954d 177
4b9d1c56 178int zone, hadtz;
12c6954d 179int dst;
8b11ebd2 180int hz;
8486638c 181int profiling;
f4b2fb14 182int debugging;
12c6954d
BJ
183
184int maxusers;
185
186#define eq(a,b) (!strcmp(a,b))