From owner-svn-src-user@FreeBSD.ORG Sat Jan 31 22:39:03 2009 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CA43310656D6; Sat, 31 Jan 2009 22:39:03 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AF4CA8FC30; Sat, 31 Jan 2009 22:39:03 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n0VMd3Qb035849; Sat, 31 Jan 2009 22:39:03 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n0VMd3wc035847; Sat, 31 Jan 2009 22:39:03 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <200901312239.n0VMd3wc035847@svn.freebsd.org> From: Andrew Thompson Date: Sat, 31 Jan 2009 22:39:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r187967 - user/thompsa/usb/sys/dev/usb2/ethernet X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 31 Jan 2009 22:39:04 -0000 Author: thompsa Date: Sat Jan 31 22:39:03 2009 New Revision: 187967 URL: http://svn.freebsd.org/changeset/base/187967 Log: Add sysctl information for the parent device. Suggested by: sam Modified: user/thompsa/usb/sys/dev/usb2/ethernet/usb2_ethernet.c user/thompsa/usb/sys/dev/usb2/ethernet/usb2_ethernet.h Modified: user/thompsa/usb/sys/dev/usb2/ethernet/usb2_ethernet.c ============================================================================== --- user/thompsa/usb/sys/dev/usb2/ethernet/usb2_ethernet.c Sat Jan 31 21:40:27 2009 (r187966) +++ user/thompsa/usb/sys/dev/usb2/ethernet/usb2_ethernet.c Sat Jan 31 22:39:03 2009 (r187967) @@ -29,6 +29,8 @@ #include #include +SYSCTL_NODE(_net, OID_AUTO, ue, CTLFLAG_RD, 0, "USB Ethernet parameters"); + #define UE_LOCK(_ue) mtx_lock((_ue)->ue_mtx) #define UE_UNLOCK(_ue) mtx_unlock((_ue)->ue_mtx) #define UE_LOCK_ASSERT(_ue, t) mtx_assert((_ue)->ue_mtx, t) @@ -76,10 +78,21 @@ usb2_ether_getsc(struct usb2_ether *ue) return (ue->ue_sc); } +static int +ue_sysctl_parent(SYSCTL_HANDLER_ARGS) +{ + struct usb2_ether *ue = arg1; + const char *name; + + name = device_get_nameunit(ue->ue_dev); + return SYSCTL_OUT(req, name, strlen(name)); +} + int usb2_ether_ifattach(struct usb2_ether *ue, const u_int8_t *eaddr) { struct ifnet *ifp; + char num[14]; /* sufficient for 32 bits */ int error; ue->ue_unit = alloc_unr(ueunit); @@ -88,6 +101,7 @@ usb2_ether_ifattach(struct usb2_ether *u USB_TASK_INIT(&ue->ue_media_task, ue_ifmedia_task, ue, ue->ue_mtx); USB_TASK_INIT(&ue->ue_tick_task, ue_tick_task, ue, ue->ue_mtx); usb2_callout_init_mtx(&ue->ue_watchdog, ue->ue_mtx, 0); + sysctl_ctx_init(&ue->ue_sysctl_ctx); error = usb2_proc_create(&ue->ue_tq, USB_PRI_MED, device_get_nameunit(ue->ue_dev)); @@ -126,6 +140,15 @@ usb2_ether_ifattach(struct usb2_ether *u if_printf(ifp, " on %s\n", device_get_nameunit(ue->ue_dev)); ether_ifattach(ifp, eaddr); + + snprintf(num, sizeof(num), "%u", ue->ue_unit); + ue->ue_sysctl_oid = SYSCTL_ADD_NODE(&ue->ue_sysctl_ctx, + &SYSCTL_NODE_CHILDREN(_net, ue), + OID_AUTO, num, CTLFLAG_RD, NULL, ""); + SYSCTL_ADD_PROC(&ue->ue_sysctl_ctx, + SYSCTL_CHILDREN(ue->ue_sysctl_oid), OID_AUTO, + "%parent", CTLFLAG_RD, ue, 0, + ue_sysctl_parent, "A", "parent device"); return (0); error: @@ -155,6 +178,7 @@ usb2_ether_ifdetach(struct usb2_ether *u device_delete_child(ue->ue_dev, ue->ue_miibus); ether_ifdetach(ifp); if_free(ifp); + sysctl_ctx_free(&ue->ue_sysctl_ctx); free_unr(ueunit, ue->ue_unit); } Modified: user/thompsa/usb/sys/dev/usb2/ethernet/usb2_ethernet.h ============================================================================== --- user/thompsa/usb/sys/dev/usb2/ethernet/usb2_ethernet.h Sat Jan 31 21:40:27 2009 (r187966) +++ user/thompsa/usb/sys/dev/usb2/ethernet/usb2_ethernet.h Sat Jan 31 22:39:03 2009 (r187967) @@ -58,6 +58,8 @@ struct usb2_ether { void *ue_sc; int ue_unit; + struct sysctl_ctx_list ue_sysctl_ctx; + struct sysctl_oid *ue_sysctl_oid; struct ifqueue ue_rxq;