patch-2.2.19 linux/include/asm-s390/dasd.h
Next file: linux/include/asm-s390/debug.h
Previous file: linux/include/asm-s390/ccwcache.h
Back to the patch index
Back to the overall index
- Lines: 79
- Date:
Sun Mar 25 11:37:39 2001
- Orig file:
v2.2.18/include/asm-s390/dasd.h
- Orig date:
Sun Mar 25 11:28:37 2001
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.18/include/asm-s390/dasd.h linux/include/asm-s390/dasd.h
@@ -2,12 +2,15 @@
#ifndef DASD_H
#define DASD_H
+#undef ERP_DEBUG /* enable debug messages */
+
/* First of all the external stuff */
#include <linux/version.h>
#include <linux/ioctl.h>
#include <linux/major.h>
#include <linux/wait.h>
#include <asm/ccwcache.h>
+#include <asm/todclk.h>
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,3,98))
#include <linux/blkdev.h>
#endif
@@ -65,6 +68,12 @@
dasd_era_recover = 2 /* recovery action recommended */
} dasd_era_t;
+/* BIT DEFINITIONS FOR SENSE DATA */
+#define DASD_SENSE_BIT_0 0x80
+#define DASD_SENSE_BIT_1 0x40
+#define DASD_SENSE_BIT_2 0x20
+#define DASD_SENSE_BIT_3 0x10
+
/*
* struct dasd_sizes_t
* represents all data needed to access dasd with properly set up sectors
@@ -97,7 +106,7 @@
struct dasd_device_t;
typedef ccw_req_t *(*dasd_erp_action_fn_t) (ccw_req_t * cqr);
-typedef int (*dasd_erp_postaction_fn_t) (ccw_req_t * cqr, int);
+typedef ccw_req_t *(*dasd_erp_postaction_fn_t) (ccw_req_t * cqr);
typedef int (*dasd_ck_id_fn_t) (dev_info_t *);
typedef int (*dasd_ck_characteristics_fn_t) (struct dasd_device_t *);
@@ -116,6 +125,7 @@
typedef struct dasd_discipline_t {
char ebcname[8]; /* a name used for tagging and printks */
char name[8]; /* a name used for tagging and printks */
+ int max_blocks; /* how many blocks are allowed to be chained */
struct dasd_discipline_t *next; /* used for list of disciplines */
@@ -165,6 +175,7 @@
struct wait_queue wait;
struct wait_queue *wait_q;
#endif /* LINUX_IS_24 */
+ struct timer_list timer; /* HUM new */
dasd_sizes_t sizes;
devstat_t dev_status;
char *characteristics;
@@ -231,6 +242,24 @@
int dasd_discipline_deq(dasd_discipline_t *);
int dasd_start_IO (ccw_req_t *);
void dasd_int_handler (int , void *, struct pt_regs *);
+ccw_req_t *default_erp_action (ccw_req_t *);
+ccw_req_t *default_erp_postaction (ccw_req_t *);
+int dasd_chanq_deq (dasd_chanq_t *, ccw_req_t *);
+ccw_req_t *dasd_alloc_request (char *, int, int);
+void dasd_free_request (ccw_req_t *);
+
+
+#define DASD_MESSAGE(d_loglevel,d_device,d_string,d_args...)\
+do { \
+ int d_devno = d_device->devinfo.devno; \
+ int d_irq = d_device->devinfo.irq; \
+ char *d_name = d_device->name; \
+ int d_major = MAJOR(d_device->kdev); \
+ int d_minor = MINOR(d_device->kdev); \
+ printk(d_loglevel PRINTK_HEADER \
+ "/dev/%s(%d:%d), 0x%04X on SCH 0x%x: " \
+ d_string "\n",d_name,d_major,d_minor,d_devno,d_irq,d_args ); \
+} while(0)
#endif /* __KERNEL__ */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)