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>
This commit is contained in:
@ -461,6 +461,23 @@ struct ide_acpi_drive_link;
|
||||
struct ide_acpi_hwif_link;
|
||||
#endif
|
||||
|
||||
struct ide_drive_s;
|
||||
|
||||
struct ide_disk_ops {
|
||||
int (*check)(struct ide_drive_s *, const char *);
|
||||
int (*get_capacity)(struct ide_drive_s *);
|
||||
void (*setup)(struct ide_drive_s *);
|
||||
void (*flush)(struct ide_drive_s *);
|
||||
int (*init_media)(struct ide_drive_s *, struct gendisk *);
|
||||
int (*set_doorlock)(struct ide_drive_s *, struct gendisk *,
|
||||
int);
|
||||
ide_startstop_t (*do_request)(struct ide_drive_s *, struct request *,
|
||||
sector_t);
|
||||
int (*end_request)(struct ide_drive_s *, int, int);
|
||||
int (*ioctl)(struct ide_drive_s *, struct inode *,
|
||||
struct file *, unsigned int, unsigned long);
|
||||
};
|
||||
|
||||
/* ATAPI device flags */
|
||||
enum {
|
||||
IDE_AFLAG_DRQ_INTERRUPT = (1 << 0),
|
||||
@ -594,6 +611,8 @@ struct ide_drive_s {
|
||||
#endif
|
||||
struct hwif_s *hwif; /* actually (ide_hwif_t *) */
|
||||
|
||||
const struct ide_disk_ops *disk_ops;
|
||||
|
||||
unsigned long dev_flags;
|
||||
|
||||
unsigned long sleep; /* sleep until this time */
|
||||
|
Reference in New Issue
Block a user