-/* Convenience macros. To use these, define THIS_MODULE as a macro that
- * expands to the module used by the current source file, e.g.
- * #include "vlog.h"
- * #define THIS_MODULE VLM_netlink
+/* Creates and initializes a global instance of a module named MODULE, and
+ * 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) \
+ static struct vlog_module *const THIS_MODULE = &VLM_##MODULE;
+
+/* Convenience macros. These assume that THIS_MODULE points to a "struct
+ * vlog_module" for the current module, as set up by e.g. the
+ * VLOG_DEFINE_MODULE macro above.
+ *