diff options
author | Benno Rice <benno@FreeBSD.org> | 2000-11-10 06:39:58 +0000 |
---|---|---|
committer | Benno Rice <benno@FreeBSD.org> | 2000-11-10 06:39:58 +0000 |
commit | 4cc1860f9b3e4aff5cc8b4b9b7192bc7afec9454 (patch) | |
tree | 67679a4c54c7458a53bb215f385d7a17f916ce5a /sys/boot/ofw/libofw/devicename.c | |
parent | f1fb6c2132f09c819728d6e1dd79f7f265245559 (diff) | |
download | src-4cc1860f9b3e4aff5cc8b4b9b7192bc7afec9454.tar.gz src-4cc1860f9b3e4aff5cc8b4b9b7192bc7afec9454.zip |
Notes
Diffstat (limited to 'sys/boot/ofw/libofw/devicename.c')
-rw-r--r-- | sys/boot/ofw/libofw/devicename.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/sys/boot/ofw/libofw/devicename.c b/sys/boot/ofw/libofw/devicename.c index dd3fcc08a388..ff67d6e4bee7 100644 --- a/sys/boot/ofw/libofw/devicename.c +++ b/sys/boot/ofw/libofw/devicename.c @@ -184,3 +184,44 @@ ofw_parsedev(struct ofw_devdesc **dev, const char *devspec, const char **path) free(idev); return(err); } + +char * +ofw_fmtdev(void *vdev) +{ + struct ofw_devdesc *dev = (struct ofw_devdesc *)vdev; + static char buf[128]; + char *cp; + + switch(dev->d_type) { + case DEVT_NONE: + strcpy(buf, "(no device)"); + break; + + case DEVT_DISK: + /* XXX Insert stuff here */ + sprintf(buf, "%s%d:", dev->d_dev->dv_name, + dev->d_kind.ofwdisk.unit); + break; + + case DEVT_NET: + sprintf(buf, "%s%d:", dev->d_dev->dv_name, + dev->d_kind.netif.unit); + break; + } + + return buf; +} + +int +ofw_setcurrdev(struct env_var *ev, int flags, void *value) +{ + struct ofw_devdesc *ncurr; + int rv; + + if ((rv = ofw_parsedev(&ncurr, value, NULL)) != 0) + return rv; + + free(ncurr); + env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL); + return 0; +} |