kernel - Augment resource_string_value() to check kenv.
authorMatthew Dillon <dillon@apollo.backplane.com>
Sat, 17 Jan 2015 01:58:21 +0000 (17:58 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sat, 17 Jan 2015 01:58:21 +0000 (17:58 -0800)
* resource_string_value() now checks for a kenv hint called
  <devname><unit>.<resourcename>, similar to how resource_int_value()
  and resource_long_value() work.

sys/kern/subr_bus.c

index 3a64b1d..79a3b62 100644 (file)
@@ -2124,6 +2124,14 @@ resource_string_value(const char *name, int unit, const char *resname,
 {
        int error;
        struct config_resource *res;
+       char buf[64];
+       const char *env;
+
+       ksnprintf(buf, sizeof(buf), "%s%d.%s", name, unit, resname);
+       if ((env = kgetenv(buf)) != NULL) {
+               *result = env;
+               return 0;
+       }
 
        if ((error = resource_find(name, unit, resname, &res)) != 0)
                return(error);