Commit e6d393d0 authored by Janosch Frank's avatar Janosch Frank Committed by Thomas Huth
Browse files

pc-bios: s390x: Get rid of magic offsets into the lowcore



If we have a lowcore struct that has members for offsets that we want
to touch, why not use it?

Signed-off-by: default avatarJanosch Frank <frankja@linux.ibm.com>
Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
Message-Id: <20200624075226.92728-5-frankja@linux.ibm.com>
Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
parent 12ea90db
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -122,12 +122,17 @@ typedef struct schib {
} __attribute__ ((packed, aligned(4))) Schib;

typedef struct subchannel_id {
        __u32 cssid:8;
        __u32:4;
        __u32 m:1;
        __u32 ssid:2;
        __u32 one:1;
        __u32 sch_no:16;
    union {
        struct {
            __u16 cssid:8;
            __u16 reserved:4;
            __u16 m:1;
            __u16 ssid:2;
            __u16 one:1;
        };
        __u16 sch_id;
    };
    __u16 sch_no;
} __attribute__ ((packed, aligned(4))) SubChannelId;

struct chsc_header {
+3 −5
Original line number Diff line number Diff line
@@ -36,11 +36,9 @@ LowCore *lowcore; /* Yes, this *is* a pointer to address 0 */
 */
void write_subsystem_identification(void)
{
    SubChannelId *schid = (SubChannelId *) 184;
    uint32_t *zeroes = (uint32_t *) 188;

    *schid = blk_schid;
    *zeroes = 0;
    lowcore->subchannel_id = blk_schid.sch_id;
    lowcore->subchannel_nr = blk_schid.sch_no;
    lowcore->io_int_parm = 0;
}

void write_iplb_location(void)