zipl: define __section macro and make use of it

Signed-off-by: Philipp Rudo <prudo@linux.ibm.com>
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
Philipp Rudo
2019-10-08 19:34:50 +02:00
committed by Jan Höppner
parent c7fcb457b0
commit 154734efc7
8 changed files with 20 additions and 14 deletions

View File

@@ -31,6 +31,7 @@
#define __packed __attribute__((packed))
#define __aligned(x) __attribute__((aligned(x)))
#define __may_alias __attribute__((may_alias))
#define __section(x) __attribute__((__section__(#x)))
typedef unsigned long long u64;
typedef signed long long s64;

View File

@@ -9,6 +9,8 @@
* it under the terms of the MIT license. See LICENSE for details.
*/
#include "lib/zt_common.h"
#include "eckd2dump.h"
#include "error.h"
#include "stage2dump.h"
@@ -19,8 +21,7 @@
/*
* Magic number at start of dump record
*/
uint64_t magic __attribute__((section(".stage2.head")))
= 0x584d554c54363401ULL; /* XMULT64, version 1 */
uint64_t __section(.stage2.head) magic = 0x584d554c54363401ULL; /* XMULT64, version 1 */
/*
* Parameter format for ECKD MV dumper (13 bytes):
@@ -59,8 +60,7 @@ struct mvdump_parm_table {
(MAX_DUMP_VOLUMES * (sizeof(struct mvdump_param) + 1))];
} __packed;
static struct mvdump_parm_table mvdump_table
__attribute__((section(".eckd2dump_mv.tail")));
static struct mvdump_parm_table __section(.eckd2dump_mv.tail) mvdump_table;
static int volnr_current;

View File

@@ -9,6 +9,8 @@
* it under the terms of the MIT license. See LICENSE for details.
*/
#include "lib/zt_common.h"
#include "eckd2dump.h"
#include "error.h"
#include "stage2dump.h"
@@ -16,8 +18,7 @@
/*
* Magic number at start of dump record
*/
uint64_t magic __attribute__((section(".stage2.head"))) =
0x5845434b44363401ULL; /* "XECKD64", version 1 */
uint64_t __section(.stage2.head) magic = 0x5845434b44363401ULL; /* "XECKD64", version 1 */
/*
* ECKD parameter block passed by zipl

View File

@@ -9,6 +9,7 @@
* it under the terms of the MIT license. See LICENSE for details.
*/
#include "lib/zt_common.h"
#include "error.h"
#include "fba.h"
#include "stage2dump.h"
@@ -20,8 +21,7 @@
/*
* Magic number at start of dump record
*/
uint64_t magic __attribute__((section(".stage2.head")))
= 0x5844464241363401ULL; /* XDFBA64, version 1 */
uint64_t __section(.stage2.head) magic = 0x5844464241363401ULL; /* XDFBA64, version 1 */
/*
* FBA dump device partition specification

View File

@@ -9,6 +9,8 @@
* it under the terms of the MIT license. See LICENSE for details.
*/
#include "lib/zt_common.h"
#include "error.h"
#include "libc.h"
#include "menu.h"
@@ -141,4 +143,4 @@ void panic_notify(unsigned long UNUSED(reason))
{
}
uint64_t stage2_head __attribute__((section(".stage2.head")));
uint64_t __section(.stage2.head) stage2_head;

View File

@@ -11,6 +11,8 @@
#include <stdarg.h>
#include "lib/zt_common.h"
#include "error.h"
#include "sclp.h"
#include "stage2dump.h"
@@ -34,8 +36,7 @@ struct ipib_info {
/*
* Tail parameters
*/
struct stage2dump_parm_tail parm_tail
__attribute__ ((section(".stage2dump.tail"))) = {
struct stage2dump_parm_tail parm_tail = {
.mem_upper_limit = 0xffffffffffffffffULL,
};

View File

@@ -28,8 +28,7 @@ struct stage2dump_parm_tail {
uint64_t mem_upper_limit;
} __packed;
extern struct stage2dump_parm_tail parm_tail
__attribute__ ((section(".stage2dump.tail")));
extern struct stage2dump_parm_tail __section(.stage2dump.tail) parm_tail;
/*
* S390 dump format defines

View File

@@ -9,6 +9,8 @@
* it under the terms of the MIT license. See LICENSE for details.
*/
#include "lib/zt_common.h"
#include "cio.h"
#include "error.h"
#include "libc.h"
@@ -33,7 +35,7 @@ struct tape_head {
uint64_t ccw2;
} __packed;
struct tape_head tape_head __attribute__((section(".stage2.head"))) = {
struct tape_head __section(.stage2.head) tape_head = {
.psw = 0x0008000080002018ULL, /* Start code at 0x2018 */
.ccw1 = 0x0700000060000001ULL, /* Rewind ccw */
.ccw2 = 0x0200200020003000ULL, /* CCW to load dump tool to 0x2000 */