Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / s390 / block / dasd_eckd.h
index daa2de5..d5734e9 100644 (file)
@@ -5,15 +5,14 @@
  * Bugreports.to..: <Linux390@de.ibm.com>
  * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
  *
- * $Revision: 1.8 $
  */
 
 #ifndef DASD_ECKD_H
 #define DASD_ECKD_H
 
-/*******************************************************************************
+/*****************************************************************************
  * SECTION: CCW Definitions
- ******************************************************************************/
+ ****************************************************************************/
 #define DASD_ECKD_CCW_WRITE             0x05
 #define DASD_ECKD_CCW_READ              0x06
 #define DASD_ECKD_CCW_WRITE_HOME_ADDRESS 0x09
@@ -30,6 +29,7 @@
 #define DASD_ECKD_CCW_PSF               0x27
 #define DASD_ECKD_CCW_RSSD              0x3e
 #define DASD_ECKD_CCW_LOCATE_RECORD     0x47
+#define DASD_ECKD_CCW_SNSS              0x54
 #define DASD_ECKD_CCW_DEFINE_EXTENT     0x63
 #define DASD_ECKD_CCW_WRITE_MT          0x85
 #define DASD_ECKD_CCW_READ_MT           0x86
@@ -45,9 +45,9 @@
  */
 #define PSF_ORDER_PRSSD                         0x18
 
-/*******************************************************************************
+/*****************************************************************************
  * SECTION: Type Definitions
- ******************************************************************************/
+ ****************************************************************************/
 
 struct eckd_count {
        __u16 cyl;
@@ -112,7 +112,7 @@ struct DE_eckd_data {
        __u8 ga_extended;       /* Global Attributes Extended   */
        struct ch_t beg_ext;
        struct ch_t end_ext;
-       unsigned long long ep_sys_time; /* Extended Parameter - System Time Stamp */
+       unsigned long long ep_sys_time; /* Ext Parameter - System Time Stamp */
        __u8 ep_format;        /* Extended Parameter format byte       */
        __u8 ep_prio;          /* Extended Parameter priority I/O byte */
        __u8 ep_reserved[6];   /* Extended Parameter Reserved          */
@@ -228,26 +228,36 @@ struct dasd_eckd_confdata {
                unsigned char HDA_manufacturer[3];
                unsigned char HDA_location[2];
                unsigned char HDA_seqno[12];
-               __u16 ID;
+               __u8 ID;
+               __u8 unit_addr;
        } __attribute__ ((packed)) ned1;
-       struct {
+       union {
                struct {
-                       unsigned char identifier:2;
-                       unsigned char token_id:1;
-                       unsigned char sno_valid:1;
-                       unsigned char subst_sno:1;
-                       unsigned char recNED:1;
-                       unsigned char emuNED:1;
-                       unsigned char reserved:1;
-               } __attribute__ ((packed)) flags;
-               __u8 descriptor;
-               __u8 reserved[2];
-               unsigned char dev_type[6];
-               unsigned char dev_model[3];
-               unsigned char DASD_manufacturer[3];
-               unsigned char DASD_location[2];
-               unsigned char DASD_seqno[12];
-               __u16 ID;
+                       struct {
+                               unsigned char identifier:2;
+                               unsigned char token_id:1;
+                               unsigned char sno_valid:1;
+                               unsigned char subst_sno:1;
+                               unsigned char recNED:1;
+                               unsigned char emuNED:1;
+                               unsigned char reserved:1;
+                       } __attribute__ ((packed)) flags;
+                       __u8 descriptor;
+                       __u8 reserved[2];
+                       unsigned char dev_type[6];
+                       unsigned char dev_model[3];
+                       unsigned char DASD_manufacturer[3];
+                       unsigned char DASD_location[2];
+                       unsigned char DASD_seqno[12];
+                       __u16 ID;
+               } __attribute__ ((packed)) ned;
+               struct {
+                       unsigned char flags;            /* byte  0    */
+                       unsigned char res2[7];          /* byte  1- 7 */
+                       unsigned char sua_flags;        /* byte  8    */
+                       __u8 base_unit_addr;            /* byte  9    */
+                       unsigned char res3[22];         /* byte 10-31 */
+               } __attribute__ ((packed)) sneq;
        } __attribute__ ((packed)) ned2;
        struct {
                struct {
@@ -326,6 +336,12 @@ struct dasd_eckd_confdata {
        } __attribute__ ((packed)) neq;
 } __attribute__ ((packed));
 
+struct dasd_eckd_path {
+       __u8 opm;
+       __u8 ppm;
+       __u8 npm;
+};
+
 /*
  * Perform Subsystem Function - Prepare for Read Subsystem Data         
  */