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