Add convient functions for the bus interface: child_present,
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Sat, 13 Mar 2004 14:38:22 +0000 (14:38 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Sat, 13 Mar 2004 14:38:22 +0000 (14:38 +0000)
child_pnpinfo_str, child_location_str.

From FreeBSD.

sys/kern/subr_bus.c
sys/sys/bus.h

index d0dfc0c..f850682 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/kern/subr_bus.c,v 1.54.2.9 2002/10/10 15:13:32 jhb Exp $
- * $DragonFly: src/sys/kern/subr_bus.c,v 1.13 2004/03/01 16:57:44 joerg Exp $
+ * $DragonFly: src/sys/kern/subr_bus.c,v 1.14 2004/03/13 14:38:22 joerg Exp $
  */
 
 #include "opt_bus.h"
@@ -2156,6 +2156,38 @@ bus_delete_resource(device_t dev, int type, int rid)
        BUS_DELETE_RESOURCE(device_get_parent(dev), dev, type, rid);
 }
 
+int
+bus_child_present(device_t child)
+{
+       return (BUS_CHILD_PRESENT(device_get_parent(child), child));
+}
+
+int
+bus_child_pnpinfo_str(device_t child, char *buf, size_t buflen)
+{
+       device_t parent;
+
+       parent = device_get_parent(child);
+       if (parent == NULL) {
+               *buf = '\0';
+               return (0);
+       }
+       return (BUS_CHILD_PNPINFO_STR(parent, child, buf, buflen));
+}
+
+int
+bus_child_location_str(device_t child, char *buf, size_t buflen)
+{
+       device_t parent;
+
+       parent = device_get_parent(child);
+       if (parent == NULL) {
+               *buf = '\0';
+               return (0);
+       }
+       return (BUS_CHILD_LOCATION_STR(parent, child, buf, buflen));
+}
+
 static int
 root_print_child(device_t dev, device_t child)
 {
index 02fe870..1a5043b 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/sys/bus.h,v 1.30.2.4 2002/10/10 15:13:33 jhb Exp $
- * $DragonFly: src/sys/sys/bus.h,v 1.8 2004/02/23 21:23:41 dillon Exp $
+ * $DragonFly: src/sys/sys/bus.h,v 1.9 2004/03/13 14:38:22 joerg Exp $
  */
 
 #ifndef _SYS_BUS_H_
@@ -257,6 +257,9 @@ int bus_get_resource(device_t dev, int type, int rid,
 u_long bus_get_resource_start(device_t dev, int type, int rid);
 u_long bus_get_resource_count(device_t dev, int type, int rid);
 void   bus_delete_resource(device_t dev, int type, int rid);
+int    bus_child_present(device_t child);
+int    bus_child_pnpinfo_str(device_t child, char *buf, size_t buflen);
+int    bus_child_location_str(device_t child, char *buf, size_t buflen);
 
 /*
  * Access functions for device.