Pablo Greco e6a3ae
From fc07c126ddd0796c1996b2e527e69486c9c848b9 Mon Sep 17 00:00:00 2001
Pablo Greco e6a3ae
From: Thomas Huth <thuth@redhat.com>
Pablo Greco e6a3ae
Date: Mon, 14 Oct 2019 10:06:33 +0100
Pablo Greco e6a3ae
Subject: [PATCH 08/21] s390-bios: Clean up cio.h
Pablo Greco e6a3ae
Pablo Greco e6a3ae
RH-Author: Thomas Huth <thuth@redhat.com>
Pablo Greco e6a3ae
Message-id: <20191014100645.22862-6-thuth@redhat.com>
Pablo Greco e6a3ae
Patchwork-id: 91782
Pablo Greco e6a3ae
O-Subject: [RHEL-8.2.0 qemu-kvm PATCH v2 05/17] s390-bios: Clean up cio.h
Pablo Greco e6a3ae
Bugzilla: 1664376
Pablo Greco e6a3ae
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
Pablo Greco e6a3ae
RH-Acked-by: David Hildenbrand <david@redhat.com>
Pablo Greco e6a3ae
RH-Acked-by: Jens Freimann <jfreimann@redhat.com>
Pablo Greco e6a3ae
Pablo Greco e6a3ae
From: "Jason J. Herne" <jjherne@linux.ibm.com>
Pablo Greco e6a3ae
Pablo Greco e6a3ae
Add proper typedefs to all structs and modify all bit fields to use consistent
Pablo Greco e6a3ae
formatting.
Pablo Greco e6a3ae
Pablo Greco e6a3ae
Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Pablo Greco e6a3ae
Reviewed-by: Collin Walling <walling@linux.ibm.com>
Pablo Greco e6a3ae
Reviewed-by: Farhan Ali <alifm@linux.ibm.com>
Pablo Greco e6a3ae
Acked-by: Cornelia Huck <cohuck@redhat.com>
Pablo Greco e6a3ae
Reviewed-by: Thomas Huth <thuth@redhat.com>
Pablo Greco e6a3ae
Message-Id: <1554388475-18329-5-git-send-email-jjherne@linux.ibm.com>
Pablo Greco e6a3ae
Signed-off-by: Thomas Huth <thuth@redhat.com>
Pablo Greco e6a3ae
(cherry picked from commit d96c5db77f1058ee9509554f43b945c66b3aa7c9)
Pablo Greco e6a3ae
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
Pablo Greco e6a3ae
---
Pablo Greco e6a3ae
 pc-bios/s390-ccw/cio.h      | 114 ++++++++++++++++++++++----------------------
Pablo Greco e6a3ae
 pc-bios/s390-ccw/s390-ccw.h |   8 ----
Pablo Greco e6a3ae
 2 files changed, 57 insertions(+), 65 deletions(-)
Pablo Greco e6a3ae
Pablo Greco e6a3ae
diff --git a/pc-bios/s390-ccw/cio.h b/pc-bios/s390-ccw/cio.h
Pablo Greco e6a3ae
index 1a0795f..ed5b2cb 100644
Pablo Greco e6a3ae
--- a/pc-bios/s390-ccw/cio.h
Pablo Greco e6a3ae
+++ b/pc-bios/s390-ccw/cio.h
Pablo Greco e6a3ae
@@ -17,35 +17,35 @@
Pablo Greco e6a3ae
  * path management control word
Pablo Greco e6a3ae
  */
