Implement option strings that we can use in #ifdefs (where unavoidable)

as a replacement for the evil #define NFOO.  If 'device npx' is in the
static kernel, a synthetic option '#define DEV_NPX 1' will be available
to stick in an opt_xxx.h file.  "#if NNPX > 0" can be replaced with
"#ifdef DEV_NPX" and we can get rid of the overloaded meaning of the
device count mechanism.
This commit is contained in:
Peter Wemm 2001-01-19 12:49:21 +00:00
parent bb9dcfee8e
commit 10ca19cf93
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=71251
3 changed files with 27 additions and 2 deletions

View File

@ -86,6 +86,15 @@ int maxusers;
static void yyerror(char *s);
static char *
devopt(char *dev)
{
char *ret = malloc(strlen(dev) + 5);
sprintf(ret, "DEV_%s", dev);
raisestr(ret);
return ret;
}
%}
%%
@ -260,12 +269,28 @@ Dev:
Device_spec:
DEVICE Dev
= {
struct opt *op = (struct opt *)malloc(sizeof (struct opt));
memset(op, 0, sizeof(*op));
op->op_name = devopt($2);
op->op_next = opt;
op->op_value = ns("1");
op->op_line = yyline;
opt = op;
/* and the device part */
cur.d_type = DEVICE;
cur.d_name = $2;
cur.d_count = UNKNOWN;
} |
DEVICE Dev NUMBER
= {
struct opt *op = (struct opt *)malloc(sizeof (struct opt));
memset(op, 0, sizeof(*op));
op->op_name = devopt($2);
op->op_next = opt;
op->op_value = ns("1");
op->op_line = yyline;
opt = op;
/* and the device part */
cur.d_type = DEVICE;
cur.d_name = $2;
cur.d_count = $3;

View File

@ -8,4 +8,4 @@
*
* $FreeBSD$
*/
#define CONFIGVERS 500005
#define CONFIGVERS 500006

View File

@ -115,7 +115,7 @@ options(void)
for (ol = otab; ol != 0; ol = ol->o_next)
do_option(ol->o_name);
for (op = opt; op; op = op->op_next) {
if (!op->op_ownfile) {
if (!op->op_ownfile && strncmp(op->op_name, "DEV_", 4)) {
printf("%s:%d: unknown option \"%s\"\n",
PREFIX, op->op_line, op->op_name);
exit(1);