Module Name: src Committed By: bad Date: Sun Nov 17 22:52:14 UTC 2013
Modified Files: src/sys/dev/pci: ubsec.c Log Message: Create the sysctl variables on module initialization. Create them under hw.ubsec as is hip these days. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/dev/pci/ubsec.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/ubsec.c diff -u src/sys/dev/pci/ubsec.c:1.32 src/sys/dev/pci/ubsec.c:1.33 --- src/sys/dev/pci/ubsec.c:1.32 Sun Nov 17 17:16:25 2013 +++ src/sys/dev/pci/ubsec.c Sun Nov 17 22:52:14 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: ubsec.c,v 1.32 2013/11/17 17:16:25 bad Exp $ */ +/* $NetBSD: ubsec.c,v 1.33 2013/11/17 22:52:14 bad Exp $ */ /* $FreeBSD: src/sys/dev/ubsec/ubsec.c,v 1.6.2.6 2003/01/23 21:06:43 sam Exp $ */ /* $OpenBSD: ubsec.c,v 1.127 2003/06/04 14:04:58 jason Exp $ */ @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ubsec.c,v 1.32 2013/11/17 17:16:25 bad Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ubsec.c,v 1.33 2013/11/17 22:52:14 bad Exp $"); #undef UBSEC_DEBUG @@ -59,6 +59,7 @@ __KERNEL_RCSID(0, "$NetBSD: ubsec.c,v 1. #include <sys/device.h> #include <sys/module.h> #include <sys/queue.h> +#include <sys/sysctl.h> #include <opencrypto/cryptodev.h> #include <opencrypto/xform.h> @@ -84,6 +85,7 @@ __KERNEL_RCSID(0, "$NetBSD: ubsec.c,v 1. static int ubsec_probe(device_t, cfdata_t, void *); static void ubsec_attach(device_t, device_t, void *); static int ubsec_detach(device_t, int); +static int ubsec_sysctl_init(void); static void ubsec_reset_board(struct ubsec_softc *); static void ubsec_init_board(struct ubsec_softc *); static void ubsec_init_pciregs(struct pci_attach_args *pa); @@ -161,6 +163,8 @@ static void ubsec_dump_ctx2(volatile str struct ubsec_stats ubsecstats; +static struct sysctllog *ubsec_sysctllog; + /* * ubsec_maxbatch controls the number of crypto ops to voluntarily * collect into one submission to the hardware. This batching happens @@ -169,10 +173,6 @@ struct ubsec_stats ubsecstats; * with a ``no delay'' flag. */ static int ubsec_maxbatch = 1; -#ifdef SYSCTL_INT -SYSCTL_INT(_kern, OID_AUTO, ubsec_maxbatch, CTLFLAG_RW, &ubsec_maxbatch, - 0, "Broadcom driver: max ops to batch w/o interrupt"); -#endif /* * ubsec_maxaggr controls the number of crypto ops to submit to the @@ -182,10 +182,6 @@ SYSCTL_INT(_kern, OID_AUTO, ubsec_maxbat * performance but at the expense of more interrupt processing. */ static int ubsec_maxaggr = 1; -#ifdef SYSCTL_INT -SYSCTL_INT(_kern, OID_AUTO, ubsec_maxaggr, CTLFLAG_RW, &ubsec_maxaggr, - 0, "Broadcom driver: max ops to aggregate under one interrupt"); -#endif static const struct ubsec_product { pci_vendor_id_t ubsec_vendor; @@ -540,8 +536,12 @@ ubsec_modcmd(modcmd_t cmd, void *data) error = config_init_component(cfdriver_ioconf_ubsec, cfattach_ioconf_ubsec, cfdata_ioconf_ubsec); #endif + if (error == 0) + error = ubsec_sysctl_init(); return error; case MODULE_CMD_FINI: + if (ubsec_sysctllog != NULL) + sysctl_teardown(&ubsec_sysctllog); #ifdef _MODULE error = config_fini_component(cfdriver_ioconf_ubsec, cfattach_ioconf_ubsec, cfdata_ioconf_ubsec); @@ -552,6 +552,40 @@ ubsec_modcmd(modcmd_t cmd, void *data) } } +static int +ubsec_sysctl_init(void) +{ + const struct sysctlnode *node = NULL; + + ubsec_sysctllog = NULL; + + sysctl_createv(&ubsec_sysctllog, 0, NULL, NULL, + CTLFLAG_PERMANENT, + CTLTYPE_NODE, "hw", NULL, + NULL, 0, NULL, 0, + CTL_HW, CTL_EOL); + sysctl_createv(&ubsec_sysctllog, 0, NULL, &node, + CTLFLAG_PERMANENT, + CTLTYPE_NODE, "ubsec", + SYSCTL_DESCR("ubsec opetions"), + NULL, 0, NULL, 0, + CTL_HW, CTL_CREATE, CTL_EOL); + sysctl_createv(&ubsec_sysctllog, 0, &node, NULL, + CTLFLAG_PERMANENT | CTLFLAG_READWRITE, + CTLTYPE_INT, "maxbatch", + SYSCTL_DESCR("max ops to batch w/o interrupt"), + NULL, 0, &ubsec_maxbatch, 0, + CTL_CREATE, CTL_EOL); + sysctl_createv(&ubsec_sysctllog, 0, &node, NULL, + CTLFLAG_PERMANENT | CTLFLAG_READWRITE, + CTLTYPE_INT, "maxaggr", + SYSCTL_DESCR("max ops to aggregate under one interrupt"), + NULL, 0, &ubsec_maxaggr, 0, + CTL_CREATE, CTL_EOL); + + return 0; +} + /* * UBSEC Interrupt routine */