-/* Convenience macros. These assume that THIS_MODULE is defined as the current
- * module, as set up by e.g. the VLOG_DEFINE_MODULE macro above.
+void vlog_abort(const struct vlog_module *, const char *format, ...)
+ PRINTF_FORMAT (2, 3) NO_RETURN;
+void vlog_abort_valist(const struct vlog_module *, const char *format, va_list)
+ PRINTF_FORMAT (2, 0) NO_RETURN;
+
+void vlog_rate_limit(const struct vlog_module *, enum vlog_level,
+ struct vlog_rate_limit *, const char *, ...)
+ PRINTF_FORMAT (4, 5);
+
+/* 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.