PERFORCE change 145316 for review
Marko Zec
zec at FreeBSD.org
Wed Jul 16 11:00:43 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=145316
Change 145316 by zec at zec_tpx32 on 2008/07/16 11:00:14
Simplify the sysctl infrastructure for handling virtualized
state.
We deprecate struct sysctl_v_oid because it is now entirely
identical to struct sysctl_oid. This in turn voids the
need for several sysctl handlers to have different
argument lists depending on whether the kernel was configured
with or without options VIMAGE. That said,
SYSCTL_HANDLER_V_ARGS arglist macro is also deprecated.
Submitted by: James Gritton <jamie at gritton.org>
Affected files ...
.. //depot/projects/vimage/src/sys/kern/kern_sysctl.c#11 edit
.. //depot/projects/vimage/src/sys/netinet/in_pcb.c#22 edit
.. //depot/projects/vimage/src/sys/netinet/ip_fw2.c#35 edit
.. //depot/projects/vimage/src/sys/netinet/ip_fw_pfil.c#9 edit
.. //depot/projects/vimage/src/sys/netinet6/in6_proto.c#25 edit
.. //depot/projects/vimage/src/sys/sys/sysctl.h#19 edit
Differences ...
==== //depot/projects/vimage/src/sys/kern/kern_sysctl.c#11 (text+ko) ====
@@ -849,7 +849,7 @@
#ifdef VIMAGE
int
-sysctl_handle_v_int(SYSCTL_HANDLER_V_ARGS)
+sysctl_handle_v_int(SYSCTL_HANDLER_ARGS)
{
int tmpout, error = 0;
@@ -1009,7 +1009,7 @@
#ifdef VIMAGE
int
-sysctl_handle_v_string(SYSCTL_HANDLER_V_ARGS)
+sysctl_handle_v_string(SYSCTL_HANDLER_ARGS)
{
int error=0;
char *tmparg;
@@ -1088,7 +1088,7 @@
#ifdef VIMAGE
int
-sysctl_handle_v_opaque(SYSCTL_HANDLER_V_ARGS)
+sysctl_handle_v_opaque(SYSCTL_HANDLER_ARGS)
{
int error, tries;
u_int generation;
@@ -1421,17 +1421,7 @@
if (error != 0)
return (error);
#endif
-#ifndef VIMAGE
error = oid->oid_handler(oid, arg1, arg2, req);
-#else
- if (oid->oid_v_subs) {
- struct sysctl_v_oid *v_oid = (struct sysctl_v_oid *) oid;
- error = v_oid->oid_handler(oid, arg1, arg2,
- req, oid->oid_v_subs,
- oid->oid_v_mod);
- } else
- error = oid->oid_handler(oid, arg1, arg2, req);
-#endif
return (error);
}
==== //depot/projects/vimage/src/sys/netinet/in_pcb.c#22 (text+ko) ====
@@ -121,11 +121,7 @@
else if ((var) > (max)) { (var) = (max); }
static int
-#ifndef VIMAGE
sysctl_net_ipport_check(SYSCTL_HANDLER_ARGS)
-#else
-sysctl_net_ipport_check(SYSCTL_HANDLER_V_ARGS)
-#endif
{
#ifdef VIMAGE
INIT_VNET_INET(curvnet);
==== //depot/projects/vimage/src/sys/netinet/ip_fw2.c#35 (text+ko) ====
@@ -157,11 +157,7 @@
static int autoinc_step;
#endif
-#ifdef VIMAGE
-extern int ipfw_chg_hook(SYSCTL_HANDLER_V_ARGS);
-#else
extern int ipfw_chg_hook(SYSCTL_HANDLER_ARGS);
-#endif
#ifdef SYSCTL_NODE
SYSCTL_NODE(_net_inet_ip, OID_AUTO, fw, CTLFLAG_RW, 0, "Firewall");
==== //depot/projects/vimage/src/sys/netinet/ip_fw_pfil.c#9 (text+ko) ====
@@ -75,11 +75,7 @@
# endif
#endif
-#ifdef VIMAGE
-int ipfw_chg_hook(SYSCTL_HANDLER_V_ARGS);
-#else
int ipfw_chg_hook(SYSCTL_HANDLER_ARGS);
-#endif
/* Dummynet hooks. */
ip_dn_ruledel_t *ip_dn_ruledel_ptr = NULL;
@@ -493,11 +489,7 @@
#endif /* INET6 */
int
-#ifdef VIMAGE
-ipfw_chg_hook(SYSCTL_HANDLER_V_ARGS)
-#else
ipfw_chg_hook(SYSCTL_HANDLER_ARGS)
-#endif
{
#ifdef VIMAGE
INIT_VNET_IPFW(curvnet);
==== //depot/projects/vimage/src/sys/netinet6/in6_proto.c#25 (text+ko) ====
@@ -450,11 +450,7 @@
/* net.inet6.ip6 */
static int
-#ifdef VIMAGE
-sysctl_ip6_temppltime(SYSCTL_HANDLER_V_ARGS)
-#else
sysctl_ip6_temppltime(SYSCTL_HANDLER_ARGS)
-#endif
{
INIT_VNET_INET6(curvnet);
#ifdef VIMAGE
@@ -477,11 +473,7 @@
}
static int
-#ifdef VIMAGE
-sysctl_ip6_tempvltime(SYSCTL_HANDLER_V_ARGS)
-#else
sysctl_ip6_tempvltime(SYSCTL_HANDLER_ARGS)
-#endif
{
INIT_VNET_INET6(curvnet);
#ifdef VIMAGE
==== //depot/projects/vimage/src/sys/sys/sysctl.h#19 (text+ko) ====
@@ -115,9 +115,6 @@
#define SYSCTL_HANDLER_ARGS struct sysctl_oid *oidp, void *arg1, int arg2, \
struct sysctl_req *req
-#define SYSCTL_HANDLER_V_ARGS struct sysctl_oid *oidp, void *arg1, int arg2, \
- struct sysctl_req *req, int subs, int mod
-
/* definitions for sysctl_req 'lock' member */
#define REQ_UNLOCKED 0 /* not locked and not wired */
#define REQ_LOCKED 1 /* locked and not wired */
@@ -169,22 +166,6 @@
short oid_v_mod;
};
-struct sysctl_v_oid {
- struct sysctl_oid_list *oid_parent;
- SLIST_ENTRY(sysctl_oid) oid_link;
- int oid_number;
- u_int oid_kind;
- void *oid_arg1;
- int oid_arg2;
- const char *oid_name;
- int (*oid_handler)(SYSCTL_HANDLER_V_ARGS);
- const char *oid_fmt;
- int oid_refcnt;
- const char *oid_descr;
- short oid_v_subs;
- short oid_v_mod;
-};
-
#define SYSCTL_IN(r, p, l) (r->newfunc)(r, p, l)
#define SYSCTL_OUT(r, p, l) (r->oldfunc)(r, p, l)
@@ -196,9 +177,9 @@
int sysctl_handle_string(SYSCTL_HANDLER_ARGS);
int sysctl_handle_opaque(SYSCTL_HANDLER_ARGS);
-int sysctl_handle_v_int(SYSCTL_HANDLER_V_ARGS);
-int sysctl_handle_v_string(SYSCTL_HANDLER_V_ARGS);
-int sysctl_handle_v_opaque(SYSCTL_HANDLER_V_ARGS);
+int sysctl_handle_v_int(SYSCTL_HANDLER_ARGS);
+int sysctl_handle_v_string(SYSCTL_HANDLER_ARGS);
+int sysctl_handle_v_opaque(SYSCTL_HANDLER_ARGS);
/*
* These functions are used to add/remove an oid from the mib.
@@ -247,7 +228,7 @@
#ifdef VIMAGE
#define SYSCTL_V_OID(subs, mod, parent, nbr, name, kind, a1, a2, \
handler, fmt, descr) \
- static struct sysctl_v_oid sysctl__##parent##_##name = { \
+ static struct sysctl_oid sysctl__##parent##_##name = { \
&sysctl_##parent##_children, { 0 }, nbr, kind, \
(void *) offsetof(struct mod, _##a1), a2, #name, \
handler, fmt, 0, __DESCR(descr), subs, V_MOD_##mod }; \
@@ -391,17 +372,10 @@
SYSCTL_OID(parent, nbr, name, (access), \
ptr, arg, handler, fmt, descr)
-#ifdef VIMAGE
#define SYSCTL_V_PROC(subs, mod, parent, nbr, name, access, sym, arg, \
handler, fmt, descr) \
SYSCTL_V_OID(subs, mod, parent, nbr, name, (access), \
sym, arg, handler, fmt, descr)
-#else
-#define SYSCTL_V_PROC(subs, mod, parent, nbr, name, access, sym, arg, \
- handler, fmt, descr) \
- SYSCTL_OID(parent, nbr, name, (access), \
- &sym, arg, handler, fmt, descr)
-#endif
#define SYSCTL_ADD_PROC(ctx, parent, nbr, name, access, ptr, arg, handler, fmt, descr) \
sysctl_add_oid(ctx, parent, nbr, name, (access), \
@@ -420,9 +394,10 @@
#ifdef VIMAGE
#define SYSCTL_RESOLVE_V_ARG1() do { \
char *cp; \
- switch (subs) { \
+ switch (oidp->oid_v_subs) { \
case V_NET: \
- cp = (char *) TD_TO_VNET(curthread)->mod_data[mod]; \
+ cp = (char *) \
+ TD_TO_VNET(curthread)->mod_data[oidp->oid_v_mod]; \
break; \
case V_PROCG: \
cp = (char *) TD_TO_VPROCG(curthread); \
@@ -431,7 +406,7 @@
cp = (char *) TD_TO_VCPU(curthread); \
break; \
default: \
- panic("unsupported module id %d", subs); \
+ panic("unsupported module id %d", oidp->oid_v_subs); \
} \
arg1 = cp + (size_t) arg1; \
} while (0)
More information about the p4-projects
mailing list