summaryrefslogtreecommitdiff
path: root/include/linux/ide.h
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2003-02-17 19:46:44 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2003-02-17 19:46:44 -0800
commit8d99720cdafefd262dd5bab90713d49f9e875f0c (patch)
tree4f0332e86065eff50672285f1c5d068e088fac0f /include/linux/ide.h
parentcc02994e138537060235930ab2ce36bc3510d69b (diff)
[PATCH] resync externs, add execute command remove is_flashcard
(is_flashcard is unneeded outside ide_probe as we have a drive->flash check)
Diffstat (limited to 'include/linux/ide.h')
-rw-r--r--include/linux/ide.h30
1 files changed, 15 insertions, 15 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 681238c18591..32f4e6650463 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1115,12 +1115,13 @@ typedef struct ide_settings_s {
struct ide_settings_s *next;
} ide_settings_t;
-void ide_add_setting(ide_drive_t *drive, const char *name, int rw, int read_ioctl, int write_ioctl, int data_type, int min, int max, int mul_factor, int div_factor, void *data, ide_procset_t *set);
-void ide_remove_setting(ide_drive_t *drive, char *name);
-ide_settings_t *ide_find_setting_by_name(ide_drive_t *drive, char *name);
-int ide_read_setting(ide_drive_t *t, ide_settings_t *setting);
-int ide_write_setting(ide_drive_t *drive, ide_settings_t *setting, int val);
-void ide_add_generic_settings(ide_drive_t *drive);
+extern struct semaphore ide_setting_sem;
+extern int ide_add_setting(ide_drive_t *drive, const char *name, int rw, int read_ioctl, int write_ioctl, int data_type, int min, int max, int mul_factor, int div_factor, void *data, ide_procset_t *set);
+extern void ide_remove_setting(ide_drive_t *drive, char *name);
+extern ide_settings_t *ide_find_setting_by_name(ide_drive_t *drive, char *name);
+extern int ide_read_setting(ide_drive_t *t, ide_settings_t *setting);
+extern int ide_write_setting(ide_drive_t *drive, ide_settings_t *setting, int val);
+extern void ide_add_generic_settings(ide_drive_t *drive);
/*
* /proc/ide interface
@@ -1254,12 +1255,19 @@ extern int noautodma;
extern int ide_end_request (ide_drive_t *drive, int uptodate, int nrsecs);
/*
- * This is used on exit from the driver, to designate the next irq handler
+ * This is used on exit from the driver to designate the next irq handler
* and also to start the safety timer.
*/
extern void ide_set_handler (ide_drive_t *drive, ide_handler_t *handler, unsigned int timeout, ide_expiry_t *expiry);
/*
+ * This is used on exit from the driver to designate the next irq handler
+ * and start the safety time safely and atomically from the IRQ handler
+ * with respect to the command issue (which it also does)
+ */
+extern void ide_execute_command(ide_drive_t *, task_ioreg_t cmd, ide_handler_t *, unsigned int, ide_expiry_t *);
+
+/*
* Error reporting, in human readable form (luxurious, but a memory hog).
*
* (drive, msg, status)
@@ -1561,14 +1569,6 @@ extern int ide_system_bus_speed(void);
*/
extern void ide_stall_queue(ide_drive_t *drive, unsigned long timeout);
-/*
- * CompactFlash cards and their brethern pretend to be removable hard disks,
- * but they never have a slave unit, and they don't have doorlock mechanisms.
- * This test catches them, and is invoked elsewhere when setting appropriate
- * config bits.
- */
-extern int drive_is_flashcard (ide_drive_t *drive);
-
extern int ide_spin_wait_hwgroup(ide_drive_t *);
extern void ide_timer_expiry(unsigned long);
extern void ide_intr(int irq, void *dev_id, struct pt_regs *regs);