summaryrefslogtreecommitdiff
path: root/include/linux/ide.h
diff options
context:
space:
mode:
authorJens Axboe <axboe@suse.de>2004-08-22 22:37:19 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-08-22 22:37:19 -0700
commit5e9dbcaa2c752116b116bda619cf2e5438757e6a (patch)
treecfef5aa97d34f24ce0574ca9ebc570e52dc38df0 /include/linux/ide.h
parentd2a8285687638fad1fb6b4b5e7e809330e21b1eb (diff)
[PATCH] disk barriers: IDE
ide bits Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/ide.h')
-rw-r--r--include/linux/ide.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 06542968a2c2..40ddd0d79e8f 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -780,6 +780,7 @@ typedef struct ide_drive_s {
u8 sect; /* "real" sectors per track */
u8 bios_head; /* BIOS/fdisk/LILO number of heads */
u8 bios_sect; /* BIOS/fdisk/LILO sectors per track */
+ u8 doing_barrier; /* state, 1=currently doing flush */
unsigned int bios_cyl; /* BIOS/fdisk/LILO number of cyls */
unsigned int cyl; /* "real" number of cyls */
@@ -1293,6 +1294,11 @@ extern ide_startstop_t ide_do_reset (ide_drive_t *);
extern void ide_init_drive_cmd (struct request *rq);
/*
+ * this function returns error location sector offset in case of a write error
+ */
+extern u64 ide_get_error_location(ide_drive_t *, char *);
+
+/*
* "action" parameter type for ide_do_drive_cmd() below.
*/
typedef enum {
@@ -1664,4 +1670,11 @@ extern struct semaphore ide_cfg_sem;
extern struct bus_type ide_bus_type;
+/* check if CACHE FLUSH (EXT) command is supported (bits defined in ATA-6) */
+#define ide_id_has_flush_cache(id) ((id)->cfs_enable_2 & 0x3000)
+
+/* some Maxtor disks have bit 13 defined incorrectly so check bit 10 too */
+#define ide_id_has_flush_cache_ext(id) \
+ (((id)->cfs_enable_2 & 0x2400) == 0x2400)
+
#endif /* _IDE_H */