Files
s390-tools/genprotimg/boot/stage3b.h
Steffen Eiden 8058921f58 Reorganize boot-loader header files
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>
2023-07-11 08:21:48 +02:00

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 */