Pablo Greco e6a3ae
 struct pmcw {
Pablo Greco e6a3ae
-    __u32 intparm;        /* interruption parameter */
Pablo Greco e6a3ae
-    __u32 qf      : 1;    /* qdio facility */
Pablo Greco e6a3ae
-    __u32 w       : 1;
Pablo Greco e6a3ae
-    __u32 isc     : 3;    /* interruption sublass */
Pablo Greco e6a3ae
-    __u32 res5    : 3;    /* reserved zeros */
Pablo Greco e6a3ae
-    __u32 ena     : 1;    /* enabled */
Pablo Greco e6a3ae
-    __u32 lm      : 2;    /* limit mode */
Pablo Greco e6a3ae
-    __u32 mme     : 2;    /* measurement-mode enable */
Pablo Greco e6a3ae
-    __u32 mp      : 1;    /* multipath mode */
Pablo Greco e6a3ae
-    __u32 tf      : 1;    /* timing facility */
Pablo Greco e6a3ae
-    __u32 dnv     : 1;    /* device number valid */
Pablo Greco e6a3ae
-    __u32 dev     : 16;   /* device number */
Pablo Greco e6a3ae
-    __u8  lpm;            /* logical path mask */
Pablo Greco e6a3ae
-    __u8  pnom;           /* path not operational mask */
Pablo Greco e6a3ae
-    __u8  lpum;           /* last path used mask */
Pablo Greco e6a3ae
-    __u8  pim;            /* path installed mask */
Pablo Greco e6a3ae
-    __u16 mbi;            /* measurement-block index */
Pablo Greco e6a3ae
-    __u8  pom;            /* path operational mask */
Pablo Greco e6a3ae
-    __u8  pam;            /* path available mask */
Pablo Greco e6a3ae
-    __u8  chpid[8];       /* CHPID 0-7 (if available) */
Pablo Greco e6a3ae
-    __u32 unused1 : 8;    /* reserved zeros */
Pablo Greco e6a3ae
-    __u32 st      : 3;    /* subchannel type */
Pablo Greco e6a3ae
-    __u32 unused2 : 18;   /* reserved zeros */
Pablo Greco e6a3ae
-    __u32 mbfc    : 1;    /* measurement block format control */
Pablo Greco e6a3ae
-    __u32 xmwme   : 1;    /* extended measurement word mode enable */
Pablo Greco e6a3ae
-    __u32 csense  : 1;    /* concurrent sense; can be enabled ...*/
Pablo Greco e6a3ae
-                /*  ... per MSCH, however, if facility */
Pablo Greco e6a3ae
-                /*  ... is not installed, this results */
Pablo Greco e6a3ae
-                /*  ... in an operand exception.       */
Pablo Greco e6a3ae
+    __u32 intparm;      /* interruption parameter */
Pablo Greco e6a3ae
+    __u32 qf:1;         /* qdio facility */
Pablo Greco e6a3ae
+    __u32 w:1;
Pablo Greco e6a3ae
+    __u32 isc:3;        /* interruption sublass */
Pablo Greco e6a3ae
+    __u32 res5:3;       /* reserved zeros */
Pablo Greco e6a3ae
+    __u32 ena:1;        /* enabled */
Pablo Greco e6a3ae
+    __u32 lm:2;         /* limit mode */
Pablo Greco e6a3ae
+    __u32 mme:2;        /* measurement-mode enable */
Pablo Greco e6a3ae
+    __u32 mp:1;         /* multipath mode */
Pablo Greco e6a3ae
+    __u32 tf:1;         /* timing facility */
Pablo Greco e6a3ae
+    __u32 dnv:1;        /* device number valid */
Pablo Greco e6a3ae
+    __u32 dev:16;       /* device number */
Pablo Greco e6a3ae
+    __u8  lpm;          /* logical path mask */
Pablo Greco e6a3ae
+    __u8  pnom;         /* path not operational mask */
Pablo Greco e6a3ae
+    __u8  lpum;         /* last path used mask */
Pablo Greco e6a3ae
+    __u8  pim;          /* path installed mask */
Pablo Greco e6a3ae
+    __u16 mbi;          /* measurement-block index */
Pablo Greco e6a3ae
+    __u8  pom;          /* path operational mask */
Pablo Greco e6a3ae
+    __u8  pam;          /* path available mask */
Pablo Greco e6a3ae
+    __u8  chpid[8];     /* CHPID 0-7 (if available) */
Pablo Greco e6a3ae
+    __u32 unused1:8;    /* reserved zeros */
Pablo Greco e6a3ae
+    __u32 st:3;         /* subchannel type */
Pablo Greco e6a3ae
+    __u32 unused2:18;   /* reserved zeros */
Pablo Greco e6a3ae
+    __u32 mbfc:1;       /* measurement block format control */
Pablo Greco e6a3ae
+    __u32 xmwme:1;      /* extended measurement word mode enable */
Pablo Greco e6a3ae
+    __u32 csense:1;     /* concurrent sense; can be enabled ...*/
Pablo Greco e6a3ae
+                        /*  ... per MSCH, however, if facility */
Pablo Greco e6a3ae
+                        /*  ... is not installed, this results */
Pablo Greco e6a3ae
+                        /*  ... in an operand exception.       */
Pablo Greco e6a3ae
 } __attribute__ ((packed));
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
 /* Target SCHIB configuration. */
