Module Name: src
Committed By: joerg
Date: Fri Apr 3 19:53:41 UTC 2020
Modified Files:
src/usr.bin/config: defs.h main.c scan.l
Log Message:
Avoid depending on common symbols.
To generate a diff of this commit:
cvs rdiff -u -r1.105 -r1.106 src/usr.bin/config/defs.h
cvs rdiff -u -r1.99 -r1.100 src/usr.bin/config/main.c
cvs rdiff -u -r1.31 -r1.32 src/usr.bin/config/scan.l
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/config/defs.h
diff -u src/usr.bin/config/defs.h:1.105 src/usr.bin/config/defs.h:1.106
--- src/usr.bin/config/defs.h:1.105 Sat Mar 7 19:26:13 2020
+++ src/usr.bin/config/defs.h Fri Apr 3 19:53:41 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: defs.h,v 1.105 2020/03/07 19:26:13 christos Exp $ */
+/* $NetBSD: defs.h,v 1.106 2020/04/03 19:53:41 joerg Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -437,80 +437,88 @@ struct devm {
*/
struct hashtab;
-int lkmmode;
-const char *conffile; /* source file, e.g., "GENERIC.sparc" */
-const char *machine; /* machine type, e.g., "sparc" or "sun3" */
-const char *machinearch; /* machine arch, e.g., "sparc" or "m68k" */
-struct nvlist *machinesubarches;
+extern int lkmmode;
+extern const char *conffile; /* source file, e.g., "GENERIC.sparc" */
+extern const char *machine; /* machine type, e.g., "sparc" or "sun3" */
+extern const char *machinearch; /* machine arch, e.g., "sparc" or "m68k" */
+extern struct nvlist *machinesubarches;
/* machine subarches, e.g., "sun68k" or "hpc" */
-const char *ioconfname; /* ioconf name, mutually exclusive to machine */
-const char *srcdir; /* path to source directory (rel. to build) */
-const char *builddir; /* path to build directory */
-const char *defbuilddir; /* default build directory */
-const char *ident; /* kernel "ident"ification string */
-int errors; /* counts calls to error() */
-int minmaxusers; /* minimum "maxusers" parameter */
-int defmaxusers; /* default "maxusers" parameter */
-int maxmaxusers; /* default "maxusers" parameter */
-int maxusers; /* configuration's "maxusers" parameter */
-int maxpartitions; /* configuration's "maxpartitions" parameter */
-int version; /* version of the configuration file */
-struct nvlist *options; /* options */
-struct nvlist *fsoptions; /* filesystems */
-struct nvlist *mkoptions; /* makeoptions */
-struct nvlist *appmkoptions; /* appending mkoptions */
-struct nvlist *condmkoptions; /* conditional makeoption table */
-struct hashtab *devbasetab; /* devbase lookup */
-struct hashtab *devroottab; /* attach at root lookup */
-struct hashtab *devatab; /* devbase attachment lookup */
-struct hashtab *devitab; /* device instance lookup */
-struct hashtab *deaddevitab; /* removed instances lookup */
-struct hashtab *selecttab; /* selects things that are "optional foo" */
-struct hashtab *needcnttab; /* retains names marked "needs-count" */
-struct hashtab *opttab; /* table of configured options */
-struct hashtab *fsopttab; /* table of configured file systems */
-struct dlhash *defopttab; /* options that have been "defopt"'d */
-struct dlhash *defflagtab; /* options that have been "defflag"'d */
-struct dlhash *defparamtab; /* options that have been "defparam"'d */
-struct dlhash *defoptlint; /* lint values for options */
-struct nvhash *deffstab; /* defined file systems */
-struct dlhash *optfiletab; /* "defopt"'d option .h files */
-struct hashtab *attrtab; /* attributes (locators, etc.) */
-struct hashtab *attrdeptab; /* attribute dependencies */
-struct hashtab *bdevmtab; /* block devm lookup */
-struct hashtab *cdevmtab; /* character devm lookup */
-
-TAILQ_HEAD(, devbase) allbases; /* list of all devbase structures */
-TAILQ_HEAD(, deva) alldevas; /* list of all devbase attachments */
-TAILQ_HEAD(conftq, config) allcf; /* list of configured kernels */
-TAILQ_HEAD(, devi) alldevi, /* list of all instances */
- allpseudo; /* list of all pseudo-devices */
-TAILQ_HEAD(, devm) alldevms; /* list of all device-majors */
-TAILQ_HEAD(, pspec) allpspecs; /* list of all parent specs */
-int ndevi; /* number of devi's (before packing) */
-int npspecs; /* number of parent specs */
-devmajor_t maxbdevm; /* max number of block major */
-devmajor_t maxcdevm; /* max number of character major */
-int do_devsw; /* 0 if pre-devsw config */
-int oktopackage; /* 0 before setmachine() */
-int devilevel; /* used for devi->i_level */
-
-struct filelist allfiles; /* list of all kernel source files */
-struct filelist allcfiles; /* list of all .c files */
-struct filelist allsfiles; /* list of all .S files */
-struct filelist allofiles; /* list of all .o files */
-
-struct prefixlist prefixes, /* prefix stack */
- allprefixes; /* all prefixes used (after popped) */
-struct prefixlist buildprefixes, /* build prefix stack */
- allbuildprefixes;/* all build prefixes used (after popped) */
-SLIST_HEAD(, prefix) curdirs; /* curdir stack */
+extern const char *ioconfname; /* ioconf name, mutually exclusive to machine */
+extern const char *srcdir; /* path to source directory (rel. to build) */
+extern const char *builddir; /* path to build directory */
+extern const char *defbuilddir; /* default build directory */
+extern const char *ident; /* kernel "ident"ification string */
+extern int errors; /* counts calls to error() */
+extern int minmaxusers; /* minimum "maxusers" parameter */
+extern int defmaxusers; /* default "maxusers" parameter */
+extern int maxmaxusers; /* default "maxusers" parameter */
+extern int maxusers; /* configuration's "maxusers" parameter */
+extern int maxpartitions; /* configuration's "maxpartitions" parameter */
+extern int version; /* version of the configuration file */
+extern struct nvlist *options; /* options */
+extern struct nvlist *fsoptions; /* filesystems */
+extern struct nvlist *mkoptions; /* makeoptions */
+extern struct nvlist *appmkoptions; /* appending mkoptions */
+extern struct nvlist *condmkoptions; /* conditional makeoption table */
+extern struct hashtab *devbasetab; /* devbase lookup */
+extern struct hashtab *devroottab; /* attach at root lookup */
+extern struct hashtab *devatab; /* devbase attachment lookup */
+extern struct hashtab *devitab; /* device instance lookup */
+extern struct hashtab *deaddevitab; /* removed instances lookup */
+extern struct hashtab *selecttab; /* selects things that are "optional foo" */
+extern struct hashtab *needcnttab; /* retains names marked "needs-count" */
+extern struct hashtab *opttab; /* table of configured options */
+extern struct hashtab *fsopttab; /* table of configured file systems */
+extern struct dlhash *defopttab; /* options that have been "defopt"'d */
+extern struct dlhash *defflagtab; /* options that have been "defflag"'d */
+extern struct dlhash *defparamtab; /* options that have been "defparam"'d */
+extern struct dlhash *defoptlint; /* lint values for options */
+extern struct nvhash *deffstab; /* defined file systems */
+extern struct dlhash *optfiletab; /* "defopt"'d option .h files */
+extern struct hashtab *attrtab; /* attributes (locators, etc.) */
+extern struct hashtab *attrdeptab; /* attribute dependencies */
+extern struct hashtab *bdevmtab; /* block devm lookup */
+extern struct hashtab *cdevmtab; /* character devm lookup */
+
+TAILQ_HEAD(devbasetq, devbase);
+TAILQ_HEAD(devatq, deva);
+TAILQ_HEAD(conftq, config);
+TAILQ_HEAD(devitq, devi);
+TAILQ_HEAD(devmtq, devm);
+TAILQ_HEAD(pspectq, pspec);
+
+extern struct devbasetq allbases; /* list of all devbase structures */
+extern struct devatq alldevas; /* list of all devbase attachments */
+extern struct conftq allcf; /* list of configured kernels */
+extern struct devitq alldevi, /* list of all instances */
+ allpseudo; /* list of all pseudo-devices */
+extern struct devmtq alldevms; /* list of all device-majors */
+extern struct pspectq allpspecs; /* list of all parent specs */
+extern int ndevi; /* number of devi's (before packing) */
+extern int npspecs; /* number of parent specs */
+extern devmajor_t maxbdevm; /* max number of block major */
+extern devmajor_t maxcdevm; /* max number of character major */
+extern int do_devsw; /* 0 if pre-devsw config */
+extern int oktopackage; /* 0 before setmachine() */
+extern int devilevel; /* used for devi->i_level */
+
+extern struct filelist allfiles; /* list of all kernel source files */
+extern struct filelist allcfiles; /* list of all .c files */
+extern struct filelist allsfiles; /* list of all .S files */
+extern struct filelist allofiles; /* list of all .o files */
+
+extern struct prefixlist prefixes, /* prefix stack */
+ allprefixes; /* all prefixes used
+ * (after popped) */
+extern struct prefixlist buildprefixes, /* build prefix stack */
+ allbuildprefixes;/* all build prefixes used
+ * (after popped) */
extern struct attr allattr;
-struct devi **packed; /* arrayified table for packed devi's */
-size_t npacked; /* size of packed table, <= ndevi */
+extern struct devi **packed; /* arrayified table for packed devi's */
+extern size_t npacked; /* size of packed table, <= ndevi */
-struct { /* loc[] table for config */
+extern struct locators { /* loc[] table for config */
const char **vec;
int used;
} locators;
Index: src/usr.bin/config/main.c
diff -u src/usr.bin/config/main.c:1.99 src/usr.bin/config/main.c:1.100
--- src/usr.bin/config/main.c:1.99 Sat Mar 7 19:26:13 2020
+++ src/usr.bin/config/main.c Fri Apr 3 19:53:41 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.99 2020/03/07 19:26:13 christos Exp $ */
+/* $NetBSD: main.c,v 1.100 2020/04/03 19:53:41 joerg Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -45,7 +45,7 @@
#endif
#include <sys/cdefs.h>
-__RCSID("$NetBSD: main.c,v 1.99 2020/03/07 19:26:13 christos Exp $");
+__RCSID("$NetBSD: main.c,v 1.100 2020/04/03 19:53:41 joerg Exp $");
#ifndef MAKE_BOOTSTRAP
#include <sys/cdefs.h>
@@ -86,6 +86,78 @@ COPYRIGHT("@(#) Copyright (c) 1992, 1993
#define LINE_MAX 1024
#endif
+struct devbasetq allbases;
+struct devatq alldevas;
+struct conftq allcf;
+struct devitq alldevi, allpseudo;
+struct devmtq alldevms;
+struct pspectq allpspecs;
+
+struct devi **packed;
+size_t npacked;
+
+struct locators locators;
+
+int lkmmode;
+const char *conffile; /* source file, e.g., "GENERIC.sparc" */
+const char *machine; /* machine type, e.g., "sparc" or "sun3" */
+const char *machinearch; /* machine arch, e.g., "sparc" or "m68k" */
+struct nvlist *machinesubarches;
+ /* machine subarches, e.g., "sun68k" or "hpc" */
+const char *ioconfname; /* ioconf name, mutually exclusive to machine */
+const char *srcdir; /* path to source directory (rel. to build) */
+const char *builddir; /* path to build directory */
+const char *defbuilddir; /* default build directory */
+const char *ident; /* kernel "ident"ification string */
+int errors; /* counts calls to error() */
+int minmaxusers; /* minimum "maxusers" parameter */
+int defmaxusers; /* default "maxusers" parameter */
+int maxmaxusers; /* default "maxusers" parameter */
+int maxusers; /* configuration's "maxusers" parameter */
+int maxpartitions; /* configuration's "maxpartitions" parameter */
+int version; /* version of the configuration file */
+struct nvlist *options; /* options */
+struct nvlist *fsoptions; /* filesystems */
+struct nvlist *mkoptions; /* makeoptions */
+struct nvlist *appmkoptions; /* appending mkoptions */
+struct nvlist *condmkoptions; /* conditional makeoption table */
+struct hashtab *devbasetab; /* devbase lookup */
+struct hashtab *devroottab; /* attach at root lookup */
+struct hashtab *devatab; /* devbase attachment lookup */
+struct hashtab *deaddevitab; /* removed instances lookup */
+struct hashtab *selecttab; /* selects things that are "optional foo" */
+struct hashtab *needcnttab; /* retains names marked "needs-count" */
+struct hashtab *opttab; /* table of configured options */
+struct hashtab *fsopttab; /* table of configured file systems */
+struct dlhash *defopttab; /* options that have been "defopt"'d */
+struct dlhash *defflagtab; /* options that have been "defflag"'d */
+struct dlhash *defparamtab; /* options that have been "defparam"'d */
+struct dlhash *defoptlint; /* lint values for options */
+struct nvhash *deffstab; /* defined file systems */
+struct dlhash *optfiletab; /* "defopt"'d option .h files */
+struct hashtab *attrtab; /* attributes (locators, etc.) */
+struct hashtab *attrdeptab; /* attribute dependencies */
+struct hashtab *bdevmtab; /* block devm lookup */
+struct hashtab *cdevmtab; /* character devm lookup */
+
+int ndevi; /* number of devi's (before packing) */
+int npspecs; /* number of parent specs */
+devmajor_t maxbdevm; /* max number of block major */
+devmajor_t maxcdevm; /* max number of character major */
+int do_devsw; /* 0 if pre-devsw config */
+int oktopackage; /* 0 before setmachine() */
+int devilevel; /* used for devi->i_level */
+
+struct filelist allfiles; /* list of all kernel source files */
+struct filelist allcfiles; /* list of all .c files */
+struct filelist allsfiles; /* list of all .S files */
+struct filelist allofiles; /* list of all .o files */
+
+struct prefixlist prefixes, /* prefix stack */
+ allprefixes; /* all prefixes used (after popped) */
+struct prefixlist buildprefixes, /* build prefix stack */
+ allbuildprefixes;/* all build prefixes used (after popped) */
+
int vflag; /* verbose output */
int Pflag; /* pack locators */
int Lflag; /* lint config generation */
Index: src/usr.bin/config/scan.l
diff -u src/usr.bin/config/scan.l:1.31 src/usr.bin/config/scan.l:1.32
--- src/usr.bin/config/scan.l:1.31 Mon Mar 9 17:27:03 2020
+++ src/usr.bin/config/scan.l Fri Apr 3 19:53:41 2020
@@ -1,5 +1,5 @@
%{
-/* $NetBSD: scan.l,v 1.31 2020/03/09 17:27:03 christos Exp $ */
+/* $NetBSD: scan.l,v 1.32 2020/04/03 19:53:41 joerg Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: scan.l,v 1.31 2020/03/09 17:27:03 christos Exp $");
+__RCSID("$NetBSD: scan.l,v 1.32 2020/04/03 19:53:41 joerg Exp $");
#include <sys/param.h>
#include <errno.h>
@@ -117,6 +117,7 @@ static int endinclude(void);
static int getincludepath(void);
static int getcurifdef(void);
+SLIST_HEAD(, prefix) curdirs; /* curdir stack */
%}