[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [qemu-s390x] [PATCH v6 01/12] s390-ccw: refactor boot map table code
From: |
Viktor Mihajlovski |
Subject: |
Re: [qemu-s390x] [PATCH v6 01/12] s390-ccw: refactor boot map table code |
Date: |
Fri, 16 Feb 2018 13:19:20 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
On 16.02.2018 11:42, Thomas Huth wrote:
> On 15.02.2018 23:54, Collin L. Walling wrote:
>> Some ECKD bootmap code was using structs designed for SCSI.
>> Even though this works, it confuses readability. Add a new
>> BootMapTable struct to assist with readability in bootmap
>> entry code. Also:
>>
>> - replace ScsiMbr in ECKD code with appropriate structs
>> - fix read_block messages to reflect BootMapTable
>> - fixup ipl_scsi to use BootMapTable (referred to as Program Table)
>> - defined value for maximum table entries
>>
>> Signed-off-by: Collin L. Walling <address@hidden>
>> ---
>> pc-bios/s390-ccw/bootmap.c | 60
>> +++++++++++++++++++++-------------------------
>> pc-bios/s390-ccw/bootmap.h | 14 +++++++++--
>> 2 files changed, 39 insertions(+), 35 deletions(-)
> [...]
>> diff --git a/pc-bios/s390-ccw/bootmap.h b/pc-bios/s390-ccw/bootmap.h
>> index cf99a4c..850b655 100644
>> --- a/pc-bios/s390-ccw/bootmap.h
>> +++ b/pc-bios/s390-ccw/bootmap.h
>> @@ -53,6 +53,15 @@ typedef union BootMapPointer {
>> ExtEckdBlockPtr xeckd;
>> } __attribute__ ((packed)) BootMapPointer;
>>
>> +#define MAX_TABLE_ENTRIES 30
>> +
>> +/* aka Program Table */
>> +typedef struct BootMapTable {
>> + uint8_t magic[4];
>> + uint8_t reserved[12];
>> + BootMapPointer entry[];
>> +} __attribute__ ((packed)) BootMapTable;
>> +
>> typedef struct ComponentEntry {
>> ScsiBlockPtr data;
>> uint8_t pad[7];
>> @@ -69,8 +78,9 @@ typedef struct ComponentHeader {
>> typedef struct ScsiMbr {
>> uint8_t magic[4];
>> uint32_t version_id;
>> - uint8_t reserved[8];
>> - ScsiBlockPtr blockptr[];
>> + uint8_t reserved1[8];
>> + ScsiBlockPtr pt; /* block pointer to program table */
>> + uint8_t reserved2[120];
>
> Did you want to pad the struct to 512 bytes here? If so, I think that
> should have been "uint32_t" instead of "uint8_t" or "480" instead of "120" ?
>
Should probably be uint8_t[480] then to stay in style with other
reserved field definitions.
>> } __attribute__ ((packed)) ScsiMbr;
>>
>> #define ZIPL_MAGIC "zIPL"
>>
>
> Thomas
>
--
Regards,
Viktor Mihajlovski
[qemu-s390x] [PATCH v6 06/12] s390-ccw: parse and set boot menu options, Collin L. Walling, 2018/02/15
[qemu-s390x] [PATCH v6 09/12] s390-ccw: print zipl boot menu, Collin L. Walling, 2018/02/15
[qemu-s390x] [PATCH v6 03/12] s390-ccw: refactor IPL structs, Collin L. Walling, 2018/02/15