From 1b3328c30076a4872fb76549719ee41c4f633e6a Mon Sep 17 00:00:00 2001 From: mdodd Date: Thu, 29 Jul 1999 01:03:04 +0000 Subject: Alter the behavior of sys/kern/subr_bus.c:device_print_child() - device_print_child() either lets the BUS_PRINT_CHILD method produce the entire device announcement message or it prints "foo0: not found\n" Alter sys/kern/subr_bus.c:bus_generic_print_child() to take on the previous behavior of device_print_child() (printing the "foo0: " bit of the announce message.) Provide bus_print_child_header() and bus_print_child_footer() to actually print the output for bus_generic_print_child(). These functions should be used whenever possible (unless you can just use bus_generic_print_child()) The BUS_PRINT_CHILD method now returns int instead of void. Modify everything else that defines or uses a BUS_PRINT_CHILD method to comply with the above changes. - Devices are 'on' a bus, not 'at' it. - If a custom BUS_PRINT_CHILD method does the same thing as bus_generic_print_child(), use bus_generic_print_child() - Use device_get_nameunit() instead of both device_get_name() and device_get_unit() - All BUS_PRINT_CHILD methods return the number of characters output. Reviewed by: dfr, peter --- sys/alpha/tlsb/gbus.c | 13 ++++++++----- sys/alpha/tlsb/kftxx.c | 15 +++++++++------ sys/alpha/tlsb/tlsb.c | 14 ++++++++------ sys/alpha/tlsb/zs_tlsb.c | 16 ++++++++++------ 4 files changed, 35 insertions(+), 23 deletions(-) (limited to 'sys/alpha/tlsb') diff --git a/sys/alpha/tlsb/gbus.c b/sys/alpha/tlsb/gbus.c index 2d4ad30..4213df6 100644 --- a/sys/alpha/tlsb/gbus.c +++ b/sys/alpha/tlsb/gbus.c @@ -78,7 +78,7 @@ static devclass_t gbus_devclass; * Device methods */ static int gbus_probe(device_t dev); -static void gbus_print_child(device_t dev, device_t child); +static int gbus_print_child(device_t dev, device_t child); static int gbus_read_ivar(device_t dev, device_t child, int which, u_long *result);; static device_method_t gbus_methods[] = { @@ -128,14 +128,17 @@ gbus_probe(device_t dev) return 0; } -static void +static int gbus_print_child(device_t bus, device_t dev) { struct gbus_device* gdev = DEVTOGBUS(dev); + int retval = 0; + + retval += bus_print_child_header(bus, dev); + retval += printf(" on %s offset 0x%x\n", device_get_nameunit(bus), + gdev->gd_offset); - printf(" at %s%d offset 0x%x", - device_get_name(bus), device_get_unit(bus), - gdev->gd_offset); + return (retval); } static int diff --git a/sys/alpha/tlsb/kftxx.c b/sys/alpha/tlsb/kftxx.c index bfcd2e0..889f97d 100644 --- a/sys/alpha/tlsb/kftxx.c +++ b/sys/alpha/tlsb/kftxx.c @@ -1,4 +1,4 @@ -/* $Id: kftxx.c,v 1.4 1998/11/15 18:25:16 dfr Exp $ */ +/* $Id: kftxx.c,v 1.5 1999/05/08 21:58:53 dfr Exp $ */ /* $NetBSD: kftxx.c,v 1.9 1998/05/14 00:01:32 thorpej Exp $ */ /* @@ -75,7 +75,7 @@ static devclass_t kft_devclass; * Device methods */ static int kft_probe(device_t dev); -static void kft_print_child(device_t dev, device_t child); +static int kft_print_child(device_t dev, device_t child); static int kft_read_ivar(device_t dev, device_t child, int which, u_long *result);; static device_method_t kft_methods[] = { @@ -151,14 +151,17 @@ kft_probe(device_t dev) return 0; } -static void +static int kft_print_child(device_t bus, device_t dev) { struct kft_device *kd = (struct kft_device*) device_get_ivars(dev); + int retval = 0; + + retval += bus_print_child_header(bus, dev); + retval += printf(" on %s hose %d\n", device_get_nameunit(bus), + kd->kd_hosenum); - printf(" at %s%d hose %d", - device_get_name(bus), device_get_unit(bus), - kd->kd_hosenum); + return (retval); } static int diff --git a/sys/alpha/tlsb/tlsb.c b/sys/alpha/tlsb/tlsb.c index f1097b2..8463ab1 100644 --- a/sys/alpha/tlsb/tlsb.c +++ b/sys/alpha/tlsb/tlsb.c @@ -93,7 +93,7 @@ static devclass_t tlsb_devclass; * Device methods */ static int tlsb_probe(device_t dev); -static void tlsb_print_child(device_t dev, device_t child); +static int tlsb_print_child(device_t dev, device_t child); static int tlsb_read_ivar(device_t dev, device_t child, int which, u_long* result); static int tlsb_setup_intr(device_t dev, device_t child, struct resource *irq, int flags, @@ -230,15 +230,17 @@ tlsb_probe(device_t dev) return 0; } -static void +static int tlsb_print_child(device_t dev, device_t child) { struct tlsb_device* tdev = DEVTOTLSB(child); + int retval = 0; + + retval += bus_print_child_header(dev, child); + retval += printf(" at %s node %d\n", device_get_nameunit(dev), + tdev->td_node); - printf(" at %s%d node %d", - device_get_name(dev), - device_get_unit(dev), - tdev->td_node); + return (retval); } static int diff --git a/sys/alpha/tlsb/zs_tlsb.c b/sys/alpha/tlsb/zs_tlsb.c index 55171a4..337706d 100644 --- a/sys/alpha/tlsb/zs_tlsb.c +++ b/sys/alpha/tlsb/zs_tlsb.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: zs_tlsb.c,v 1.13 1999/05/30 16:50:54 phk Exp $ + * $Id: zs_tlsb.c,v 1.14 1999/07/04 14:58:04 phk Exp $ */ /* * This driver is a hopeless hack to get the SimOS console working. A real @@ -405,7 +405,7 @@ struct zsc_softc { static int zsc_tlsb_probe(device_t dev); static int zsc_tlsb_attach(device_t dev); -static void zsc_tlsb_print_child(device_t dev, device_t child); +static int zsc_tlsb_print_child(device_t dev, device_t child); static driver_intr_t zsc_tlsb_intr; @@ -485,12 +485,16 @@ zsc_tlsb_attach(device_t dev) return 0; } -static void +static int zsc_tlsb_print_child(device_t bus, device_t dev) { - printf(" at %s%d channel %c", - device_get_name(bus), device_get_unit(bus), - 'A' + (device_get_unit(dev) & 1)); + int retval = 0; + + retval += bus_print_child_header(bus, dev); + retval += printf(" on %s channel %c\n", device_get_nameunit(bus), + 'A' + (device_get_unit(dev) & 1)); + + return (retval); } static void -- cgit v1.1