Files
u-boot/include/linux/printk.h
Simon Glass 789f4d44bb linux: printk: Fix KERN_* macros for string concatenation
Change KERN_* macros from empty definitions to empty strings ("").
This fixes string concatenation in printf-style calls like:
  printk(KERN_ERR "message")

Without this fix, KERN_ERR expands to nothing and the string
concatenation fails.

Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
2025-12-22 05:07:01 -07:00

93 lines
1.9 KiB
C

#ifndef __KERNEL_PRINTK__
#define __KERNEL_PRINTK__
#include <log.h>
#include <stdio.h>
#include <linux/compiler.h>
#define KERN_EMERG ""
#define KERN_ALERT ""
#define KERN_CRIT ""
#define KERN_ERR ""
#define KERN_WARNING ""
#define KERN_NOTICE ""
#define KERN_INFO ""
#define KERN_DEBUG ""
#define KERN_CONT ""
#define printk(fmt, ...) \
printf(fmt, ##__VA_ARGS__)
/*
* Dummy printk for disabled debugging statements to use whilst maintaining
* gcc's format checking.
*/
#define no_printk(fmt, ...) \
({ \
if (0) \
printk(fmt, ##__VA_ARGS__); \
0; \
})
#ifndef pr_fmt
#define pr_fmt(fmt) fmt
#endif
#define pr_emerg(fmt, ...) \
({ \
CONFIG_LOGLEVEL > 0 ? log_emer(fmt, ##__VA_ARGS__) : 0; \
})
#define pr_alert(fmt, ...) \
({ \
CONFIG_LOGLEVEL > 1 ? log_alert(fmt, ##__VA_ARGS__) : 0; \
})
#define pr_crit(fmt, ...) \
({ \
CONFIG_LOGLEVEL > 2 ? log_crit(fmt, ##__VA_ARGS__) : 0; \
})
#define pr_err(fmt, ...) \
({ \
CONFIG_LOGLEVEL > 3 ? log_err(fmt, ##__VA_ARGS__) : 0; \
})
#define pr_warn(fmt, ...) \
({ \
CONFIG_LOGLEVEL > 4 ? log_warning(fmt, ##__VA_ARGS__) : 0; \
})
#define pr_notice(fmt, ...) \
({ \
CONFIG_LOGLEVEL > 5 ? log_notice(fmt, ##__VA_ARGS__) : 0; \
})
#define pr_info(fmt, ...) \
({ \
CONFIG_LOGLEVEL > 6 ? log_info(fmt, ##__VA_ARGS__) : 0; \
})
#define pr_debug(fmt, ...) \
({ \
CONFIG_LOGLEVEL > 7 ? log_debug(fmt, ##__VA_ARGS__) : 0; \
})
#define pr_devel(fmt, ...) \
({ \
CONFIG_LOGLEVEL > 7 ? log_debug(fmt, ##__VA_ARGS__) : 0; \
})
#ifdef CONFIG_LOG
#define pr_cont(fmt, ...) \
({ \
gd->logl_prev < CONFIG_LOGLEVEL ? \
log_cont(fmt, ##__VA_ARGS__) : 0; \
})
#else
#define pr_cont(fmt, ...) \
printk(fmt, ##__VA_ARGS__)
#endif
#define printk_once(fmt, ...) \
printk(fmt, ##__VA_ARGS__)
struct va_format {
const char *fmt;
va_list *va;
};
#endif