summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2014-03-04 14:01:12 +0000
committerglebius <glebius@FreeBSD.org>2014-03-04 14:01:12 +0000
commit4b9e17c3eff2269c8b3279791879d87a4fcca87e (patch)
tree98b726074104f4a9025c860d3018a262db36202d /sys/net
parent64a908c93597fc7a32a06f4c07bfd9c9006c6062 (diff)
downloadFreeBSD-src-4b9e17c3eff2269c8b3279791879d87a4fcca87e.zip
FreeBSD-src-4b9e17c3eff2269c8b3279791879d87a4fcca87e.tar.gz
Merge r261590, r261592 from head:
Remove identical vnet sysctl handlers, and handle CTLFLAG_VNET in the sysctl_root(). Note: SYSCTL_VNET_* macros can be removed as well. All is needed to virtualize a sysctl oid is set CTLFLAG_VNET on it. But for now keep macros in place to avoid large code churn.
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/vnet.c41
-rw-r--r--sys/net/vnet.h13
2 files changed, 4 insertions, 50 deletions
diff --git a/sys/net/vnet.c b/sys/net/vnet.c
index 3ce54b6..0eb1075 100644
--- a/sys/net/vnet.c
+++ b/sys/net/vnet.c
@@ -465,47 +465,6 @@ vnet_data_copy(void *start, int size)
}
/*
- * Variants on sysctl_handle_foo that know how to handle virtualized global
- * variables: if 'arg1' is a pointer, then we transform it to the local vnet
- * offset.
- */
-int
-vnet_sysctl_handle_int(SYSCTL_HANDLER_ARGS)
-{
-
- if (arg1 != NULL)
- arg1 = (void *)(curvnet->vnet_data_base + (uintptr_t)arg1);
- return (sysctl_handle_int(oidp, arg1, arg2, req));
-}
-
-int
-vnet_sysctl_handle_opaque(SYSCTL_HANDLER_ARGS)
-{
-
- if (arg1 != NULL)
- arg1 = (void *)(curvnet->vnet_data_base + (uintptr_t)arg1);
- return (sysctl_handle_opaque(oidp, arg1, arg2, req));
-}
-
-int
-vnet_sysctl_handle_string(SYSCTL_HANDLER_ARGS)
-{
-
- if (arg1 != NULL)
- arg1 = (void *)(curvnet->vnet_data_base + (uintptr_t)arg1);
- return (sysctl_handle_string(oidp, arg1, arg2, req));
-}
-
-int
-vnet_sysctl_handle_uint(SYSCTL_HANDLER_ARGS)
-{
-
- if (arg1 != NULL)
- arg1 = (void *)(curvnet->vnet_data_base + (uintptr_t)arg1);
- return (sysctl_handle_int(oidp, arg1, arg2, req));
-}
-
-/*
* Support for special SYSINIT handlers registered via VNET_SYSINIT()
* and VNET_SYSUNINIT().
*/
diff --git a/sys/net/vnet.h b/sys/net/vnet.h
index 4e9de11..b3a2a34 100644
--- a/sys/net/vnet.h
+++ b/sys/net/vnet.h
@@ -290,15 +290,10 @@ void vnet_data_free(void *start_arg, int size);
* arguments themselves, if required.
*/
#ifdef SYSCTL_OID
-int vnet_sysctl_handle_int(SYSCTL_HANDLER_ARGS);
-int vnet_sysctl_handle_opaque(SYSCTL_HANDLER_ARGS);
-int vnet_sysctl_handle_string(SYSCTL_HANDLER_ARGS);
-int vnet_sysctl_handle_uint(SYSCTL_HANDLER_ARGS);
-
#define SYSCTL_VNET_INT(parent, nbr, name, access, ptr, val, descr) \
SYSCTL_OID(parent, nbr, name, \
CTLTYPE_INT|CTLFLAG_MPSAFE|CTLFLAG_VNET|(access), \
- ptr, val, vnet_sysctl_handle_int, "I", descr)
+ ptr, val, sysctl_handle_int, "I", descr)
#define SYSCTL_VNET_PROC(parent, nbr, name, access, ptr, arg, handler, \
fmt, descr) \
CTASSERT(((access) & CTLTYPE) != 0); \
@@ -312,16 +307,16 @@ int vnet_sysctl_handle_uint(SYSCTL_HANDLER_ARGS);
#define SYSCTL_VNET_STRING(parent, nbr, name, access, arg, len, descr) \
SYSCTL_OID(parent, nbr, name, \
CTLTYPE_STRING|CTLFLAG_VNET|(access), \
- arg, len, vnet_sysctl_handle_string, "A", descr)
+ arg, len, sysctl_handle_string, "A", descr)
#define SYSCTL_VNET_STRUCT(parent, nbr, name, access, ptr, type, descr) \
SYSCTL_OID(parent, nbr, name, \
CTLTYPE_OPAQUE|CTLFLAG_VNET|(access), ptr, \
- sizeof(struct type), vnet_sysctl_handle_opaque, "S," #type, \
+ sizeof(struct type), sysctl_handle_opaque, "S," #type, \
descr)
#define SYSCTL_VNET_UINT(parent, nbr, name, access, ptr, val, descr) \
SYSCTL_OID(parent, nbr, name, \
CTLTYPE_UINT|CTLFLAG_MPSAFE|CTLFLAG_VNET|(access), \
- ptr, val, vnet_sysctl_handle_uint, "IU", descr)
+ ptr, val, sysctl_handle_int, "IU", descr)
#define VNET_SYSCTL_ARG(req, arg1) do { \
if (arg1 != NULL) \
arg1 = (void *)(TD_TO_VNET((req)->td)->vnet_data_base + \
OpenPOWER on IntegriCloud