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.
This commit is contained in:
cinap_lenrek 2014-12-19 02:37:40 +01:00
parent 2d06aac2ab
commit 9df9a3625c
2 changed files with 20 additions and 16 deletions

View file

@ -68,7 +68,7 @@ over Ethernet interfaces 0 and 1,
.IP
.EX
aoeif=ether0 ether1
aoedev=e!#æ/aoe/42.0
aoedev=e!42.0
.EE
.SH SOURCE
.B /sys/src/9/port/sdaoe.c

View file

@ -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;