Pablo Greco e6a3ae
@@ -77,28 +77,28 @@ struct scsw {
Pablo Greco e6a3ae
 /*
Pablo Greco e6a3ae
  * subchannel information block
Pablo Greco e6a3ae
  */
Pablo Greco e6a3ae
-struct schib {
Pablo Greco e6a3ae
+typedef struct schib {
Pablo Greco e6a3ae
     struct pmcw pmcw;     /* path management control word */
Pablo Greco e6a3ae
     struct scsw scsw;     /* subchannel status word */
Pablo Greco e6a3ae
     __u64 mba;            /* measurement block address */
Pablo Greco e6a3ae
     __u8 mda[4];          /* model dependent area */
Pablo Greco e6a3ae
-} __attribute__ ((packed,aligned(4)));
Pablo Greco e6a3ae
-
Pablo Greco e6a3ae
-struct subchannel_id {
Pablo Greco e6a3ae
-        __u32 cssid  : 8;
Pablo Greco e6a3ae
-        __u32        : 4;
Pablo Greco e6a3ae
-        __u32 m      : 1;
Pablo Greco e6a3ae
-        __u32 ssid   : 2;
Pablo Greco e6a3ae
-        __u32 one    : 1;
Pablo Greco e6a3ae
-        __u32 sch_no : 16;
Pablo Greco e6a3ae
-} __attribute__ ((packed, aligned(4)));
Pablo Greco e6a3ae
+} __attribute__ ((packed, aligned(4))) Schib;
Pablo Greco e6a3ae
+
Pablo Greco e6a3ae
+typedef struct subchannel_id {
Pablo Greco e6a3ae
+        __u32 cssid:8;
Pablo Greco e6a3ae
+        __u32:4;
Pablo Greco e6a3ae
+        __u32 m:1;
Pablo Greco e6a3ae
+        __u32 ssid:2;
Pablo Greco e6a3ae
+        __u32 one:1;
Pablo Greco e6a3ae
+        __u32 sch_no:16;
Pablo Greco e6a3ae
+} __attribute__ ((packed, aligned(4))) SubChannelId;
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
 struct chsc_header {
Pablo Greco e6a3ae
     __u16 length;
Pablo Greco e6a3ae
     __u16 code;
Pablo Greco e6a3ae
 } __attribute__((packed));
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
-struct chsc_area_sda {
Pablo Greco e6a3ae
+typedef struct chsc_area_sda {
Pablo Greco e6a3ae
     struct chsc_header request;
Pablo Greco e6a3ae
     __u8 reserved1:4;
Pablo Greco e6a3ae
     __u8 format:4;
Pablo Greco e6a3ae
@@ -111,29 +111,29 @@ struct chsc_area_sda {
Pablo Greco e6a3ae
     __u32 reserved5:4;
Pablo Greco e6a3ae
     __u32 format2:4;
Pablo Greco e6a3ae
     __u32 reserved6:24;
Pablo Greco e6a3ae
-} __attribute__((packed));
Pablo Greco e6a3ae
+} __attribute__((packed)) ChscAreaSda;
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
 /*
Pablo Greco e6a3ae
  * TPI info structure
Pablo Greco e6a3ae
  */
Pablo Greco e6a3ae
 struct tpi_info {
Pablo Greco e6a3ae
     struct subchannel_id schid;
Pablo Greco e6a3ae
-    __u32 intparm;         /* interruption parameter */
Pablo Greco e6a3ae
-    __u32 adapter_IO : 1;
Pablo Greco e6a3ae
-    __u32 reserved2  : 1;
Pablo Greco e6a3ae
-    __u32 isc        : 3;
Pablo Greco e6a3ae
-    __u32 reserved3  : 12;
Pablo Greco e6a3ae
-    __u32 int_type   : 3;
Pablo Greco e6a3ae
-    __u32 reserved4  : 12;
Pablo Greco e6a3ae
+    __u32 intparm;      /* interruption parameter */
Pablo Greco e6a3ae
+    __u32 adapter_IO:1;
Pablo Greco e6a3ae
+    __u32 reserved2:1;
Pablo Greco e6a3ae
+    __u32 isc:3;
Pablo Greco e6a3ae
+    __u32 reserved3:12;
Pablo Greco e6a3ae
+    __u32 int_type:3;
Pablo Greco e6a3ae
+    __u32 reserved4:12;
Pablo Greco e6a3ae
 } __attribute__ ((packed, aligned(4)));
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
 /* channel command word (type 1) */
Pablo Greco e6a3ae
-struct ccw1 {
Pablo Greco e6a3ae
+typedef struct ccw1 {
Pablo Greco e6a3ae
     __u8 cmd_code;
Pablo Greco e6a3ae
     __u8 flags;
Pablo Greco e6a3ae
     __u16 count;
Pablo Greco e6a3ae
     __u32 cda;
Pablo Greco e6a3ae
-} __attribute__ ((packed, aligned(8)));
Pablo Greco e6a3ae
+} __attribute__ ((packed, aligned(8))) Ccw1;
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
 #define CCW_FLAG_DC              0x80
Pablo Greco e6a3ae
 #define CCW_FLAG_CC              0x40
Pablo Greco e6a3ae
@@ -162,7 +162,7 @@ struct ccw1 {
Pablo Greco e6a3ae
 /*
Pablo Greco e6a3ae
  * Command-mode operation request block
Pablo Greco e6a3ae
  */
Pablo Greco e6a3ae
-struct cmd_orb {
Pablo Greco e6a3ae
+typedef struct cmd_orb {
Pablo Greco e6a3ae
     __u32 intparm;    /* interruption parameter */
Pablo Greco e6a3ae
     __u32 key:4;      /* flags, like key, suspend control, etc. */
Pablo Greco e6a3ae
     __u32 spnd:1;     /* suspend control */
Pablo Greco e6a3ae
@@ -182,7 +182,7 @@ struct cmd_orb {
Pablo Greco e6a3ae
     __u32 zero:6;     /* reserved zeros */
Pablo Greco e6a3ae
     __u32 orbx:1;     /* ORB extension control */
Pablo Greco e6a3ae
     __u32 cpa;    /* channel program address */
Pablo Greco e6a3ae
-}  __attribute__ ((packed, aligned(4)));
Pablo Greco e6a3ae
+}  __attribute__ ((packed, aligned(4))) CmdOrb;
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
 struct ciw {
Pablo Greco e6a3ae
     __u8 type;
Pablo Greco e6a3ae
@@ -193,7 +193,7 @@ struct ciw {
Pablo Greco e6a3ae
 /*
Pablo Greco e6a3ae
  * sense-id response buffer layout
Pablo Greco e6a3ae
  */
Pablo Greco e6a3ae
-struct senseid {
Pablo Greco e6a3ae
+typedef struct senseid {
Pablo Greco e6a3ae
     /* common part */
Pablo Greco e6a3ae
     __u8  reserved;   /* always 0x'FF' */
Pablo Greco e6a3ae
     __u16 cu_type;    /* control unit type */
Pablo Greco e6a3ae
@@ -203,15 +203,15 @@ struct senseid {
Pablo Greco e6a3ae
     __u8  unused;     /* padding byte */
Pablo Greco e6a3ae
     /* extended part */
Pablo Greco e6a3ae
     struct ciw ciw[62];
Pablo Greco e6a3ae
-}  __attribute__ ((packed, aligned(4)));
Pablo Greco e6a3ae
+}  __attribute__ ((packed, aligned(4))) SenseId;
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
 /* interruption response block */
Pablo Greco e6a3ae
-struct irb {
Pablo Greco e6a3ae
+typedef struct irb {
Pablo Greco e6a3ae
     struct scsw scsw;
Pablo Greco e6a3ae
     __u32 esw[5];
Pablo Greco e6a3ae
     __u32 ecw[8];
Pablo Greco e6a3ae
     __u32 emw[8];
Pablo Greco e6a3ae
-}  __attribute__ ((packed, aligned(4)));
Pablo Greco e6a3ae
+}  __attribute__ ((packed, aligned(4))) Irb;
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
 /*
Pablo Greco e6a3ae
  * Some S390 specific IO instructions as inline
Pablo Greco e6a3ae
diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
Pablo Greco e6a3ae
index 9828aa2..241c6d0 100644
Pablo Greco e6a3ae
--- a/pc-bios/s390-ccw/s390-ccw.h
Pablo Greco e6a3ae
+++ b/pc-bios/s390-ccw/s390-ccw.h
Pablo Greco e6a3ae
@@ -49,14 +49,6 @@ typedef unsigned long long __u64;
Pablo Greco e6a3ae
 #include "cio.h"
Pablo Greco e6a3ae
 #include "iplb.h"
Pablo Greco e6a3ae
 
Pablo Greco e6a3ae
-typedef struct irb Irb;
Pablo Greco e6a3ae
-typedef struct ccw1 Ccw1;
Pablo Greco e6a3ae
-typedef struct cmd_orb CmdOrb;
Pablo Greco e6a3ae
-typedef struct schib Schib;
Pablo Greco e6a3ae
-typedef struct chsc_area_sda ChscAreaSda;
Pablo Greco e6a3ae
-typedef struct senseid SenseId;
Pablo Greco e6a3ae
-typedef struct subchannel_id SubChannelId;
Pablo Greco e6a3ae
-
Pablo Greco e6a3ae
 /* start.s */
Pablo Greco e6a3ae
 void disabled_wait(void);
Pablo Greco e6a3ae
 void consume_sclp_int(void);
Pablo Greco e6a3ae
-- 
Pablo Greco e6a3ae
1.8.3.1
Pablo Greco e6a3ae