drivers/md/dm-vdo/logger.h

Source file repositories/reference/linux-study-clean/drivers/md/dm-vdo/logger.h

File Facts

System
Linux kernel
Corpus path
drivers/md/dm-vdo/logger.h
Extension
.h
Size
3162 bytes
Lines
101
Domain
Driver Families
Bucket
drivers/md
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

if (__ratelimit(&_rs)) {                                  \
			log_fn(__VA_ARGS__);                              \
		}                                                         \
	} while (0)

int vdo_get_log_level(void);

void vdo_log_embedded_message(int priority, const char *module, const char *prefix,
			      const char *fmt1, va_list args1, const char *fmt2, ...)
	__printf(4, 0) __printf(6, 7);

void vdo_log_backtrace(int priority);

/* All log functions will preserve the caller's value of errno. */

#define vdo_log_strerror(priority, errnum, ...) \
	__vdo_log_strerror(priority, errnum, VDO_LOGGING_MODULE_NAME, __VA_ARGS__)

int __vdo_log_strerror(int priority, int errnum, const char *module,
		       const char *format, ...)
	__printf(4, 5);

int vdo_vlog_strerror(int priority, int errnum, const char *module, const char *format,
		      va_list args)
	__printf(4, 0);

/* Log an error prefixed with the string associated with the errnum. */
#define vdo_log_error_strerror(errnum, ...) \
	vdo_log_strerror(VDO_LOG_ERR, errnum, __VA_ARGS__)

#define vdo_log_debug_strerror(errnum, ...) \
	vdo_log_strerror(VDO_LOG_DEBUG, errnum, __VA_ARGS__)

#define vdo_log_info_strerror(errnum, ...) \
	vdo_log_strerror(VDO_LOG_INFO, errnum, __VA_ARGS__)

#define vdo_log_warning_strerror(errnum, ...) \
	vdo_log_strerror(VDO_LOG_WARNING, errnum, __VA_ARGS__)

#define vdo_log_fatal_strerror(errnum, ...) \
	vdo_log_strerror(VDO_LOG_CRIT, errnum, __VA_ARGS__)

#define vdo_log_message(priority, ...) \
	__vdo_log_message(priority, VDO_LOGGING_MODULE_NAME, __VA_ARGS__)

void __vdo_log_message(int priority, const char *module, const char *format, ...)
	__printf(3, 4);

#define vdo_log_debug(...) vdo_log_message(VDO_LOG_DEBUG, __VA_ARGS__)

#define vdo_log_info(...) vdo_log_message(VDO_LOG_INFO, __VA_ARGS__)

#define vdo_log_warning(...) vdo_log_message(VDO_LOG_WARNING, __VA_ARGS__)

#define vdo_log_error(...) vdo_log_message(VDO_LOG_ERR, __VA_ARGS__)

#define vdo_log_fatal(...) vdo_log_message(VDO_LOG_CRIT, __VA_ARGS__)

void vdo_pause_for_logger(void);
#endif /* VDO_LOGGER_H */

Annotation

Implementation Notes