5 * Most of our global data which we need to save even as we leave the driver
6 * due to an interrupt or a timer event is stored in a variable of type
7 * idefloppy_floppy_t, defined below.
9 typedef struct ide_floppy_obj
{
14 unsigned int openers
; /* protected by BKL for now */
16 /* Last failed packet command */
17 struct ide_atapi_pc
*failed_pc
;
18 /* used for blk_{fs,pc}_request() requests */
19 struct ide_atapi_pc queued_pc
;
21 /* Last error information */
22 u8 sense_key
, asc
, ascq
;
24 int progress_indication
;
26 /* Device information */
28 int blocks
, block_size
, bs_factor
;
29 /* Last format capacity descriptor */
31 /* Copy of the flexible disk page */
32 u8 flexible_disk_page
[32];
36 * Pages of the SELECT SENSE / MODE SENSE packet commands.
39 #define IDEFLOPPY_CAPABILITIES_PAGE 0x1b
40 #define IDEFLOPPY_FLEXIBLE_DISK_PAGE 0x05
42 /* IOCTLs used in low-level formatting. */
43 #define IDEFLOPPY_IOCTL_FORMAT_SUPPORTED 0x4600
44 #define IDEFLOPPY_IOCTL_FORMAT_GET_CAPACITY 0x4601
45 #define IDEFLOPPY_IOCTL_FORMAT_START 0x4602
46 #define IDEFLOPPY_IOCTL_FORMAT_GET_PROGRESS 0x4603
49 void ide_floppy_create_mode_sense_cmd(struct ide_atapi_pc
*, u8
);
50 void ide_floppy_create_read_capacity_cmd(struct ide_atapi_pc
*);
51 sector_t
ide_floppy_capacity(ide_drive_t
*);
53 /* ide-floppy_ioctl.c */
54 int ide_floppy_ioctl(struct inode
*, struct file
*, unsigned, unsigned long);
56 #ifdef CONFIG_IDE_PROC_FS
57 /* ide-floppy_proc.c */
58 extern ide_proc_entry_t ide_floppy_proc
[];
59 extern const struct ide_proc_devset ide_floppy_settings
[];
62 #endif /*__IDE_FLOPPY_H */