s390/sclp: Move declarations for sclp_sdias into separate header file
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Wed, 13 Nov 2013 09:38:27 +0000 (10:38 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 15 Nov 2013 13:08:39 +0000 (14:08 +0100)
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/sclp_sdias.c
drivers/s390/char/sclp_sdias.h [new file with mode: 0644]

index b103293..561a041 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * Sclp "store data in absolut storage"
+ * SCLP "store data in absolute storage"
  *
- * Copyright IBM Corp. 2003, 2007
+ * Copyright IBM Corp. 2003, 2013
  * Author(s): Michael Holzheu
  */
 
@@ -14,6 +14,7 @@
 #include <asm/debug.h>
 #include <asm/ipl.h>
 
+#include "sclp_sdias.h"
 #include "sclp.h"
 #include "sclp_rw.h"
 
 #define SDIAS_RETRIES 300
 #define SDIAS_SLEEP_TICKS 50
 
-#define EQ_STORE_DATA  0x0
-#define EQ_SIZE                0x1
-#define DI_FCP_DUMP    0x0
-#define ASA_SIZE_32    0x0
-#define ASA_SIZE_64    0x1
-#define EVSTATE_ALL_STORED     0x0
-#define EVSTATE_NO_DATA                0x3
-#define EVSTATE_PART_STORED    0x10
-
 static struct debug_info *sdias_dbf;
 
 static struct sclp_register sclp_sdias_register = {
        .send_mask = EVTYP_SDIAS_MASK,
 };
 
-struct sdias_evbuf {
-       struct  evbuf_header hdr;
-       u8      event_qual;
-       u8      data_id;
-       u64     reserved2;
-       u32     event_id;
-       u16     reserved3;
-       u8      asa_size;
-       u8      event_status;
-       u32     reserved4;
-       u32     blk_cnt;
-       u64     asa;
-       u32     reserved5;
-       u32     fbn;
-       u32     reserved6;
-       u32     lbn;
-       u16     reserved7;
-       u16     dbs;
-} __attribute__((packed));
-
-struct sdias_sccb {
-       struct sccb_header  hdr;
-       struct sdias_evbuf  evbuf;
-} __attribute__((packed));
-
 static struct sdias_sccb sccb __attribute__((aligned(4096)));
 static struct sdias_evbuf sdias_evbuf;
 
@@ -148,8 +115,8 @@ int sclp_sdias_blk_count(void)
        sccb.hdr.length = sizeof(sccb);
        sccb.evbuf.hdr.length = sizeof(struct sdias_evbuf);
        sccb.evbuf.hdr.type = EVTYP_SDIAS;
-       sccb.evbuf.event_qual = EQ_SIZE;
-       sccb.evbuf.data_id = DI_FCP_DUMP;
+       sccb.evbuf.event_qual = SDIAS_EQ_SIZE;
+       sccb.evbuf.data_id = SDIAS_DI_FCP_DUMP;
        sccb.evbuf.event_id = 4712;
        sccb.evbuf.dbs = 1;
 
@@ -208,13 +175,13 @@ int sclp_sdias_copy(void *dest, int start_blk, int nr_blks)
        sccb.evbuf.hdr.length = sizeof(struct sdias_evbuf);
        sccb.evbuf.hdr.type = EVTYP_SDIAS;
        sccb.evbuf.hdr.flags = 0;
-       sccb.evbuf.event_qual = EQ_STORE_DATA;
-       sccb.evbuf.data_id = DI_FCP_DUMP;
+       sccb.evbuf.event_qual = SDIAS_EQ_STORE_DATA;
+       sccb.evbuf.data_id = SDIAS_DI_FCP_DUMP;
        sccb.evbuf.event_id = 4712;
 #ifdef CONFIG_64BIT
-       sccb.evbuf.asa_size = ASA_SIZE_64;
+       sccb.evbuf.asa_size = SDIAS_ASA_SIZE_64;
 #else
-       sccb.evbuf.asa_size = ASA_SIZE_32;
+       sccb.evbuf.asa_size = SDIAS_ASA_SIZE_32;
 #endif
        sccb.evbuf.event_status = 0;
        sccb.evbuf.blk_cnt = nr_blks;
@@ -240,20 +207,19 @@ int sclp_sdias_copy(void *dest, int start_blk, int nr_blks)
        }
 
        switch (sdias_evbuf.event_status) {
-               case EVSTATE_ALL_STORED:
-                       TRACE("all stored\n");
-                       break;
-               case EVSTATE_PART_STORED:
-                       TRACE("part stored: %i\n", sdias_evbuf.blk_cnt);
-                       break;
-               case EVSTATE_NO_DATA:
-                       TRACE("no data\n");
-                       /* fall through */
-               default:
-                       pr_err("Error from SCLP while copying hsa. "
-                              "Event status = %x\n",
-                              sdias_evbuf.event_status);
-                       rc = -EIO;
+       case SDIAS_EVSTATE_ALL_STORED:
+               TRACE("all stored\n");
+               break;
+       case SDIAS_EVSTATE_PART_STORED:
+               TRACE("part stored: %i\n", sdias_evbuf.blk_cnt);
+               break;
+       case SDIAS_EVSTATE_NO_DATA:
+               TRACE("no data\n");
+               /* fall through */
+       default:
+               pr_err("Error from SCLP while copying hsa. Event status = %x\n",
+                      sdias_evbuf.event_status);
+               rc = -EIO;
        }
 out:
        mutex_unlock(&sdias_mutex);
diff --git a/drivers/s390/char/sclp_sdias.h b/drivers/s390/char/sclp_sdias.h
new file mode 100644 (file)
index 0000000..f2431c4
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * SCLP "store data in absolute storage"
+ *
+ * Copyright IBM Corp. 2003, 2013
+ */
+
+#ifndef SCLP_SDIAS_H
+#define SCLP_SDIAS_H
+
+#include "sclp.h"
+
+#define SDIAS_EQ_STORE_DATA            0x0
+#define SDIAS_EQ_SIZE                  0x1
+#define SDIAS_DI_FCP_DUMP              0x0
+#define SDIAS_ASA_SIZE_32              0x0
+#define SDIAS_ASA_SIZE_64              0x1
+#define SDIAS_EVSTATE_ALL_STORED       0x0
+#define SDIAS_EVSTATE_NO_DATA          0x3
+#define SDIAS_EVSTATE_PART_STORED      0x10
+
+struct sdias_evbuf {
+       struct  evbuf_header hdr;
+       u8      event_qual;
+       u8      data_id;
+       u64     reserved2;
+       u32     event_id;
+       u16     reserved3;
+       u8      asa_size;
+       u8      event_status;
+       u32     reserved4;
+       u32     blk_cnt;
+       u64     asa;
+       u32     reserved5;
+       u32     fbn;
+       u32     reserved6;
+       u32     lbn;
+       u16     reserved7;
+       u16     dbs;
+} __packed;
+
+struct sdias_sccb {
+       struct sccb_header      hdr;
+       struct sdias_evbuf      evbuf;
+} __packed;
+
+#endif /* SCLP_SDIAS_H */