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