patch-2.0.34 linux/include/linux/xd.h
Next file: linux/include/net/sock.h
Previous file: linux/include/linux/swap.h
Back to the patch index
Back to the overall index
- Lines: 63
- Date:
Wed Jun 3 15:17:50 1998
- Orig file:
v2.0.33/linux/include/linux/xd.h
- Orig date:
Thu Feb 29 21:50:56 1996
diff -u --recursive --new-file v2.0.33/linux/include/linux/xd.h linux/include/linux/xd.h
@@ -35,7 +35,7 @@
#define CMD_SEEK 0x0B /* seek */
/* Controller specific commands */
-#define CMD_DTCSETPARAM 0x0C /* set drive parameters (DTC 5150X only?) */
+#define CMD_DTCSETPARAM 0x0C /* set drive parameters (DTC 5150X & CX only?) */
#define CMD_DTCGETECC 0x0D /* get ecc error length (DTC 5150X only?) */
#define CMD_DTCREADBUF 0x0E /* read sector buffer (DTC 5150X only?) */
#define CMD_DTCWRITEBUF 0x0F /* write sector buffer (DTC 5150X only?) */
@@ -46,6 +46,7 @@
#define CMD_DTCGETGEOM 0xFF /* get geometry data (DTC 5150X only?) */
#define CMD_ST11GETGEOM 0xF8 /* get geometry data (Seagate ST11R/M only?) */
#define CMD_WDSETPARAM 0x0C /* set drive parameters (WD 1004A27X only?) */
+#define CMD_XBSETPARAM 0x0C /* set drive parameters (XEBEC only?) */
/* Bits for command status byte */
#define CSB_ERROR 0x02 /* error */
@@ -85,7 +86,10 @@
u_char control;
} XD_INFO;
-#define HDIO_GETGEO 0x0301 /* get drive geometry */
+#define HDIO_GETGEO 0x0301 /* get drive geometry */
+#define HDIO_GET_MULTCOUNT 0x0304 /* get limit of multiblock transfer */
+#define HDIO_SET_DMA 0x0326 /* change use-dma flag */
+#define HDIO_GET_DMA 0x030b /* get use-dma flag */
/* this structure is returned to the HDIO_GETGEO ioctl */
typedef struct {
@@ -105,6 +109,9 @@
} XD_SIGNATURE;
void xd_setup (char *command,int *integers);
+#ifndef MODULE
+void xd_manual_geo_init (char *command,int *integers);
+#endif /* MODULE */
static u_char xd_detect (u_char *controller,u_char **address);
static u_char xd_initdrives (void (*init_drive)(u_char drive));
static void xd_geninit (struct gendisk *);
@@ -120,11 +127,14 @@
static void xd_interrupt_handler (int irq, void *dev_id, struct pt_regs *regs);
static u_char xd_setup_dma (u_char opcode,u_char *buffer,u_int count);
static u_char *xd_build (u_char *cmdblk,u_char command,u_char drive,u_char head,u_short cylinder,u_char sector,u_char count,u_char control);
+static void xd_wakeup (void);
+static void xd_watchdog (void);
static inline u_char xd_waitport (u_short port,u_char flags,u_char mask,u_long timeout);
static u_int xd_command (u_char *command,u_char mode,u_char *indata,u_char *outdata,u_char *sense,u_long timeout);
/* card specific setup and geometry gathering code */
static void xd_dtc_init_controller (u_char *address);
+static void xd_dtc5150cx_init_drive (u_char drive);
static void xd_dtc_init_drive (u_char drive);
static void xd_wd_init_controller (u_char *address);
static void xd_wd_init_drive (u_char drive);
@@ -132,6 +142,8 @@
static void xd_seagate_init_drive (u_char drive);
static void xd_omti_init_controller (u_char *address);
static void xd_omti_init_drive (u_char drive);
+static void xd_xebec_init_controller (u_char *address);
+static void xd_xebec_init_drive (u_char drive);
static void xd_setparam (u_char command,u_char drive,u_char heads,u_short cylinders,u_short rwrite,u_short wprecomp,u_char ecc);
static void xd_override_init_drive (u_char drive);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov