From 8f5a6de0b62bf1be534914ddf0b7c32f5b2f1e19 Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 19 Jan 2001 12:49:21 +0000 Subject: 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. --- usr.sbin/config/config.y | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'usr.sbin/config/config.y') diff --git a/usr.sbin/config/config.y b/usr.sbin/config/config.y index 4c9a448..0354527 100644 --- a/usr.sbin/config/config.y +++ b/usr.sbin/config/config.y @@ -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; -- cgit v1.1