mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
s390_dump.h: Add DF_S390_DUMPER_MAGIC_SIZE constant
Add DF_S390_DUMPER_MAGIC_SIZE constant to s390_dump.h. Use it instead of hardcoded length when processing dumper magics in zgetdump code. Signed-off-by: Mikhail Zaslonko <zaslonko@linux.ibm.com> Acked-by: Alexander Egorenkov <egorenar@linux.ibm.com> Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
This commit is contained in:
committed by
Steffen Eiden
parent
8f99e7c4ea
commit
23e9156f43
@@ -26,6 +26,7 @@
|
||||
#define DF_S390_EM_STR "DUMP_END"
|
||||
#define DF_S390_CPU_MAX 512
|
||||
#define DF_S390_MAGIC_BLK_ECKD 3
|
||||
#define DF_S390_DUMPER_MAGIC_SIZE 7
|
||||
#define DF_S390_DUMPER_MAGIC32 "ZECKD31"
|
||||
#define DF_S390_DUMPER_MAGIC64 "ZECKD64"
|
||||
#define DF_S390_DUMPER_MAGIC_EXT "XECKD64"
|
||||
|
||||
@@ -153,14 +153,17 @@ void df_s390_dumper_read(struct zg_fh *fh, int blk_size,
|
||||
dumper->version = 0;
|
||||
switch (dumper->version) {
|
||||
case 1:
|
||||
if (strncmp(dumper->magic, DF_S390_DUMPER_MAGIC_EXT, 7) == 0 ||
|
||||
strncmp(dumper->magic, DF_S390_DUMPER_MAGIC_MV_EXT, 7) == 0)
|
||||
if (strncmp(dumper->magic, DF_S390_DUMPER_MAGIC_EXT,
|
||||
DF_S390_DUMPER_MAGIC_SIZE) == 0 ||
|
||||
strncmp(dumper->magic, DF_S390_DUMPER_MAGIC_MV_EXT,
|
||||
DF_S390_DUMPER_MAGIC_SIZE) == 0)
|
||||
dumper->size = STAGE2_DUMPER_SIZE_V3;
|
||||
else
|
||||
dumper->size = STAGE2_DUMPER_SIZE_V1;
|
||||
break;
|
||||
case 2:
|
||||
if (strncmp(dumper->magic, DF_S390_DUMPER_MAGIC_EXT, 7) == 0)
|
||||
if (strncmp(dumper->magic, DF_S390_DUMPER_MAGIC_EXT,
|
||||
DF_S390_DUMPER_MAGIC_SIZE) == 0)
|
||||
dumper->size = STAGE2_DUMPER_SIZE_ZLIB;
|
||||
else
|
||||
dumper->size = STAGE2_DUMPER_SIZE_V2;
|
||||
|
||||
@@ -73,8 +73,8 @@ static struct {
|
||||
struct df_s390_dumper dumper;
|
||||
int dump_incomplete;
|
||||
bool extended;
|
||||
u64 magic_number; /* Reference value to compare with */
|
||||
char dumper_magic[7]; /* Reference value to compare with */
|
||||
u64 magic_number; /* Reference value to compare with */
|
||||
char dumper_magic[DF_S390_DUMPER_MAGIC_SIZE]; /* Reference value to compare with */
|
||||
} l;
|
||||
|
||||
/*
|
||||
@@ -273,7 +273,7 @@ static void vol_init(struct vol *vol, struct vol_parm *vol_parm, int ssid,
|
||||
l.dump_incomplete = 1;
|
||||
}
|
||||
|
||||
if (strncmp(vol->dumper.magic, l.dumper_magic, 7) != 0) {
|
||||
if (strncmp(vol->dumper.magic, l.dumper_magic, DF_S390_DUMPER_MAGIC_SIZE) != 0) {
|
||||
vol->sign = SIGN_INVALID;
|
||||
l.dump_incomplete = 1;
|
||||
}
|
||||
@@ -507,7 +507,7 @@ static int mv_dumper_read(void)
|
||||
ZG_CHECK_NONE) == -1)
|
||||
return -ENODEV;
|
||||
df_s390_dumper_read(g.fh, l.blk_size, &l.dumper);
|
||||
if (strncmp(l.dumper.magic, l.dumper_magic, 7) != 0)
|
||||
if (strncmp(l.dumper.magic, l.dumper_magic, DF_S390_DUMPER_MAGIC_SIZE) != 0)
|
||||
return -ENODEV;
|
||||
table_read(g.fh, l.blk_size, &l.table);
|
||||
return 0;
|
||||
@@ -567,10 +567,12 @@ static void set_magic_numbers(void)
|
||||
{
|
||||
if (l.extended) {
|
||||
l.magic_number = DF_S390_MAGIC_EXT;
|
||||
memcpy(l.dumper_magic, DF_S390_DUMPER_MAGIC_MV_EXT, 7);
|
||||
memcpy(l.dumper_magic, DF_S390_DUMPER_MAGIC_MV_EXT,
|
||||
DF_S390_DUMPER_MAGIC_SIZE);
|
||||
} else {
|
||||
l.magic_number = DF_S390_MAGIC;
|
||||
memcpy(l.dumper_magic, DF_S390_DUMPER_MAGIC_MV, 7);
|
||||
memcpy(l.dumper_magic, DF_S390_DUMPER_MAGIC_MV,
|
||||
DF_S390_DUMPER_MAGIC_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,14 +34,17 @@ static int dumper_read_eckd(int blk_size)
|
||||
df_s390_dumper_read(g.fh, blk_size, &l.dumper);
|
||||
|
||||
if (l.extended) {
|
||||
if (strncmp(l.dumper.magic, DF_S390_DUMPER_MAGIC_EXT, 7) != 0)
|
||||
if (strncmp(l.dumper.magic, DF_S390_DUMPER_MAGIC_EXT,
|
||||
DF_S390_DUMPER_MAGIC_SIZE) != 0)
|
||||
return -ENODEV;
|
||||
l.dumper_arch = DFI_ARCH_64;
|
||||
return 0;
|
||||
}
|
||||
if (strncmp(l.dumper.magic, DF_S390_DUMPER_MAGIC64, 7) == 0) {
|
||||
if (strncmp(l.dumper.magic, DF_S390_DUMPER_MAGIC64,
|
||||
DF_S390_DUMPER_MAGIC_SIZE) == 0) {
|
||||
l.dumper_arch = DFI_ARCH_64;
|
||||
} else if (strncmp(l.dumper.magic, DF_S390_DUMPER_MAGIC32, 7) == 0) {
|
||||
} else if (strncmp(l.dumper.magic, DF_S390_DUMPER_MAGIC32,
|
||||
DF_S390_DUMPER_MAGIC_SIZE) == 0) {
|
||||
l.dumper_arch = DFI_ARCH_32;
|
||||
} else if (memcmp(l.dumper.magic, OLD_DUMPER_HEX_INSTR1, 4) == 0 &&
|
||||
l.dumper.version == 0) {
|
||||
@@ -59,15 +62,17 @@ static int dumper_read_eckd(int blk_size)
|
||||
static int dumper_check_fba(struct df_s390_dumper *dumper)
|
||||
{
|
||||
if (l.extended) {
|
||||
if (strncmp(dumper->magic, DF_S390_DUMPER_MAGIC_FBA_EXT, 7)
|
||||
!= 0)
|
||||
if (strncmp(dumper->magic, DF_S390_DUMPER_MAGIC_FBA_EXT,
|
||||
DF_S390_DUMPER_MAGIC_SIZE) != 0)
|
||||
return -ENODEV;
|
||||
l.dumper_arch = DFI_ARCH_64;
|
||||
return 0;
|
||||
}
|
||||
if (strncmp(dumper->magic, DF_S390_DUMPER_MAGIC64_FBA, 7) == 0) {
|
||||
if (strncmp(dumper->magic, DF_S390_DUMPER_MAGIC64_FBA,
|
||||
DF_S390_DUMPER_MAGIC_SIZE) == 0) {
|
||||
l.dumper_arch = DFI_ARCH_64;
|
||||
} else if (strncmp(dumper->magic, DF_S390_DUMPER_MAGIC32_FBA, 7) == 0) {
|
||||
} else if (strncmp(dumper->magic, DF_S390_DUMPER_MAGIC32_FBA,
|
||||
DF_S390_DUMPER_MAGIC_SIZE) == 0) {
|
||||
l.dumper_arch = DFI_ARCH_32;
|
||||
} else if (memcmp(dumper->magic, OLD_DUMPER_HEX_INSTR1, 4) == 0 &&
|
||||
memcmp(&dumper->size, OLD_DUMPER_HEX_INSTR2, 2) == 0) {
|
||||
|
||||
Reference in New Issue
Block a user