summaryrefslogtreecommitdiffstats
path: root/arch/s390/boot/boot.h
diff options
context:
space:
mode:
authorVasily Gorbik <gor@linux.ibm.com>2020-11-10 17:05:26 +0100
committerHeiko Carstens <hca@linux.ibm.com>2020-11-20 19:19:11 +0100
commit9a78c70a1ba03cb4a8fb96964c6ee77236dd487b (patch)
treec68daab383cd02a40e1d7ef012c00834e4fef45a /arch/s390/boot/boot.h
parents390/ftrace: assume -mhotpatch or -mrecord-mcount always available (diff)
downloadlinux-9a78c70a1ba03cb4a8fb96964c6ee77236dd487b.tar.xz
linux-9a78c70a1ba03cb4a8fb96964c6ee77236dd487b.zip
s390/decompressor: add decompressor_printk
The decompressor does not have any special debug means. Running the kernel under qemu with gdb is helpful but tedious exercise if done repeatedly. It is also not applicable to debugging under LPAR and z/VM. One special thing which stands out is a working sclp_early_printk, which could be used once the kernel switches to 64-bit addressing mode. But sclp_early_printk does not provide any string formating capabilities. Formatting and printing string without printk-alike function is a not fun. The lack of printk-alike function means people would save up on testing and introduce more bugs. So, finally, provide decompressor_printk function, which fits on one screen and trades features for simplicity. It only supports "%s", "%x" and "%lx" specifiers and zero padding for hex values. Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/boot/boot.h')
-rw-r--r--arch/s390/boot/boot.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/s390/boot/boot.h b/arch/s390/boot/boot.h
index d5cf2e8c5eb4..ca485bfa4e50 100644
--- a/arch/s390/boot/boot.h
+++ b/arch/s390/boot/boot.h
@@ -4,6 +4,8 @@
#include <linux/types.h>
+#include <linux/compiler.h>
+
void startup_kernel(void);
unsigned long detect_memory(void);
bool is_ipl_block_dump(void);
@@ -14,6 +16,7 @@ void verify_facilities(void);
void print_missing_facilities(void);
void print_pgm_check_info(void);
unsigned long get_random_base(unsigned long safe_addr);
+void __printf(1, 2) decompressor_printk(const char *fmt, ...);
extern const char kernel_version[];
extern unsigned long memory_limit;