[PATCH] Simple tidy up of puc(4) bus driver

From: John Baldwin <jhb_at_freebsd.org>
Date: Mon, 23 May 2011 10:39:02 -0400
This small patch makes the puc(4) bus drivers a little more friendly.  It 
should now list the port for each child device in the boot messages, and 
devinfo -v should list the type and port of each child device in its output as 
well:

Index: puc_pci.c
===================================================================
--- puc_pci.c	(revision 222126)
+++ puc_pci.c	(working copy)
_at__at_ -132,7 +132,9 _at__at_
     DEVMETHOD(bus_read_ivar,		puc_bus_read_ivar),
     DEVMETHOD(bus_setup_intr,		puc_bus_setup_intr),
     DEVMETHOD(bus_teardown_intr,	puc_bus_teardown_intr),
-    DEVMETHOD(bus_print_child,		bus_generic_print_child),
+    DEVMETHOD(bus_print_child,		puc_bus_print_child),
+    DEVMETHOD(bus_child_pnpinfo_str,	puc_bus_child_pnpinfo_str),
+    DEVMETHOD(bus_child_location_str,	puc_bus_child_location_str),
     DEVMETHOD(bus_driver_added,		bus_generic_driver_added),
     { 0, 0 }
 };
Index: puc_pccard.c
===================================================================
--- puc_pccard.c	(revision 222126)
+++ puc_pccard.c	(working copy)
_at__at_ -82,7 +82,9 _at__at_
     DEVMETHOD(bus_read_ivar,		puc_bus_read_ivar),
     DEVMETHOD(bus_setup_intr,		puc_bus_setup_intr),
     DEVMETHOD(bus_teardown_intr,	puc_bus_teardown_intr),
-    DEVMETHOD(bus_print_child,		bus_generic_print_child),
+    DEVMETHOD(bus_print_child,		puc_bus_print_child),
+    DEVMETHOD(bus_child_pnpinfo_str,	puc_bus_child_pnpinfo_str),
+    DEVMETHOD(bus_child_location_str,	puc_bus_child_location_str),
     DEVMETHOD(bus_driver_added,		bus_generic_driver_added),
     { 0, 0 }
 };
Index: puc.c
===================================================================
--- puc.c	(revision 222126)
+++ puc.c	(working copy)
_at__at_ -726,3 +726,41 _at__at_
 	}
 	return (0);
 }
+
+int
+puc_bus_print_child(device_t dev, device_t child)
+{
+	struct puc_port *port;
+	int retval;
+
+	port = device_get_ivars(child);
+	retval = 0;
+
+	retval += bus_print_child_header(dev, child);
+	retval += printf(" at port %d", port->p_nr);
+	retval += bus_print_child_footer(dev, child);
+
+	return (retval);
+}
+
+int
+puc_bus_child_location_str(device_t dev, device_t child, char *buf,
+    size_t buflen)
+{
+	struct puc_port *port;
+
+	port = device_get_ivars(child);
+	snprintf(buf, buflen, "port=%d", port->p_nr);
+	return (0);
+}
+
+int
+puc_bus_child_pnpinfo_str(device_t dev, device_t child, char *buf,
+    size_t buflen)
+{
+	struct puc_port *port;
+
+	port = device_get_ivars(child);
+	snprintf(buf, buflen, "type=%d", port->p_type);
+	return (0);
+}
Index: puc_bfe.h
===================================================================
--- puc_bfe.h	(revision 222126)
+++ puc_bfe.h	(working copy)
_at__at_ -82,9 +82,12 _at__at_
 int puc_bfe_detach(device_t);
 int puc_bfe_probe(device_t, const struct puc_cfg *);
 
+int puc_bus_child_location_str(device_t, device_t, char *, size_t);
+int puc_bus_child_pnpinfo_str(device_t, device_t, char *, size_t);
 struct resource *puc_bus_alloc_resource(device_t, device_t, int, int *, 
u_long,
     u_long, u_long, u_int);
 int puc_bus_get_resource(device_t, device_t, int, int, u_long *, u_long *);
+int puc_bus_print_child(device_t, device_t);
 int puc_bus_read_ivar(device_t, device_t, int, uintptr_t *);
 int puc_bus_release_resource(device_t, device_t, int, int, struct resource 
*);
 int puc_bus_setup_intr(device_t, device_t, struct resource *, int,

-- 
John Baldwin
Received on Mon May 23 2011 - 12:39:04 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:14 UTC