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