diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-10-17 12:09:14 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-10-17 12:09:14 -0400 |
commit | 806f80a6fc203ad0bde84e5a9e94572617d2ae45 (patch) | |
tree | 20c684323e6e9f24af96df84008f06425a67ec6a /drivers/ide/ide-disk.h | |
parent | 79cb380397c834a35952d8497651d93b543ef968 (diff) |
ide: add generic ATA/ATAPI disk driver
* Add struct ide_disk_ops containing protocol specific methods.
* Add 'struct ide_disk_ops *' to ide_drive_t.
* Convert ide-{disk,floppy} drivers to use struct ide_disk_ops.
* Merge ide-{disk,floppy} drivers into generic ide-gd driver.
While at it:
- ide_disk_init_capacity() -> ide_disk_get_capacity()
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-disk.h')
-rw-r--r-- | drivers/ide/ide-disk.h | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/drivers/ide/ide-disk.h b/drivers/ide/ide-disk.h index 104ad71288a5..b234b0feaf7b 100644 --- a/drivers/ide/ide-disk.h +++ b/drivers/ide/ide-disk.h | |||
@@ -1,22 +1,11 @@ | |||
1 | #ifndef __IDE_DISK_H | 1 | #ifndef __IDE_DISK_H |
2 | #define __IDE_DISK_H | 2 | #define __IDE_DISK_H |
3 | 3 | ||
4 | struct ide_disk_obj { | 4 | #include "ide-gd.h" |
5 | ide_drive_t *drive; | ||
6 | ide_driver_t *driver; | ||
7 | struct gendisk *disk; | ||
8 | struct kref kref; | ||
9 | unsigned int openers; /* protected by BKL for now */ | ||
10 | }; | ||
11 | |||
12 | sector_t ide_gd_capacity(ide_drive_t *); | ||
13 | 5 | ||
6 | #ifdef CONFIG_IDE_GD_ATA | ||
14 | /* ide-disk.c */ | 7 | /* ide-disk.c */ |
15 | void ide_disk_init_capacity(ide_drive_t *); | 8 | extern const struct ide_disk_ops ide_ata_disk_ops; |
16 | void ide_disk_setup(ide_drive_t *); | ||
17 | void ide_disk_flush(ide_drive_t *); | ||
18 | int ide_disk_set_doorlock(ide_drive_t *, int); | ||
19 | ide_startstop_t ide_do_rw_disk(ide_drive_t *, struct request *, sector_t); | ||
20 | ide_decl_devset(address); | 9 | ide_decl_devset(address); |
21 | ide_decl_devset(multcount); | 10 | ide_decl_devset(multcount); |
22 | ide_decl_devset(nowerr); | 11 | ide_decl_devset(nowerr); |
@@ -24,12 +13,17 @@ ide_decl_devset(wcache); | |||
24 | ide_decl_devset(acoustic); | 13 | ide_decl_devset(acoustic); |
25 | 14 | ||
26 | /* ide-disk_ioctl.c */ | 15 | /* ide-disk_ioctl.c */ |
27 | int ide_disk_ioctl(struct inode *, struct file *, unsigned int, unsigned long); | 16 | int ide_disk_ioctl(ide_drive_t *, struct inode *, struct file *, unsigned int, |
17 | unsigned long); | ||
28 | 18 | ||
29 | #ifdef CONFIG_IDE_PROC_FS | 19 | #ifdef CONFIG_IDE_PROC_FS |
30 | /* ide-disk_proc.c */ | 20 | /* ide-disk_proc.c */ |
31 | extern ide_proc_entry_t ide_disk_proc[]; | 21 | extern ide_proc_entry_t ide_disk_proc[]; |
32 | extern const struct ide_proc_devset ide_disk_settings[]; | 22 | extern const struct ide_proc_devset ide_disk_settings[]; |
33 | #endif | 23 | #endif |
24 | #else | ||
25 | #define ide_disk_proc NULL | ||
26 | #define ide_disk_settings NULL | ||
27 | #endif | ||
34 | 28 | ||
35 | #endif /* __IDE_DISK_H */ | 29 | #endif /* __IDE_DISK_H */ |