diff options
author | bz <bz@FreeBSD.org> | 2009-07-21 21:58:55 +0000 |
---|---|---|
committer | bz <bz@FreeBSD.org> | 2009-07-21 21:58:55 +0000 |
commit | 1f4b104d4db1667a601af3c0725a15f5e503203e (patch) | |
tree | 9c7c5b17e1d92a3118a038d42dac35b24c53b549 /sys/net/vnet.h | |
parent | 68cbb6a7463b70cec8d8a0cd9948339a98406099 (diff) | |
download | FreeBSD-src-1f4b104d4db1667a601af3c0725a15f5e503203e.zip FreeBSD-src-1f4b104d4db1667a601af3c0725a15f5e503203e.tar.gz |
sysctl_msec_to_ticks is used with both virtualized and
non-vrtiualized sysctls so we cannot used one common function.
Add a macro to convert the arg1 in the virtualized case to
vnet.h to not expose the maths to all over the code.
Add a wrapper for the single virtualized call, properly handling
arg1 and call the default implementation from there.
Convert the two over places to use the new macro.
Reviewed by: rwatson
Approved by: re (kib)
Diffstat (limited to 'sys/net/vnet.h')
-rw-r--r-- | sys/net/vnet.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/net/vnet.h b/sys/net/vnet.h index 23f0a33..aec448a 100644 --- a/sys/net/vnet.h +++ b/sys/net/vnet.h @@ -101,6 +101,11 @@ int vnet_sysctl_handle_uint(SYSCTL_HANDLER_ARGS); #define SYSCTL_VNET_UINT(parent, nbr, name, access, ptr, val, descr) \ SYSCTL_OID(parent, nbr, name, CTLTYPE_UINT|CTLFLAG_MPSAFE|(access), \ ptr, val, vnet_sysctl_handle_uint, "IU", descr) +#define VNET_SYSCTL_ARG(req, arg1) do { \ + if (arg1 != NULL) \ + arg1 = (void *)(TD_TO_VNET((req)->td)->vnet_data_base + \ + (uintptr_t)(arg1)); \ +} while (0) #endif /* SYSCTL_OID */ /* @@ -141,6 +146,7 @@ void vnet_data_destroy(struct vnet *vnet); SYSCTL_STRUCT(parent, nbr, name, access, ptr, type, descr) #define SYSCTL_VNET_UINT(parent, nbr, name, access, ptr, val, descr) \ SYSCTL_UINT(parent, nbr, name, access, ptr, val, descr) +#define VNET_SYSCTL_ARG(req, arg1) #endif /* SYSCTL_OID */ /* |