diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-12-19 02:37:40 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-12-19 02:37:40 +0100 |
commit | 9df9a3625ced6ec4f8c2f159903e4d0309bedb12 (patch) | |
tree | a17e0581c2e9bbfc038dbc967df257a9af0a1e13 /sys/src/9/port/sdaoe.c | |
parent | 2d06aac2abbd22757b6aa33b4fdc0c9ead4b7d50 (diff) |
sdaoe: allow aoedev= shorthand for id!lun -> id!#æ/aoe/lun
we cannot type æ character in the bootloader console, so allow
the shorthand syntax id!lun which gets translated to id!#æ/aoe/lun.
Diffstat (limited to 'sys/src/9/port/sdaoe.c')
-rw-r--r-- | sys/src/9/port/sdaoe.c | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/sys/src/9/port/sdaoe.c b/sys/src/9/port/sdaoe.c index 90259705d..7c3c7bf67 100644 --- a/sys/src/9/port/sdaoe.c +++ b/sys/src/9/port/sdaoe.c @@ -249,19 +249,6 @@ static char *probef[32]; static char *probebuf; static int nprobe; -static int -pnpprobeid(char *s) -{ - int id; - - if(strlen(s) < 2) - return 0; - id = 'e'; - if(s[1] == '!') - id = s[0]; - return id; -} - static SDev* aoepnp(void) { @@ -275,9 +262,26 @@ aoepnp(void) nprobe = tokenize(probebuf, probef, nelem(probef)); h = t = 0; for(i = 0; i < nprobe; i++){ - id = pnpprobeid(probef[i]); - if(id == 0) + p = probef[i]; + if(strlen(p) < 2) continue; + id = 'e'; + if(p[1] == '!'){ + id = p[0]; + p += 2; + } + /* + * shorthand for: id!lun -> id!#æ/aoe/lun + * because we cannot type æ in the bootloader console. + */ + if(strchr(p, '/') == nil){ + char tmp[64]; + + snprint(tmp, sizeof(tmp), "%c!#æ/aoe/%s", (char)id, p); + + probef[i] = nil; + kstrdup(&probef[i], tmp); + } s = malloc(sizeof *s); if(s == nil) break; |