On 02/03/2016 04:50 PM, Ben Pfaff wrote: > Until now, vlog had a macro VLOG_DEFINE_THIS_MODULE, which expanded using > VLOG_DEFINE_MODULE, which expanded using VLOG_DEFINE_MODULE__, and the > latter macros didn't have any other users. This commit combines them for > clarity. > > Signed-off-by: Ben Pfaff <b...@ovn.org>
Acked-by: Russell Bryant <russ...@ovn.org> A couple of things confused me here so I had to bug you on IRC. :-) Some comments might be helpful: > @@ -181,12 +174,23 @@ void vlog_rate_limit(const struct vlog_module *, enum > vlog_level, > * defines a static variable named THIS_MODULE that points to it, for use > with > * the convenience macros below. */ > #define VLOG_DEFINE_THIS_MODULE(MODULE) \ > - VLOG_DEFINE_MODULE(MODULE); \ /* The extern declaration here makes sparse happy. Otherwise it suggests that VLM_##MODULE should be delcared static. We don't want to make it static, because this approach will generate a linker error on duplicate module names */ > + extern struct vlog_module VLM_##MODULE; \ > + struct vlog_module VLM_##MODULE = \ > + { \ > + OVS_LIST_INITIALIZER(&VLM_##MODULE.list), \ > + #MODULE, /* name */ \ > + { VLL_INFO, VLL_INFO, VLL_INFO }, /* levels */ \ > + VLL_INFO, /* min_level */ \ > + true /* honor_rate_limits */ \ > + }; \ > + OVS_CONSTRUCTOR(init_##MODULE) { \ > + vlog_insert_module(&VLM_##MODULE.list); \ > + } \ -- Russell Bryant _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev