allow limited 8-bit support; allow [TCP] as an alias for [IPC], even
[unix-history] / usr / src / usr.sbin / config / config.h
CommitLineData
cd68466f
DF
1/*
2 * Copyright (c) 1980 Regents of the University of California.
86f9c1e9 3 * All rights reserved.
cd68466f 4 *
32ce521f 5 * %sccs.include.redist.c%
86f9c1e9 6 *
202b4043 7 * @(#)config.h 5.15 (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;
35 } fuw;
36 struct { /* when system specification */
37 dev_t fus_rootdev;
36edb824
SL
38 dev_t fus_dumpdev;
39 } fus;
40 } fun;
41#define f_swapdev fun.fuw.fuw_swapdev
42#define f_swapsize fun.fuw.fuw_swapsize
43#define f_rootdev fun.fus.fus_rootdev
36edb824 44#define f_dumpdev fun.fus.fus_dumpdev
358ba8d4 45};
3c812eeb
SL
46
47/*
48 * Types.
49 */
12c6954d
BJ
50#define DRIVER 1
51#define NORMAL 2
52#define INVISIBLE 3
53#define PROFILING 4
36edb824
SL
54#define SYSTEMSPEC 5
55#define SWAPSPEC 6
358ba8d4 56
3c812eeb
SL
57/*
58 * Attributes (flags).
59 */
60#define CONFIGDEP 1
61
08f9a943 62struct idlst {
12c6954d
BJ
63 char *id;
64 struct idlst *id_next;
08f9a943
BJ
65};
66
358ba8d4 67struct device {
a0105456 68 int d_type; /* CONTROLLER, DEVICE, bus adaptor */
12c6954d
BJ
69 struct device *d_conn; /* what it is connected to */
70 char *d_name; /* name of device (e.g. rk11) */
22d68ad0 71 struct idlst *d_vec; /* interrupt vectors */
12c6954d
BJ
72 int d_pri; /* interrupt priority */
73 int d_addr; /* address of csr */
74 int d_unit; /* unit number */
75 int d_drive; /* drive number */
76 int d_slave; /* slave number */
a5e18d6b
MT
77#define QUES -1 /* -1 means '?' */
78#define UNKNOWN -2 /* -2 means not set yet */
821eeaae 79 int d_dk; /* if init 1 set to number for iostat */
f4b2fb14 80 int d_flags; /* flags for device init */
1b6c65cb
WN
81 char *d_port; /* io port base manifest constant */
82 int d_portn; /* io port base (if number not manifest) */
83 char *d_mask; /* interrupt mask */
84 int d_maddr; /* io memory base */
85 int d_msize; /* io memory size */
86 int d_drq; /* DMA request */
87 int d_irq; /* interrupt request */
12c6954d 88 struct device *d_next; /* Next one in list */
358ba8d4 89};
22d68ad0 90#define TO_NEXUS (struct device *)-1
a0105456 91#define TO_VBA (struct device *)-2
358ba8d4
MT
92
93struct config {
12c6954d
BJ
94 char *c_dev;
95 char *s_sysname;
358ba8d4
MT
96};
97
12c6954d
BJ
98/*
99 * Config has a global notion of which machine type is
100 * being used. It uses the name of the machine in choosing
101 * files and directories. Thus if the name of the machine is ``vax'',
05b83a6c 102 * it will build from ``Makefile.vax'' and use ``../vax/inline''
12c6954d
BJ
103 * in the makerules, etc.
104 */
105int machine;
106char *machinename;
107#define MACHINE_VAX 1
a0105456 108#define MACHINE_TAHOE 2
f4b2fb14 109#define MACHINE_HP300 3
1b6c65cb 110#define MACHINE_I386 4
202b4043
RC
111#define MACHINE_MIPS 5
112#define MACHINE_PMAX 6
12c6954d
BJ
113
114/*
115 * For each machine, a set of CPU's may be specified as supported.
116 * These and the options (below) are put in the C flags in the makefile.
117 */
a5e18d6b 118struct cputype {
12c6954d
BJ
119 char *cpu_name;
120 struct cputype *cpu_next;
a5e18d6b 121} *cputype;
12c6954d
BJ
122
123/*
124 * A set of options may also be specified which are like CPU types,
125 * but which may also specify values for the options.
7c1d4665 126 * A separate set of options may be defined for make-style options.
12c6954d 127 */
e809ccba 128struct opt {
12c6954d
BJ
129 char *op_name;
130 char *op_value;
22d68ad0 131 struct opt *op_next;
7c1d4665 132} *opt, *mkopt;
12c6954d 133
22d68ad0
BJ
134char *ident;
135char *ns();
136char *tc();
137char *qu();
138char *get_word();
441ba76a 139char *get_quoted_word();
22d68ad0
BJ
140char *path();
141char *raise();
142
821eeaae 143int do_trace;
12c6954d
BJ
144
145#if MACHINE_VAX
821eeaae 146int seen_mba, seen_uba;
12c6954d 147#endif
a0105456
SL
148#if MACHINE_TAHOE
149int seen_vba;
150#endif
1b6c65cb
WN
151#if MACHINE_I386
152int seen_isa;
153#endif
12c6954d
BJ
154
155struct device *connect();
156struct device *dtab;
36edb824
SL
157dev_t nametodev();
158char *devtoname();
12c6954d
BJ
159
160char errbuf[80];
161int yyline;
162
36edb824 163struct file_list *ftab, *conf_list, **confp;
12c6954d 164
4b9d1c56 165int zone, hadtz;
12c6954d 166int dst;
8486638c 167int profiling;
f4b2fb14 168int debugging;
12c6954d
BJ
169
170int maxusers;
171
172#define eq(a,b) (!strcmp(a,b))