qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Jason J. Herne" <jjherne@linux.ibm.com>
To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org, cohuck@redhat.com,
	pasic@linux.ibm.com, alifm@linux.ibm.com, borntraeger@de.ibm.com
Subject: [Qemu-devel] [PATCH v3 06/16] s390-bios: Clean up cio.h
Date: Fri,  1 Mar 2019 13:59:26 -0500	[thread overview]
Message-ID: <1551466776-29123-7-git-send-email-jjherne@linux.ibm.com> (raw)
In-Reply-To: <1551466776-29123-1-git-send-email-jjherne@linux.ibm.com>

Add proper typedefs to all structs and modify all bit fields to use consistent
formatting.

Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com>
Reviewed-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: Farhan Ali <alifm@linux.ibm.com>
---
 pc-bios/s390-ccw/cio.h      | 152 ++++++++++++++++++++++----------------------
 pc-bios/s390-ccw/s390-ccw.h |   8 ---
 2 files changed, 76 insertions(+), 84 deletions(-)

diff --git a/pc-bios/s390-ccw/cio.h b/pc-bios/s390-ccw/cio.h
index 1a0795f..2f58256 100644
--- a/pc-bios/s390-ccw/cio.h
+++ b/pc-bios/s390-ccw/cio.h
@@ -17,35 +17,35 @@
  * path management control word
  */
 struct pmcw {
-    __u32 intparm;        /* interruption parameter */
-    __u32 qf      : 1;    /* qdio facility */
-    __u32 w       : 1;
-    __u32 isc     : 3;    /* interruption sublass */
-    __u32 res5    : 3;    /* reserved zeros */
-    __u32 ena     : 1;    /* enabled */
-    __u32 lm      : 2;    /* limit mode */
-    __u32 mme     : 2;    /* measurement-mode enable */
-    __u32 mp      : 1;    /* multipath mode */
-    __u32 tf      : 1;    /* timing facility */
-    __u32 dnv     : 1;    /* device number valid */
-    __u32 dev     : 16;   /* device number */
-    __u8  lpm;            /* logical path mask */
-    __u8  pnom;           /* path not operational mask */
-    __u8  lpum;           /* last path used mask */
-    __u8  pim;            /* path installed mask */
-    __u16 mbi;            /* measurement-block index */
-    __u8  pom;            /* path operational mask */
-    __u8  pam;            /* path available mask */
-    __u8  chpid[8];       /* CHPID 0-7 (if available) */
-    __u32 unused1 : 8;    /* reserved zeros */
-    __u32 st      : 3;    /* subchannel type */
-    __u32 unused2 : 18;   /* reserved zeros */
-    __u32 mbfc    : 1;    /* measurement block format control */
-    __u32 xmwme   : 1;    /* extended measurement word mode enable */
-    __u32 csense  : 1;    /* concurrent sense; can be enabled ...*/
-                /*  ... per MSCH, however, if facility */
-                /*  ... is not installed, this results */
-                /*  ... in an operand exception.       */
+    __u32 intparm;      /* interruption parameter */
+    __u32 qf:1;         /* qdio facility */
+    __u32 w:1;
+    __u32 isc:3;        /* interruption sublass */
+    __u32 res5:3;       /* reserved zeros */
+    __u32 ena:1;        /* enabled */
+    __u32 lm:2;         /* limit mode */
+    __u32 mme:2;        /* measurement-mode enable */
+    __u32 mp:1;         /* multipath mode */
+    __u32 tf:1;         /* timing facility */
+    __u32 dnv:1;        /* device number valid */
+    __u32 dev:16;       /* device number */
+    __u8  lpm;          /* logical path mask */
+    __u8  pnom;         /* path not operational mask */
+    __u8  lpum;         /* last path used mask */
+    __u8  pim;          /* path installed mask */
+    __u16 mbi;          /* measurement-block index */
+    __u8  pom;          /* path operational mask */
+    __u8  pam;          /* path available mask */
+    __u8  chpid[8];     /* CHPID 0-7 (if available) */
+    __u32 unused1:8;    /* reserved zeros */
+    __u32 st:3;         /* subchannel type */
+    __u32 unused2:18;   /* reserved zeros */
+    __u32 mbfc:1;       /* measurement block format control */
+    __u32 xmwme:1;      /* extended measurement word mode enable */
+    __u32 csense:1;     /* concurrent sense; can be enabled ...*/
+                        /*  ... per MSCH, however, if facility */
+                        /*  ... is not installed, this results */
+                        /*  ... in an operand exception.       */
 } __attribute__ ((packed));
 
 /* Target SCHIB configuration. */
