diff --git a/zipl/boot/sclp.h b/zipl/boot/sclp.h index ffee5879..2da9d8e3 100644 --- a/zipl/boot/sclp.h +++ b/zipl/boot/sclp.h @@ -53,19 +53,21 @@ struct gds_subvector { uint8_t key; } __packed; +/* Structure must not have any padding */ struct sccb_header { uint16_t length; uint8_t function_code; uint8_t control_mask[3]; uint16_t response_code; -} __packed; +}; +/* Structure must not have any padding */ struct evbuf_header { uint16_t length; uint8_t type; uint8_t flags; uint16_t _reserved; -} __packed; +}; struct mto { uint16_t length; diff --git a/zipl/boot/sclp_stage3.h b/zipl/boot/sclp_stage3.h index ae0c05c3..72c8a58d 100644 --- a/zipl/boot/sclp_stage3.h +++ b/zipl/boot/sclp_stage3.h @@ -40,10 +40,11 @@ struct sdias_evbuf { uint16_t dbs; } __packed; +/* Structure must not have any padding */ struct sdias_sccb { struct sccb_header header; struct sdias_evbuf evbuf; -} __packed; +}; int sclp_hsa_copy(void *, unsigned long, unsigned long); diff --git a/zipl/boot/stage3.h b/zipl/boot/stage3.h index 3a020017..3119e619 100644 --- a/zipl/boot/stage3.h +++ b/zipl/boot/stage3.h @@ -124,11 +124,12 @@ struct ipl_rl_hdr { } __packed; /* IPL Report Block header */ +/* Structure must not have any padding */ struct ipl_rb_hdr { uint32_t len; uint8_t rbt; uint8_t reserved1[11]; -} __packed; +}; /* IPL Report Block types */ enum ipl_rbt { @@ -162,12 +163,13 @@ struct ipl_rb_component_entry { #define IPL_RB_COMPONENT_FLAG_SIGNED 0x80 #define IPL_RB_COMPONENT_FLAG_VERIFIED 0x40 +/* Structure must not have any padding */ struct ipl_rb_components { uint32_t len; uint8_t rbt; uint8_t reserved1[11]; struct ipl_rb_component_entry entries[]; -} __packed; +}; extern unsigned long long _parm_addr; /* address of parmline */ extern unsigned long long _initrd_addr; /* address of initrd */