Changeset View
Changeset View
Standalone View
Standalone View
stand/mips/beri/loader/devicename.c
Show First 20 Lines • Show All 133 Lines • ▼ Show 20 Lines | goto fail; | ||||
goto fail; | goto fail; | ||||
} | } | ||||
if (*cp && (*cp != ':')) { | if (*cp && (*cp != ':')) { | ||||
err = EINVAL; | err = EINVAL; | ||||
goto fail; | goto fail; | ||||
} | } | ||||
idev->d_unit = unit; | idev->dd.d_unit = unit; | ||||
if (path != NULL) | if (path != NULL) | ||||
*path = (*cp == 0) ? cp : cp + 1; | *path = (*cp == 0) ? cp : cp + 1; | ||||
break; | break; | ||||
default: | default: | ||||
err = EINVAL; | err = EINVAL; | ||||
goto fail; | goto fail; | ||||
} | } | ||||
idev->d_dev = dv; | idev->dd.d_dev = dv; | ||||
idev->d_type = dv->dv_type; | |||||
if (dev == NULL) { | if (dev == NULL) { | ||||
free(idev); | free(idev); | ||||
} else { | } else { | ||||
*dev = idev; | *dev = idev; | ||||
} | } | ||||
return(0); | return(0); | ||||
fail: | fail: | ||||
free(idev); | free(idev); | ||||
return(err); | return(err); | ||||
} | } | ||||
char * | char * | ||||
beri_arch_fmtdev(void *vdev) | beri_arch_fmtdev(void *vdev) | ||||
{ | { | ||||
struct disk_devdesc *dev = (struct disk_devdesc *)vdev; | struct disk_devdesc *dev = (struct disk_devdesc *)vdev; | ||||
static char buf[128]; /* XXX device length constant? */ | static char buf[128]; /* XXX device length constant? */ | ||||
switch(dev->d_type) { | switch(dev->dd.d_dev->dv_type) { | ||||
case DEVT_NONE: | case DEVT_NONE: | ||||
strcpy(buf, "(no device)"); | strcpy(buf, "(no device)"); | ||||
break; | break; | ||||
case DEVT_CD: | case DEVT_CD: | ||||
sprintf(buf, "%s%d:", dev->d_dev->dv_name, dev->d_unit); | sprintf(buf, "%s%d:", dev->dd.d_dev->dv_name, dev->dd.d_unit); | ||||
break; | break; | ||||
case DEVT_DISK: | case DEVT_DISK: | ||||
return (disk_fmtdev(vdev)); | return (disk_fmtdev(vdev)); | ||||
case DEVT_NET: | case DEVT_NET: | ||||
case DEVT_ZFS: | case DEVT_ZFS: | ||||
sprintf(buf, "%s%d:", dev->d_dev->dv_name, dev->d_unit); | sprintf(buf, "%s%d:", dev->dd.d_dev->dv_name, dev->dd.d_unit); | ||||
break; | break; | ||||
} | } | ||||
return(buf); | return(buf); | ||||
} | } | ||||
/* | /* | ||||
* Set currdev to suit the value being supplied in (value) | * Set currdev to suit the value being supplied in (value) | ||||
Show All 13 Lines |