@@ -77,28 +77,28 @@ struct scsw {
 /*
  * subchannel information block
  */
-struct schib {
+typedef struct schib {
     struct pmcw pmcw;     /* path management control word */
     struct scsw scsw;     /* subchannel status word */
     __u64 mba;            /* measurement block address */
     __u8 mda[4];          /* model dependent area */
-} __attribute__ ((packed,aligned(4)));
-
-struct subchannel_id {
-        __u32 cssid  : 8;
-        __u32        : 4;
-        __u32 m      : 1;
-        __u32 ssid   : 2;
-        __u32 one    : 1;
-        __u32 sch_no : 16;
-} __attribute__ ((packed, aligned(4)));
+} __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;
+} __attribute__ ((packed, aligned(4))) SubChannelId;
 
 struct chsc_header {
     __u16 length;
     __u16 code;
 } __attribute__((packed));
 
-struct chsc_area_sda {
+typedef struct chsc_area_sda {
     struct chsc_header request;
     __u8 reserved1:4;
     __u8 format:4;
@@ -111,29 +111,29 @@ struct chsc_area_sda {
     __u32 reserved5:4;
     __u32 format2:4;
     __u32 reserved6:24;
-} __attribute__((packed));
+} __attribute__((packed)) ChscAreaSda;
 
 /*
  * TPI info structure
  */
 struct tpi_info {
     struct subchannel_id schid;
-    __u32 intparm;         /* interruption parameter */
-    __u32 adapter_IO : 1;
-    __u32 reserved2  : 1;
-    __u32 isc        : 3;
-    __u32 reserved3  : 12;
-    __u32 int_type   : 3;
-    __u32 reserved4  : 12;
+    __u32 intparm;      /* interruption parameter */
+    __u32 adapter_IO:1;
+    __u32 reserved2:1;
+    __u32 isc:3;
+    __u32 reserved3:12;
+    __u32 int_type:3;
+    __u32 reserved4:12;
 } __attribute__ ((packed, aligned(4)));
 
 /* channel command word (type 1) */
-struct ccw1 {
+typedef struct ccw1 {
     __u8 cmd_code;
     __u8 flags;
     __u16 count;
     __u32 cda;
-} __attribute__ ((packed, aligned(8)));
+} __attribute__ ((packed, aligned(8))) Ccw1;
 
 #define CCW_FLAG_DC              0x80
 #define CCW_FLAG_CC              0x40
@@ -162,27 +162,27 @@ struct ccw1 {
 /*
  * Command-mode operation request block
  */
-struct cmd_orb {
-    __u32 intparm;    /* interruption parameter */
-    __u32 key:4;      /* flags, like key, suspend control, etc. */
-    __u32 spnd:1;     /* suspend control */
-    __u32 res1:1;     /* reserved */
-    __u32 mod:1;      /* modification control */
-    __u32 sync:1;     /* synchronize control */
-    __u32 fmt:1;      /* format control */
-    __u32 pfch:1;     /* prefetch control */
-    __u32 isic:1;     /* initial-status-interruption control */
-    __u32 alcc:1;     /* address-limit-checking control */
-    __u32 ssic:1;     /* suppress-suspended-interr. control */
-    __u32 res2:1;     /* reserved */
-    __u32 c64:1;      /* IDAW/QDIO 64 bit control  */
-    __u32 i2k:1;      /* IDAW 2/4kB block size control */
-    __u32 lpm:8;      /* logical path mask */
-    __u32 ils:1;      /* incorrect length */
-    __u32 zero:6;     /* reserved zeros */
-    __u32 orbx:1;     /* ORB extension control */
-    __u32 cpa;    /* channel program address */
-}  __attribute__ ((packed, aligned(4)));
+typedef struct cmd_orb {
+    __u32 intparm;  /* interruption parameter */
+    __u32 key:4;    /* flags, like key, suspend control, etc. */
+    __u32 spnd:1;   /* suspend control */
+    __u32 res1:1;   /* reserved */
+    __u32 mod:1;    /* modification control */
+    __u32 sync:1;   /* synchronize control */
+    __u32 fmt:1;    /* format control */
+    __u32 pfch:1;   /* prefetch control */
+    __u32 isic:1;   /* initial-status-interruption control */
+    __u32 alcc:1;   /* address-limit-checking control */
+    __u32 ssic:1;   /* suppress-suspended-interr. control */
+    __u32 res2:1;   /* reserved */
+    __u32 c64:1;    /* IDAW/QDIO 64 bit control  */
+    __u32 i2k:1;    /* IDAW 2/4kB block size control */
+    __u32 lpm:8;    /* logical path mask */
+    __u32 ils:1;    /* incorrect length */
+    __u32 zero:6;   /* reserved zeros */
+    __u32 orbx:1;   /* ORB extension control */
+    __u32 cpa;      /* channel program address */
+}  __attribute__ ((packed, aligned(4))) CmdOrb;
 
 struct ciw {
     __u8 type;
@@ -193,7 +193,7 @@ struct ciw {
 /*
  * sense-id response buffer layout
  */
-struct senseid {
+typedef struct senseid {
     /* common part */
     __u8  reserved;   /* always 0x'FF' */
     __u16 cu_type;    /* control unit type */
@@ -203,15 +203,15 @@ struct senseid {
     __u8  unused;     /* padding byte */
     /* extended part */
     struct ciw ciw[62];
-}  __attribute__ ((packed, aligned(4)));
+}  __attribute__ ((packed, aligned(4))) SenseId;
 
 /* interruption response block */
-struct irb {
+typedef struct irb {
     struct scsw scsw;
     __u32 esw[5];
     __u32 ecw[8];
     __u32 emw[8];
-}  __attribute__ ((packed, aligned(4)));
+}  __attribute__ ((packed, aligned(4))) Irb;
 
 /*
  * Some S390 specific IO instructions as inline
diff --git a/pc-bios/s390-ccw/s390-ccw.h b/pc-bios/s390-ccw/s390-ccw.h
index 9828aa2..241c6d0 100644
--- a/pc-bios/s390-ccw/s390-ccw.h
+++ b/pc-bios/s390-ccw/s390-ccw.h
@@ -49,14 +49,6 @@ typedef unsigned long long __u64;
 #include "cio.h"
 #include "iplb.h"
 
-typedef struct irb Irb;
-typedef struct ccw1 Ccw1;
-typedef struct cmd_orb CmdOrb;
-typedef struct schib Schib;
-typedef struct chsc_area_sda ChscAreaSda;
-typedef struct senseid SenseId;
-typedef struct subchannel_id SubChannelId;
-
 /* start.s */
 void disabled_wait(void);
 void consume_sclp_int(void);
-- 
2.7.4

  parent reply	other threads:[~2019-03-01 19:01 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-01 18:59 [Qemu-devel] [PATCH v3 00/16] s390: vfio-ccw dasd ipl support Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 01/16] s390 vfio-ccw: Add bootindex property and IPLB data Jason J. Herne
2019-03-04 13:40   ` Cornelia Huck
2019-03-06 14:55     ` Jason J. Herne
2019-03-06 15:27       ` Cornelia Huck
2019-03-06 16:28         ` Jason J. Herne
2019-03-06 17:31           ` Cornelia Huck
2019-03-04 16:09   ` Farhan Ali
2019-03-06 15:16     ` Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 02/16] s390-bios: decouple cio setup from virtio Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 03/16] s390-bios: decouple common boot logic " Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 04/16] s390-bios: Extend find_dev() for non-virtio devices Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 05/16] s390-bios: Factor finding boot device out of virtio code path Jason J. Herne
2019-03-04 17:07   ` Cornelia Huck
2019-03-04 19:26     ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2019-03-05  8:38       ` Cornelia Huck
2019-03-01 18:59 ` Jason J. Herne [this message]
2019-03-04 17:23   ` [Qemu-devel] [PATCH v3 06/16] s390-bios: Clean up cio.h Cornelia Huck
2019-03-05  5:51   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2019-03-06 18:42     ` Jason J. Herne
2019-03-07  8:08       ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 07/16] s390-bios: Decouple channel i/o logic from virtio Jason J. Herne
2019-03-04 17:28   ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 08/16] s390-bios: Map low core memory Jason J. Herne
2019-03-04 17:46   ` Cornelia Huck
2019-03-05  6:27   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2019-03-06 19:28     ` Jason J. Herne
2019-03-07  8:11       ` Cornelia Huck
2019-03-06 19:42     ` Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 09/16] s390-bios: ptr2u32 and u32toptr Jason J. Herne
2019-03-05  7:22   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2019-03-07 14:11     ` Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 10/16] s390-bios: Support for running format-0/1 channel programs Jason J. Herne
2019-03-04 18:25   ` Cornelia Huck
2019-03-07 19:25     ` Jason J. Herne
2019-03-08  9:19       ` Cornelia Huck
2019-03-05  7:32   ` [Qemu-devel] [qemu-s390x] " Thomas Huth
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 11/16] s390-bios: cio error handling Jason J. Herne
2019-03-04 18:35   ` Cornelia Huck
2019-03-07 19:31     ` Jason J. Herne
2019-03-08  9:21       ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 12/16] s390-bios: Refactor virtio to run channel programs via cio Jason J. Herne
2019-03-05 12:30   ` Cornelia Huck
2019-03-07 15:09     ` Jason J. Herne
2019-03-07 15:37       ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 13/16] s390-bios: Use control unit type to determine boot method Jason J. Herne
2019-03-05 12:27   ` Cornelia Huck
2019-03-07 16:27     ` Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 14/16] s390-bios: Add channel command codes/structs needed for dasd-ipl Jason J. Herne
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 15/16] s390-bios: Support booting from real dasd device Jason J. Herne
2019-03-05 13:03   ` Cornelia Huck
2019-03-01 18:59 ` [Qemu-devel] [PATCH v3 16/16] s390-bios: dasd-ipl: Use control unit type to customize error data Jason J. Herne
2019-03-04 17:02   ` [Qemu-devel] [qemu-s390x] " Eric Farman
2019-03-07 14:38     ` Jason J. Herne
2019-03-07 18:15       ` Eric Farman
2019-03-07 18:26         ` Jason J. Herne
2019-03-04 17:51   ` [Qemu-devel] " Cornelia Huck
2019-03-01 21:26 ` [Qemu-devel] [PATCH v3 00/16] s390: vfio-ccw dasd ipl support no-reply
2019-03-01 21:30 ` no-reply
2019-03-01 21:35 ` no-reply
2019-03-01 21:38 ` no-reply
2019-03-01 21:45 ` no-reply
2019-03-01 21:49 ` no-reply
2019-03-04 16:24 ` Cornelia Huck
2019-03-04 17:53   ` Christian Borntraeger
2019-03-04 17:28 ` no-reply
2019-03-04 17:51 ` no-reply
2019-03-05  5:55 ` no-reply
2019-03-05  7:30 ` no-reply
2019-03-05  8:42 ` no-reply
2019-03-05 13:08 ` no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1551466776-29123-7-git-send-email-jjherne@linux.ibm.com \
    --to=jjherne@linux.ibm.com \
    --cc=alifm@linux.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=pasic@linux.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).