patch-2.4.22 linux-2.4.22/drivers/s390/block/dasd_eckd.h
Next file: linux-2.4.22/drivers/s390/block/dasd_fba.c
Previous file: linux-2.4.22/drivers/s390/block/dasd_eckd.c
Back to the patch index
Back to the overall index
- Lines: 241
- Date:
2003-08-25 04:44:42.000000000 -0700
- Orig file:
linux-2.4.21/drivers/s390/block/dasd_eckd.h
- Orig date:
2001-09-30 12:26:07.000000000 -0700
diff -urN linux-2.4.21/drivers/s390/block/dasd_eckd.h linux-2.4.22/drivers/s390/block/dasd_eckd.h
@@ -1,78 +1,96 @@
+/*
+ * File...........: linux/drivers/s390/block/dasd_eckd.h
+ * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com>
+ * Horst Hummel <Horst.Hummel@de.ibm.com>
+ * Bugreports.to..: <Linux390@de.ibm.com>
+ * (C) IBM Corporation, IBM Deutschland Entwicklung GmbH, 1999,2000
+ *
+ * $Revision: 1.14 $
+ *
+ * History of changes
+ *
+ */
+
#ifndef DASD_ECKD_H
#define DASD_ECKD_H
#include "dasd_3990_erp.h"
#include "dasd_9343_erp.h"
-#define DASD_ECKD_CCW_WRITE 0x05
-#define DASD_ECKD_CCW_READ 0x06
+/*******************************************************************************
+ * SECTION: CCW Definitions
+ ******************************************************************************/
+#define DASD_ECKD_CCW_WRITE 0x05
+#define DASD_ECKD_CCW_READ 0x06
#define DASD_ECKD_CCW_WRITE_HOME_ADDRESS 0x09
-#define DASD_ECKD_CCW_READ_HOME_ADDRESS 0x0a
-#define DASD_ECKD_CCW_WRITE_KD 0x0d
-#define DASD_ECKD_CCW_READ_KD 0x0e
-#define DASD_ECKD_CCW_ERASE 0x11
-#define DASD_ECKD_CCW_READ_COUNT 0x12
-#define DASD_ECKD_CCW_WRITE_RECORD_ZERO 0x15
-#define DASD_ECKD_CCW_READ_RECORD_ZERO 0x16
-#define DASD_ECKD_CCW_WRITE_CKD 0x1d
-#define DASD_ECKD_CCW_READ_CKD 0x1e
-#define DASD_ECKD_CCW_LOCATE_RECORD 0x47
-#define DASD_ECKD_CCW_DEFINE_EXTENT 0x63
-#define DASD_ECKD_CCW_WRITE_MT 0x85
-#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_RELEASE 0x94
-#define DASD_ECKD_CCW_READ_CKD_MT 0x9e
-#define DASD_ECKD_CCW_WRITE_CKD_MT 0x9d
-#define DASD_ECKD_CCW_RESERVE 0xB4
-#define DASD_ECKD_CCW_SLCK 0x14 /* steal lock - unconditional reserve */
+#define DASD_ECKD_CCW_READ_HOME_ADDRESS 0x0a
+#define DASD_ECKD_CCW_WRITE_KD 0x0d
+#define DASD_ECKD_CCW_READ_KD 0x0e
+#define DASD_ECKD_CCW_ERASE 0x11
+#define DASD_ECKD_CCW_READ_COUNT 0x12
+#define DASD_ECKD_CCW_SLCK 0x14
+#define DASD_ECKD_CCW_WRITE_RECORD_ZERO 0x15
+#define DASD_ECKD_CCW_READ_RECORD_ZERO 0x16
+#define DASD_ECKD_CCW_WRITE_CKD 0x1d
+#define DASD_ECKD_CCW_READ_CKD 0x1e
+#define DASD_ECKD_CCW_PSF 0x27
+#define DASD_ECKD_CCW_RSSD 0x3e
+#define DASD_ECKD_CCW_LOCATE_RECORD 0x47
+#define DASD_ECKD_CCW_DEFINE_EXTENT 0x63
+#define DASD_ECKD_CCW_WRITE_MT 0x85
+#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_RELEASE 0x94
+#define DASD_ECKD_CCW_READ_CKD_MT 0x9e
+#define DASD_ECKD_CCW_WRITE_CKD_MT 0x9d
+#define DASD_ECKD_CCW_RESERVE 0xB4
+
+/*
+ *Perform Subsystem Function / Sub-Orders
+ */
+#define PSF_ORDER_PRSSD 0x18
+
+
+/*******************************************************************************
+ * SECTION: Type Definitions
+ ******************************************************************************/
-typedef
- struct eckd_count_t {
+typedef struct eckd_count_t {
__u16 cyl;
__u16 head;
__u8 record;
__u8 kl;
__u16 dl;
-} __attribute__ ((packed))
+} __attribute__ ((packed)) eckd_count_t;
- eckd_count_t;
-typedef
- struct ch_t {
+typedef struct ch_t {
__u16 cyl;
__u16 head;
-} __attribute__ ((packed))
+} __attribute__ ((packed)) ch_t;
- ch_t;
-typedef
- struct chs_t {
+typedef struct chs_t {
__u16 cyl;
__u16 head;
__u32 sector;
-} __attribute__ ((packed))
+} __attribute__ ((packed)) chs_t;
- chs_t;
-typedef
- struct chr_t {
+typedef struct chr_t {
__u16 cyl;
__u16 head;
__u8 record;
-} __attribute__ ((packed))
+} __attribute__ ((packed)) chr_t;
- chr_t;
-typedef
- struct geom_t {
+typedef struct geom_t {
__u16 cyl;
__u16 head;
__u32 sector;
-} __attribute__ ((packed))
+} __attribute__ ((packed)) geom_t;
- geom_t;
typedef struct eckd_home_t {
__u8 skip_control[14];
@@ -83,12 +101,10 @@
__u8 reserved;
__u8 key_length;
__u8 reserved2[2];
-} __attribute__ ((packed))
+} __attribute__ ((packed)) eckd_home_t;
- eckd_home_t;
-typedef
- struct DE_eckd_data_t {
+typedef struct DE_eckd_data_t {
struct {
unsigned char perm:2; /* Permissions on this extent */
unsigned char reserved:1;
@@ -103,18 +119,20 @@
unsigned char cfw:1; /* Cache fast write */
unsigned char dfw:1; /* DASD fast write */
} __attribute__ ((packed)) attributes;
- __u16 short blk_size; /* Blocksize */
+ __u16 blk_size; /* Blocksize */
__u16 fast_write_id;
- __u8 unused;
- __u8 reserved;
+ __u8 ga_additional; /* Global Attributes Additional */
+ __u8 ga_extended; /* Global Attributes Extended */
ch_t beg_ext;
ch_t end_ext;
-} __attribute__ ((packed))
+ unsigned long long ep_sys_time; /* Extended 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 */
+} __attribute__ ((packed)) DE_eckd_data_t;
- DE_eckd_data_t;
-typedef
- struct LO_eckd_data_t {
+typedef struct LO_eckd_data_t {
struct {
unsigned char orientation:2;
unsigned char operation:6;
@@ -130,12 +148,10 @@
chr_t search_arg;
__u8 sector;
__u16 length;
-} __attribute__ ((packed))
+} __attribute__ ((packed)) LO_eckd_data_t;
- LO_eckd_data_t;
-typedef
- struct dasd_eckd_characteristics_t {
+typedef struct dasd_eckd_characteristics_t {
__u16 cu_type;
struct {
unsigned char support:2;
@@ -154,7 +170,8 @@
unsigned char reserved2:4;
unsigned char reserved3:8;
unsigned char defect_wr:1;
- unsigned char reserved4:2;
+ unsigned char XRC_supported:1;
+ unsigned char reserved4:1;
unsigned char striping:1;
unsigned char reserved5:4;
unsigned char cfw:1;
@@ -205,9 +222,7 @@
__u8 factor8;
__u8 reserved2[3];
__u8 reserved3[10];
-} __attribute__ ((packed))
-
- dasd_eckd_characteristics_t;
+} __attribute__ ((packed)) dasd_eckd_characteristics_t;
typedef struct dasd_eckd_confdata_t {
struct {
@@ -324,9 +339,20 @@
__u8 log_dev_address;
unsigned char reserved2[12];
} __attribute__ ((packed)) neq;
-} __attribute__ ((packed))
+} __attribute__ ((packed)) dasd_eckd_confdata_t;
+
+/*
+ * Perform Subsystem Function - Prepare for Read Subsystem Data
+ */
+typedef struct dasd_psf_prssd_data_t {
+ unsigned char order;
+ unsigned char flags;
+ unsigned char reserved[4];
+ unsigned char suborder;
+ unsigned char varies[9];
+} __attribute__((packed)) dasd_psf_prssd_data_t;
+
- dasd_eckd_confdata_t;
int dasd_eckd_init (void);
void dasd_eckd_cleanup (void);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)