From 516cc61fc442901b5929e0146ed47c474840428f Mon Sep 17 00:00:00 2001 From: Sepherosa Ziehau Date: Sun, 16 Sep 2007 11:53:36 +0000 Subject: [PATCH] Create per-interface sysctl tree. --- sys/dev/netif/bwi/bwimac.c | 3 ++- sys/dev/netif/bwi/bwirf.c | 3 ++- sys/dev/netif/bwi/if_bwi.c | 41 +++++++++++++++++++++++++++++++---- sys/dev/netif/bwi/if_bwivar.h | 10 +++++++-- 4 files changed, 49 insertions(+), 8 deletions(-) diff --git a/sys/dev/netif/bwi/bwimac.c b/sys/dev/netif/bwi/bwimac.c index 11634b5d1f..971e0fa4aa 100644 --- a/sys/dev/netif/bwi/bwimac.c +++ b/sys/dev/netif/bwi/bwimac.c @@ -31,7 +31,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $DragonFly: src/sys/dev/netif/bwi/bwimac.c,v 1.4 2007/09/16 10:20:15 sephe Exp $ + * $DragonFly: src/sys/dev/netif/bwi/bwimac.c,v 1.5 2007/09/16 11:53:36 sephe Exp $ */ #include @@ -45,6 +45,7 @@ #include #include #include +#include #include #include diff --git a/sys/dev/netif/bwi/bwirf.c b/sys/dev/netif/bwi/bwirf.c index f031f3c8c6..704a8a3a50 100644 --- a/sys/dev/netif/bwi/bwirf.c +++ b/sys/dev/netif/bwi/bwirf.c @@ -31,7 +31,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $DragonFly: src/sys/dev/netif/bwi/bwirf.c,v 1.3 2007/09/16 04:24:30 sephe Exp $ + * $DragonFly: src/sys/dev/netif/bwi/bwirf.c,v 1.4 2007/09/16 11:53:36 sephe Exp $ */ #include @@ -43,6 +43,7 @@ #include #include #include +#include #include #include diff --git a/sys/dev/netif/bwi/if_bwi.c b/sys/dev/netif/bwi/if_bwi.c index a3c497425f..bac0d5787e 100644 --- a/sys/dev/netif/bwi/if_bwi.c +++ b/sys/dev/netif/bwi/if_bwi.c @@ -31,7 +31,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $DragonFly: src/sys/dev/netif/bwi/if_bwi.c,v 1.8 2007/09/16 11:31:20 sephe Exp $ + * $DragonFly: src/sys/dev/netif/bwi/if_bwi.c,v 1.9 2007/09/16 11:53:36 sephe Exp $ */ #include @@ -416,6 +416,39 @@ bwi_attach(device_t dev) goto fail; } + /* + * Initialize sysctl variables + */ + sc->sc_fw_version = BWI_FW_VERSION3; + sc->sc_dwell_time = 200; + + /* + * Create sysctl tree + */ + sysctl_ctx_init(&sc->sc_sysctl_ctx); + sc->sc_sysctl_tree = SYSCTL_ADD_NODE(&sc->sc_sysctl_ctx, + SYSCTL_STATIC_CHILDREN(_hw), + OID_AUTO, + device_get_nameunit(dev), + CTLFLAG_RD, 0, ""); + if (sc->sc_sysctl_tree == NULL) { + device_printf(dev, "can't add sysctl node\n"); + error = ENXIO; + goto fail; + } + + SYSCTL_ADD_UINT(&sc->sc_sysctl_ctx, + SYSCTL_CHILDREN(sc->sc_sysctl_tree), OID_AUTO, + "dwell_time", CTLFLAG_RW, &sc->sc_dwell_time, 0, + "Channel dwell time during scan (msec)"); + SYSCTL_ADD_UINT(&sc->sc_sysctl_ctx, + SYSCTL_CHILDREN(sc->sc_sysctl_tree), OID_AUTO, + "fw_version", CTLFLAG_RD, &sc->sc_fw_version, 0, + "Firmware version"); + SYSCTL_ADD_UINT(&sc->sc_sysctl_ctx, + SYSCTL_CHILDREN(sc->sc_sysctl_tree), OID_AUTO, + "debug", CTLFLAG_RW, &sc->sc_debug, 0, "Debug flags"); + bwi_power_on(sc, 1); error = bwi_bbp_attach(sc); @@ -537,9 +570,6 @@ bwi_attach(device_t dev) panic("unknown phymode %d\n", phy->phy_mode); } - sc->sc_fw_version = BWI_FW_VERSION3; - sc->sc_dwell_time = 200; - ic->ic_caps = IEEE80211_C_SHSLOT | IEEE80211_C_SHPREAMBLE | IEEE80211_C_WPA | @@ -613,6 +643,9 @@ bwi_detach(device_t dev) bwi_mac_detach(&sc->sc_mac[i]); } + if (sc->sc_sysctl_tree != NULL) + sysctl_ctx_free(&sc->sc_sysctl_ctx); + if (sc->sc_irq_res != NULL) { bus_release_resource(dev, SYS_RES_IRQ, sc->sc_irq_rid, sc->sc_irq_res); diff --git a/sys/dev/netif/bwi/if_bwivar.h b/sys/dev/netif/bwi/if_bwivar.h index 0558e8add6..018b9ee71a 100644 --- a/sys/dev/netif/bwi/if_bwivar.h +++ b/sys/dev/netif/bwi/if_bwivar.h @@ -31,7 +31,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $DragonFly: src/sys/dev/netif/bwi/if_bwivar.h,v 1.5 2007/09/16 08:25:41 sephe Exp $ + * $DragonFly: src/sys/dev/netif/bwi/if_bwivar.h,v 1.6 2007/09/16 11:53:36 sephe Exp $ */ #ifndef _IF_BWIVAR_H @@ -582,9 +582,15 @@ struct bwi_softc { void (*sc_txeof_status)(struct bwi_softc *); - /* Sysctl variables */ + struct sysctl_ctx_list sc_sysctl_ctx; + struct sysctl_oid *sc_sysctl_tree; + + /* + * Sysctl variables + */ int sc_fw_version; /* BWI_FW_VERSION[34] */ int sc_dwell_time; /* milliseconds */ + uint32_t sc_debug; }; #define BWI_F_BUS_INITED 0x1 -- 2.41.0