Simpler Vimage sysctls

James Gritton jamie at gritton.org
Fri Jul 11 20:24:09 UTC 2008


OK, forget that last part about the SYSCTL_V_XXX macros not needing to 
be redefined for VIMAGE - I didn't notice that they link to the 
sysctl_handle_v_xxx functions.

- Jamie


James Gritton wrote:
> While working on combining jail_set and Vimage, I found that the 
> sysctl virtualization hacks were more complicated than they needed to be.
>
> The extra "subs" and "mod" arguments in SYSCTL_HANDLER_V_ARGS don't 
> need to be explicitly passed because they're members of the 
> sysctl_v_oid structure passed in the oidp argument.  By using 
> oidp->oid_v_subs instead of subs (and same for mod), 
> SYSCTL_HANDLER_V_ARGS becomes the same as SYSCTL_HANDLER_ARGS, and no 
> longer need to be defined.
>
> With the handlers now taking the same arguments, the sysctl_oid and 
> sysctl_v_oid structures become identical and sysctl_v_oid can go away.
>
> Unrelated to this is the various SYSCTL_V_XXX macros that refer to 
> either SYSCTL_V_OID or SYSCTL_OID depending on the VIMAGE define.  
> Since SYSCTL_V_OID already reduces to SYSCTL_OID if VIMAGE is 
> undefined, those further switches are unnecessary.
>
> I'm including a diff that trims all this away, while keeping the same 
> functionality.


More information about the freebsd-virtualization mailing list