aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm/scsw.h
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.vnet.ibm.com>2012-08-28 16:44:51 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2012-09-26 15:44:57 +0200
commitd2fc439b99820cccd6978918c260730dd97bf373 (patch)
tree2f71bb936d3c2a9c3ad2a86a662492229aa07660 /arch/s390/include/asm/scsw.h
parents390: add eadm facility bits (diff)
downloadlinux-dev-d2fc439b99820cccd6978918c260730dd97bf373.tar.xz
linux-dev-d2fc439b99820cccd6978918c260730dd97bf373.zip
s390: add eadm related structures
Add structures to be used by the eadm subchannel driver. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/scsw.h')
-rw-r--r--arch/s390/include/asm/scsw.h36
1 files changed, 34 insertions, 2 deletions
diff --git a/arch/s390/include/asm/scsw.h b/arch/s390/include/asm/scsw.h
index 8096bfe67424..4af99cdaddf5 100644
--- a/arch/s390/include/asm/scsw.h
+++ b/arch/s390/include/asm/scsw.h
@@ -1,7 +1,7 @@
/*
* Helper functions for scsw access.
*
- * Copyright IBM Corp. 2008, 2009
+ * Copyright IBM Corp. 2008, 2012
* Author(s): Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
*/
@@ -100,14 +100,46 @@ struct tm_scsw {
} __attribute__ ((packed));
/**
+ * struct eadm_scsw - subchannel status word for eadm subchannels
+ * @key: subchannel key
+ * @eswf: esw format
+ * @cc: deferred condition code
+ * @ectl: extended control
+ * @fctl: function control
+ * @actl: activity control
+ * @stctl: status control
+ * @aob: AOB address
+ * @dstat: device status
+ * @cstat: subchannel status
+ */
+struct eadm_scsw {
+ u32 key:4;
+ u32:1;
+ u32 eswf:1;
+ u32 cc:2;
+ u32:6;
+ u32 ectl:1;
+ u32:2;
+ u32 fctl:3;
+ u32 actl:7;
+ u32 stctl:5;
+ u32 aob;
+ u32 dstat:8;
+ u32 cstat:8;
+ u32:16;
+} __packed;
+
+/**
* union scsw - subchannel status word
* @cmd: command-mode SCSW
* @tm: transport-mode SCSW
+ * @eadm: eadm SCSW
*/
union scsw {
struct cmd_scsw cmd;
struct tm_scsw tm;
-} __attribute__ ((packed));
+ struct eadm_scsw eadm;
+} __packed;
#define SCSW_FCTL_CLEAR_FUNC 0x1
#define SCSW_FCTL_HALT_FUNC 0x2