lib: Introduce sbi_dprintf() API
This patch introduces new sbi_dprintf() API for runtime debug prints. The sbi_dprintf() will print to console for a given HART only when SBI_SCRATCH_DEBUG_PRINTS option in enabled in sbi_scratch for this HART. We can now add debug prints using sbi_dprintf() at important places in OpenSBI sources. These debug prints will only show up when previous booting stage or compile time parameter sets the SBI_SCRATCH_DEBUG_PRINTS option in scratch space. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
b1318e578b
commit
dbff3e9f12
|
@ -31,6 +31,10 @@ int __printf(3, 4) sbi_snprintf(char *out, u32 out_sz, const char *format, ...);
|
||||||
int __printf(1, 2) sbi_printf(const char *format, ...);
|
int __printf(1, 2) sbi_printf(const char *format, ...);
|
||||||
|
|
||||||
struct sbi_scratch;
|
struct sbi_scratch;
|
||||||
|
|
||||||
|
int __printf(2, 3) sbi_dprintf(struct sbi_scratch *scratch,
|
||||||
|
const char *format, ...);
|
||||||
|
|
||||||
int sbi_console_init(struct sbi_scratch *scratch);
|
int sbi_console_init(struct sbi_scratch *scratch);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -74,6 +74,8 @@ struct sbi_scratch {
|
||||||
enum sbi_scratch_options {
|
enum sbi_scratch_options {
|
||||||
/** Disable prints during boot */
|
/** Disable prints during boot */
|
||||||
SBI_SCRATCH_NO_BOOT_PRINTS = (1 << 0),
|
SBI_SCRATCH_NO_BOOT_PRINTS = (1 << 0),
|
||||||
|
/** Enable runtime debug prints */
|
||||||
|
SBI_SCRATCH_DEBUG_PRINTS = (1 << 1),
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Get pointer to sbi_scratch for current HART */
|
/** Get pointer to sbi_scratch for current HART */
|
||||||
|
|
|
@ -375,6 +375,19 @@ int sbi_printf(const char *format, ...)
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int sbi_dprintf(struct sbi_scratch *scratch, const char *format, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
int retval = 0;
|
||||||
|
|
||||||
|
va_start(args, format);
|
||||||
|
if (scratch->options & SBI_SCRATCH_DEBUG_PRINTS)
|
||||||
|
retval = print(NULL, NULL, format, args);
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
int sbi_console_init(struct sbi_scratch *scratch)
|
int sbi_console_init(struct sbi_scratch *scratch)
|
||||||
{
|
{
|
||||||
console_plat = sbi_platform_ptr(scratch);
|
console_plat = sbi_platform_ptr(scratch);
|
||||||
|
|
Loading…
Reference in New Issue