aboutsummaryrefslogtreecommitdiff
path: root/sys/boot/ofw/libofw/devicename.c
diff options
context:
space:
mode:
authorBenno Rice <benno@FreeBSD.org>2000-11-10 06:39:58 +0000
committerBenno Rice <benno@FreeBSD.org>2000-11-10 06:39:58 +0000
commit4cc1860f9b3e4aff5cc8b4b9b7192bc7afec9454 (patch)
tree67679a4c54c7458a53bb215f385d7a17f916ce5a /sys/boot/ofw/libofw/devicename.c
parentf1fb6c2132f09c819728d6e1dd79f7f265245559 (diff)
downloadsrc-4cc1860f9b3e4aff5cc8b4b9b7192bc7afec9454.tar.gz
src-4cc1860f9b3e4aff5cc8b4b9b7192bc7afec9454.zip
Notes
Diffstat (limited to 'sys/boot/ofw/libofw/devicename.c')
-rw-r--r--sys/boot/ofw/libofw/devicename.c41
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;
+}