diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2019-02-25 19:23:39 +0300 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2019-04-26 13:34:05 +0300 |
commit | 937347ac56bfca10c76153ac700e88a4b41f7130 (patch) | |
tree | a0a3cbeb32426330394e3b35b42270f2992aeb46 /arch/s390/include/asm/ipl.h | |
parent | 9641b8cc733f70a5400aa7e6831de4542c46a94c (diff) | |
download | linux-937347ac56bfca10c76153ac700e88a4b41f7130.tar.xz |
s390/ipl: add helper functions to create an IPL report
PR: Adjusted to the use in kexec_file later.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Philipp Rudo <prudo@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/ipl.h')
-rw-r--r-- | arch/s390/include/asm/ipl.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/arch/s390/include/asm/ipl.h b/arch/s390/include/asm/ipl.h index 878f6fd5f2e7..bf62af49af06 100644 --- a/arch/s390/include/asm/ipl.h +++ b/arch/s390/include/asm/ipl.h @@ -81,6 +81,33 @@ extern struct ipl_info ipl_info; extern void setup_ipl(void); extern void set_os_info_reipl_block(void); +struct ipl_report { + struct ipl_parameter_block *ipib; + struct list_head components; + struct list_head certificates; + size_t size; +}; + +struct ipl_report_component { + struct list_head list; + struct ipl_rb_component_entry entry; +}; + +struct ipl_report_certificate { + struct list_head list; + struct ipl_rb_certificate_entry entry; + void *key; +}; + +struct kexec_buf; +struct ipl_report *ipl_report_init(struct ipl_parameter_block *ipib); +void *ipl_report_finish(struct ipl_report *report); +int ipl_report_free(struct ipl_report *report); +int ipl_report_add_component(struct ipl_report *report, struct kexec_buf *kbuf, + unsigned char flags, unsigned short cert); +int ipl_report_add_certificate(struct ipl_report *report, void *key, + unsigned long addr, unsigned long len); + /* * DIAG 308 support */ |