Date: Wed, 16 Jul 2008 11:00:42 GMT From: Marko Zec <zec@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 145316 for review Message-ID: <200807161100.m6GB0gC7033722@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=145316 Change 145316 by zec@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@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)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200807161100.m6GB0gC7033722>