pc-bios/s390-ccw: define loadparm length
PATCH 1/1 pc-bios/s390-ccw: define loadparm length
Loadparm is defined by the s390 architecture to be 8 bytes in length. Let's define this size in the s390-ccw bios.
--- pc-bios/s390-ccw/iplb.h | 4 +++- pc-bios/s390-ccw/main.c | 8 ++++---- pc-bios/s390-ccw/sclp.c | 2 +- pc-bios/s390-ccw/sclp.h | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-)
pc-bios/s390-ccw/iplb.h +3 -1
@@ -12,6 +12,8 @@ #ifndef IPLB_H #define IPLB_H +#define LOADPARM_LEN 8 + struct IplBlockCcw { uint8_t reserved0[85]; uint8_t ssid;
@@ -61,7 +63,7 @@ struct IplParameterBlock {uint8_t pbt;uint8_t flags;uint16_t reserved01; -uint8_t loadparm[8 ]; +uint8_t loadparm[LOADPARM_LEN ];union {IplBlockCcw ccw;IplBlockFcp fcp;
pc-bios/s390-ccw/main.c +4 -4
@@ -15,7 +15,7 @@ char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));static SubChannelId blk_schid = { .one =1 }; IplParameterBlock iplb __attribute__((__aligned__(PAGE_SIZE))); -static char loadparm_str[9 ] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }; +static char loadparm_str[LOADPARM_LEN +1 ] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 };QemuIplParameters qipl;#define LOADPARM_PROMPT "PROMPT "
@@ -80,13 +80,13 @@ static bool find_dev(Schib *schib, int dev_no)static void menu_setup (void ) { -if (memcmp (loadparm_str,LOADPARM_PROMPT ,8 ) ==0 ) { +if (memcmp (loadparm_str,LOADPARM_PROMPT ,LOADPARM_LEN ) ==0 ) {menu_set_parms (QIPL_FLAG_BM_OPTS_CMD ,0 );return ; }/* If loadparm was set to any other value, then do not enable menu */ -if (memcmp (loadparm_str,LOADPARM_EMPTY ,8 ) !=0 ) { +if (memcmp (loadparm_str,LOADPARM_EMPTY ,LOADPARM_LEN ) !=0 ) {return ; }
@@ -117,7 +117,7 @@ static void virtio_setup(void)enable_mss_facility ();sclp_get_loadparm_ascii (loadparm_str); -memcpy (ldp +10 , loadparm_str,8 ); +memcpy (ldp +10 , loadparm_str,LOADPARM_LEN );sclp_print (ldp);memcpy (&qipl, early_qipl,sizeof (QemuIplParameters));
pc-bios/s390-ccw/sclp.c +1 -1
@@ -114,7 +114,7 @@ void sclp_get_loadparm_ascii(char *loadparm)memset ((char *)_sccb,0 ,sizeof (ReadInfo)); sccb->h.length =sizeof (ReadInfo);if (!sclp_service_call (SCLP_CMDW_READ_SCP_INFO , sccb)) { -ebcdic_to_ascii ((char *) sccb->loadparm, loadparm,8 ); +ebcdic_to_ascii ((char *) sccb->loadparm, loadparm,LOADPARM_LEN ); } }
pc-bios/s390-ccw/sclp.h +1 -1
@@ -56,7 +56,7 @@ typedef struct ReadInfo {uint16_t rnmax;uint8_t rnsize;uint8_t reserved[13 ]; -uint8_t loadparm[8 ]; +uint8_t loadparm[LOADPARM_LEN ]; } __attribute__((packed)) ReadInfo; typedef struct SCCB {
Signature · 1 line
2.7.4
Quoted 91 lines · Collin Walling
Loadparm is defined by the s390 architecture to be 8 bytes in length. Let's define this size in the s390-ccw bios.
Suggested-by Laszlo Ersek <[email protected]>Signed-off-by Collin Walling <[email protected]>--- pc-bios/s390-ccw/iplb.h | 4 +++- pc-bios/s390-ccw/main.c | 8 ++++---- pc-bios/s390-ccw/sclp.c | 2 +- pc-bios/s390-ccw/sclp.h | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-)pc-bios/s390-ccw/iplb.h +3
-1@@ -12,6 +12,8 @@ #ifndef IPLB_H #define IPLB_H +#define LOADPARM_LEN 8 + struct IplBlockCcw { uint8_t reserved0[85]; uint8_t ssid;@@ -61,7 +63,7 @@ struct IplParameterBlock {uint8_t pbt;uint8_t flags;uint16_t reserved01; -uint8_t loadparm[8 ]; +uint8_t loadparm[LOADPARM_LEN ];union {IplBlockCcw ccw;IplBlockFcp fcp;pc-bios/s390-ccw/main.c +4
-4@@ -15,7 +15,7 @@ char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));static SubChannelId blk_schid = { .one =1 }; IplParameterBlock iplb __attribute__((__aligned__(PAGE_SIZE))); -static char loadparm_str[9 ] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }; +static char loadparm_str[LOADPARM_LEN +1 ] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 };QemuIplParameters qipl;#define LOADPARM_PROMPT "PROMPT "@@ -80,13 +80,13 @@ static bool find_dev(Schib *schib, int dev_no)static void menu_setup (void ) { -if (memcmp (loadparm_str,LOADPARM_PROMPT ,8 ) ==0 ) { +if (memcmp (loadparm_str,LOADPARM_PROMPT ,LOADPARM_LEN ) ==0 ) {menu_set_parms (QIPL_FLAG_BM_OPTS_CMD ,0 );return ; }/* If loadparm was set to any other value, then do not enable menu */ -if (memcmp (loadparm_str,LOADPARM_EMPTY ,8 ) !=0 ) { +if (memcmp (loadparm_str,LOADPARM_EMPTY ,LOADPARM_LEN ) !=0 ) {return ; }@@ -117,7 +117,7 @@ static void virtio_setup(void)enable_mss_facility ();sclp_get_loadparm_ascii (loadparm_str); -memcpy (ldp +10 , loadparm_str,8 ); +memcpy (ldp +10 , loadparm_str,LOADPARM_LEN );sclp_print (ldp);memcpy (&qipl, early_qipl,sizeof (QemuIplParameters));pc-bios/s390-ccw/sclp.c +1
-1@@ -114,7 +114,7 @@ void sclp_get_loadparm_ascii(char *loadparm)memset ((char *)_sccb,0 ,sizeof (ReadInfo)); sccb->h.length =sizeof (ReadInfo);if (!sclp_service_call (SCLP_CMDW_READ_SCP_INFO , sccb)) { -ebcdic_to_ascii ((char *) sccb->loadparm, loadparm,8 ); +ebcdic_to_ascii ((char *) sccb->loadparm, loadparm,LOADPARM_LEN ); } }pc-bios/s390-ccw/sclp.h +0
-0
pc-bios/s390-ccw/sclp.h typedef struct ReadInfo { · line 62
Quoted 8 lines
pc-bios/s390-ccw/sclp.h +1
-1@@ -56,7 +56,7 @@ typedef struct ReadInfo {uint16_t rnmax;uint8_t rnsize;uint8_t reserved[13 ]; -uint8_t loadparm[8 ]; +uint8_t loadparm[LOADPARM_LEN ]; } __attribute__((packed)) ReadInfo; typedef struct SCCB {
I didn't look for more possible occurrences, but the above look correct to me.
Thanks
Laszlo
Quoted 91 lines · Collin Walling
Loadparm is defined by the s390 architecture to be 8 bytes in length. Let's define this size in the s390-ccw bios.
Suggested-by Laszlo Ersek <[email protected]>Signed-off-by Collin Walling <[email protected]>--- pc-bios/s390-ccw/iplb.h | 4 +++- pc-bios/s390-ccw/main.c | 8 ++++---- pc-bios/s390-ccw/sclp.c | 2 +- pc-bios/s390-ccw/sclp.h | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-)pc-bios/s390-ccw/iplb.h +3
-1@@ -12,6 +12,8 @@ #ifndef IPLB_H #define IPLB_H +#define LOADPARM_LEN 8 + struct IplBlockCcw { uint8_t reserved0[85]; uint8_t ssid;@@ -61,7 +63,7 @@ struct IplParameterBlock {uint8_t pbt;uint8_t flags;uint16_t reserved01; -uint8_t loadparm[8 ]; +uint8_t loadparm[LOADPARM_LEN ];union {IplBlockCcw ccw;IplBlockFcp fcp;pc-bios/s390-ccw/main.c +4
-4@@ -15,7 +15,7 @@ char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));static SubChannelId blk_schid = { .one =1 }; IplParameterBlock iplb __attribute__((__aligned__(PAGE_SIZE))); -static char loadparm_str[9 ] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 }; +static char loadparm_str[LOADPARM_LEN +1 ] = {0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 };QemuIplParameters qipl;#define LOADPARM_PROMPT "PROMPT "@@ -80,13 +80,13 @@ static bool find_dev(Schib *schib, int dev_no)static void menu_setup (void ) { -if (memcmp (loadparm_str,LOADPARM_PROMPT ,8 ) ==0 ) { +if (memcmp (loadparm_str,LOADPARM_PROMPT ,LOADPARM_LEN ) ==0 ) {menu_set_parms (QIPL_FLAG_BM_OPTS_CMD ,0 );return ; }/* If loadparm was set to any other value, then do not enable menu */ -if (memcmp (loadparm_str,LOADPARM_EMPTY ,8 ) !=0 ) { +if (memcmp (loadparm_str,LOADPARM_EMPTY ,LOADPARM_LEN ) !=0 ) {return ; }@@ -117,7 +117,7 @@ static void virtio_setup(void)enable_mss_facility ();sclp_get_loadparm_ascii (loadparm_str); -memcpy (ldp +10 , loadparm_str,8 ); +memcpy (ldp +10 , loadparm_str,LOADPARM_LEN );sclp_print (ldp);memcpy (&qipl, early_qipl,sizeof (QemuIplParameters));pc-bios/s390-ccw/sclp.c +1
-1@@ -114,7 +114,7 @@ void sclp_get_loadparm_ascii(char *loadparm)memset ((char *)_sccb,0 ,sizeof (ReadInfo)); sccb->h.length =sizeof (ReadInfo);if (!sclp_service_call (SCLP_CMDW_READ_SCP_INFO , sccb)) { -ebcdic_to_ascii ((char *) sccb->loadparm, loadparm,8 ); +ebcdic_to_ascii ((char *) sccb->loadparm, loadparm,LOADPARM_LEN ); } }pc-bios/s390-ccw/sclp.h +0
-0
pc-bios/s390-ccw/sclp.h typedef struct ReadInfo { · line 62
Quoted 8 lines
pc-bios/s390-ccw/sclp.h +1
-1@@ -56,7 +56,7 @@ typedef struct ReadInfo {uint16_t rnmax;uint8_t rnsize;uint8_t reserved[13 ]; -uint8_t loadparm[8 ]; +uint8_t loadparm[LOADPARM_LEN ]; } __attribute__((packed)) ReadInfo; typedef struct SCCB {
Quoted 11 lines · On Tue, 29 May 2018 00:40:09 -0400 Collin Walling <[email protected]> wrote:
Loadparm is defined by the s390 architecture to be 8 bytes in length. Let's define this size in the s390-ccw bios.
Suggested-by Laszlo Ersek <[email protected]>Signed-off-by Collin Walling <[email protected]>--- pc-bios/s390-ccw/iplb.h | 4 +++- pc-bios/s390-ccw/main.c | 8 ++++---- pc-bios/s390-ccw/sclp.c | 2 +- pc-bios/s390-ccw/sclp.h | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-)
Thomas, I assume this will go via your tree?
Quoted 15 lines · Cornelia Huck
Quoted 11 lines · On Tue, 29 May 2018 00:40:09 -0400 Collin Walling <[email protected]> wrote:
Loadparm is defined by the s390 architecture to be 8 bytes in length. Let's define this size in the s390-ccw bios.
Suggested-by Laszlo Ersek <[email protected]>Signed-off-by Collin Walling <[email protected]>--- pc-bios/s390-ccw/iplb.h | 4 +++- pc-bios/s390-ccw/main.c | 8 ++++---- pc-bios/s390-ccw/sclp.c | 2 +- pc-bios/s390-ccw/sclp.h | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-)
Quoted 3 lines
Reviewed-by Cornelia Huck <[email protected]>Thomas, I assume this will go via your tree?
Yes, I'll pick it up (I'll include it with the new version of the pxelinux.cfg patches once they are ready).
Thomas
Quoted 11 lines · Collin Walling
Loadparm is defined by the s390 architecture to be 8 bytes in length. Let's define this size in the s390-ccw bios.
Suggested-by Laszlo Ersek<[email protected]>Signed-off-by Collin Walling<[email protected]>--- pc-bios/s390-ccw/iplb.h | 4 +++- pc-bios/s390-ccw/main.c | 8 ++++---- pc-bios/s390-ccw/sclp.c | 2 +- pc-bios/s390-ccw/sclp.h | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-)