]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - drivers/s390/block/dasd_eckd.h
Merge tag 'armsoc-dt64' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[mirror_ubuntu-zesty-kernel.git] / drivers / s390 / block / dasd_eckd.h
index 6d9a6d3517cd0b9c2deb25630d670d9abc0e968c..e2a710c250a567ff99bbb8ff7e8e22668fca2d84 100644 (file)
@@ -35,6 +35,7 @@
 #define DASD_ECKD_CCW_READ_MT           0x86
 #define DASD_ECKD_CCW_WRITE_KD_MT       0x8d
 #define DASD_ECKD_CCW_READ_KD_MT        0x8e
+#define DASD_ECKD_CCW_READ_COUNT_MT     0x92
 #define DASD_ECKD_CCW_RELEASE           0x94
 #define DASD_ECKD_CCW_WRITE_FULL_TRACK  0x95
 #define DASD_ECKD_CCW_READ_CKD_MT       0x9e
@@ -53,6 +54,7 @@
  */
 #define PSF_ORDER_PRSSD                         0x18
 #define PSF_ORDER_CUIR_RESPONSE                 0x1A
+#define PSF_SUBORDER_QHA                0x1C
 #define PSF_ORDER_SSC                   0x1D
 
 /*
@@ -81,6 +83,8 @@
 #define ATTENTION_LENGTH_CUIR           0x0e
 #define ATTENTION_FORMAT_CUIR           0x01
 
+#define DASD_ECKD_PG_GROUPED            0x10
+
 /*
  * Size that is reportet for large volumes in the old 16-bit no_cyl field
  */
@@ -90,6 +94,8 @@
 #define FCX_MAX_DATA_FACTOR 65536
 #define DASD_ECKD_RCD_DATA_SIZE 256
 
+#define DASD_ECKD_PATH_THRHLD           256
+#define DASD_ECKD_PATH_INTERVAL                 300
 
 /*****************************************************************************
  * SECTION: Type Definitions
@@ -403,13 +409,41 @@ struct dasd_psf_cuir_response {
        __u8 ssid;
 } __packed;
 
+struct dasd_ckd_path_group_entry {
+       __u8 status_flags;
+       __u8 pgid[11];
+       __u8 sysplex_name[8];
+       __u32 timestamp;
+       __u32 cylinder;
+       __u8 reserved[4];
+} __packed;
+
+struct dasd_ckd_host_information {
+       __u8 access_flags;
+       __u8 entry_size;
+       __u16 entry_count;
+       __u8 entry[16390];
+} __packed;
+
+struct dasd_psf_query_host_access {
+       __u8 access_flag;
+       __u8 version;
+       __u16 CKD_length;
+       __u16 SCSI_length;
+       __u8 unused[10];
+       __u8 host_access_information[16394];
+} __packed;
+
 /*
  * Perform Subsystem Function - Prepare for Read Subsystem Data
  */
 struct dasd_psf_prssd_data {
        unsigned char order;
        unsigned char flags;
-       unsigned char reserved[4];
+       unsigned char reserved1;
+       unsigned char reserved2;
+       unsigned char lss;
+       unsigned char volume;
        unsigned char suborder;
        unsigned char varies[5];
 } __attribute__ ((packed));
@@ -503,8 +537,7 @@ struct dasd_eckd_private {
        struct dasd_eckd_characteristics rdc_data;
        u8 *conf_data;
        int conf_len;
-       /* per path configuration data */
-       struct dasd_conf_data *path_conf_data[8];
+
        /* pointers to specific parts in the conf_data */
        struct dasd_ned *ned;
        struct dasd_sneq *sneq;