mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
include/boot/s390.h relies on s390 specific kernel headers. However, some tools used this header for non-s390 code (outside of boot-loaders). To solve this the PSW and PAGE_SIZE definitions are now in separate header files. All includes for s390.h which are not in boot-loader code are replaced with one of psw.h or page.h. This fixes the compilation failure on ppc64le due to conflicting types for `__vector128`. Fixes: https://github.com/ibm-s390-linux/s390-tools/issues/151 Reviewed-by: Jan Höppner <hoeppner@linux.ibm.com> Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com> Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
43 lines
892 B
C
43 lines
892 B
C
/*
|
|
* Main program for stage3b bootloader
|
|
*
|
|
* Copyright IBM Corp. 2020
|
|
*
|
|
* s390-tools is free software; you can redistribute it and/or modify
|
|
* it under the terms of the MIT license. See LICENSE for details.
|
|
*/
|
|
|
|
#ifndef STAGE3B_H
|
|
#define STAGE3B_H
|
|
|
|
#include "lib/zt_common.h"
|
|
#include "boot/loaders_layout.h"
|
|
|
|
#define STAGE3B_ENTRY STAGE3_ENTRY
|
|
#define STAGE3B_LOAD_ADDRESS STAGE3B_ENTRY
|
|
|
|
|
|
#ifndef __ASSEMBLER__
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "boot/psw.h"
|
|
|
|
/* Must not have any padding included */
|
|
struct memblob {
|
|
uint64_t src;
|
|
uint64_t size;
|
|
};
|
|
STATIC_ASSERT(sizeof(struct memblob) == 2 * 8)
|
|
|
|
/* Must not have any padding included */
|
|
struct stage3b_args {
|
|
struct memblob kernel;
|
|
struct memblob cmdline;
|
|
struct memblob initrd;
|
|
struct psw_t psw;
|
|
};
|
|
STATIC_ASSERT(sizeof(struct stage3b_args) == 3 * sizeof(struct memblob) + 16)
|
|
#endif /* __ASSEMBLER__ */
|
|
#endif /* STAGE3B_H */
|