| /**************************************************************************** |
| **************************************************************************** |
| *** |
| *** This header was automatically generated from a Linux kernel header |
| *** of the same name, to make information necessary for userspace to |
| *** call into the kernel available to libc. It contains only constants, |
| *** structures, and macros generated from the original header, and thus, |
| *** contains no copyrightable information. |
| *** |
| **************************************************************************** |
| ****************************************************************************/ |
| #ifndef _LINUX_FD_H |
| #define _LINUX_FD_H |
| |
| #include <linux/ioctl.h> |
| #include <linux/compiler.h> |
| |
| struct floppy_struct { |
| unsigned int size, |
| sect, |
| head, |
| track, |
| stretch; |
| #define FD_STRETCH 1 |
| #define FD_SWAPSIDES 2 |
| #define FD_ZEROBASED 4 |
| |
| unsigned char gap, |
| |
| rate, |
| #define FD_2M 0x4 |
| #define FD_SIZECODEMASK 0x38 |
| #define FD_SIZECODE(floppy) (((((floppy)->rate&FD_SIZECODEMASK)>> 3)+ 2) %8) |
| #define FD_SECTSIZE(floppy) ( (floppy)->rate & FD_2M ? 512 : 128 << FD_SIZECODE(floppy) ) |
| #define FD_PERP 0x40 |
| |
| spec1, |
| fmt_gap; |
| const char * name; |
| }; |
| |
| #define FDCLRPRM _IO(2, 0x41) |
| |
| #define FDSETPRM _IOW(2, 0x42, struct floppy_struct) |
| #define FDSETMEDIAPRM FDSETPRM |
| |
| #define FDDEFPRM _IOW(2, 0x43, struct floppy_struct) |
| #define FDGETPRM _IOR(2, 0x04, struct floppy_struct) |
| #define FDDEFMEDIAPRM FDDEFPRM |
| #define FDGETMEDIAPRM FDGETPRM |
| |
| #define FDMSGON _IO(2,0x45) |
| #define FDMSGOFF _IO(2,0x46) |
| |
| #define FD_FILL_BYTE 0xF6 |
| |
| struct format_descr { |
| unsigned int device,head,track; |
| }; |
| |
| #define FDFMTBEG _IO(2,0x47) |
| |
| #define FDFMTTRK _IOW(2,0x48, struct format_descr) |
| |
| #define FDFMTEND _IO(2,0x49) |
| |
| struct floppy_max_errors { |
| unsigned int |
| abort, |
| read_track, |
| reset, |
| recal, |
| |
| reporting; |
| |
| }; |
| |
| #define FDSETEMSGTRESH _IO(2,0x4a) |
| |
| #define FDFLUSH _IO(2,0x4b) |
| |
| #define FDSETMAXERRS _IOW(2, 0x4c, struct floppy_max_errors) |
| #define FDGETMAXERRS _IOR(2, 0x0e, struct floppy_max_errors) |
| |
| typedef char floppy_drive_name[16]; |
| #define FDGETDRVTYP _IOR(2, 0x0f, floppy_drive_name) |
| |
| struct floppy_drive_params { |
| signed char cmos; |
| |
| unsigned long max_dtr; |
| unsigned long hlt; |
| unsigned long hut; |
| unsigned long srt; |
| |
| unsigned long spinup; |
| unsigned long spindown; |
| unsigned char spindown_offset; |
| unsigned char select_delay; |
| unsigned char rps; |
| unsigned char tracks; |
| unsigned long timeout; |
| |
| unsigned char interleave_sect; |
| |
| struct floppy_max_errors max_errors; |
| |
| char flags; |
| |
| #define FTD_MSG 0x10 |
| #define FD_BROKEN_DCL 0x20 |
| #define FD_DEBUG 0x02 |
| #define FD_SILENT_DCL_CLEAR 0x4 |
| #define FD_INVERTED_DCL 0x80 |
| |
| char read_track; |
| |
| short autodetect[8]; |
| |
| int checkfreq; |
| int native_format; |
| }; |
| |
| enum { |
| FD_NEED_TWADDLE_BIT, |
| FD_VERIFY_BIT, |
| FD_DISK_NEWCHANGE_BIT, |
| FD_UNUSED_BIT, |
| FD_DISK_CHANGED_BIT, |
| FD_DISK_WRITABLE_BIT |
| }; |
| |
| #define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params) |
| #define FDGETDRVPRM _IOR(2, 0x11, struct floppy_drive_params) |
| |
| struct floppy_drive_struct { |
| unsigned long flags; |
| |
| #define FD_NEED_TWADDLE (1 << FD_NEED_TWADDLE_BIT) |
| #define FD_VERIFY (1 << FD_VERIFY_BIT) |
| #define FD_DISK_NEWCHANGE (1 << FD_DISK_NEWCHANGE_BIT) |
| #define FD_DISK_CHANGED (1 << FD_DISK_CHANGED_BIT) |
| #define FD_DISK_WRITABLE (1 << FD_DISK_WRITABLE_BIT) |
| |
| unsigned long spinup_date; |
| unsigned long select_date; |
| unsigned long first_read_date; |
| short probed_format; |
| short track; |
| short maxblock; |
| short maxtrack; |
| int generation; |
| |
| int keep_data; |
| |
| int fd_ref; |
| int fd_device; |
| unsigned long last_checked; |
| |
| char *dmabuf; |
| int bufblocks; |
| }; |
| |
| #define FDGETDRVSTAT _IOR(2, 0x12, struct floppy_drive_struct) |
| #define FDPOLLDRVSTAT _IOR(2, 0x13, struct floppy_drive_struct) |
| |
| enum reset_mode { |
| FD_RESET_IF_NEEDED, |
| FD_RESET_IF_RAWCMD, |
| FD_RESET_ALWAYS |
| }; |
| #define FDRESET _IO(2, 0x54) |
| |
| struct floppy_fdc_state { |
| int spec1; |
| int spec2; |
| int dtr; |
| unsigned char version; |
| unsigned char dor; |
| unsigned long address; |
| unsigned int rawcmd:2; |
| unsigned int reset:1; |
| unsigned int need_configure:1; |
| unsigned int perp_mode:2; |
| unsigned int has_fifo:1; |
| unsigned int driver_version; |
| #define FD_DRIVER_VERSION 0x100 |
| |
| unsigned char track[4]; |
| |
| }; |
| |
| #define FDGETFDCSTAT _IOR(2, 0x15, struct floppy_fdc_state) |
| |
| struct floppy_write_errors { |
| |
| unsigned int write_errors; |
| |
| unsigned long first_error_sector; |
| int first_error_generation; |
| unsigned long last_error_sector; |
| int last_error_generation; |
| |
| unsigned int badness; |
| }; |
| |
| #define FDWERRORCLR _IO(2, 0x56) |
| |
| #define FDWERRORGET _IOR(2, 0x17, struct floppy_write_errors) |
| |
| #define FDHAVEBATCHEDRAWCMD |
| |
| struct floppy_raw_cmd { |
| unsigned int flags; |
| #define FD_RAW_READ 1 |
| #define FD_RAW_WRITE 2 |
| #define FD_RAW_NO_MOTOR 4 |
| #define FD_RAW_DISK_CHANGE 4 |
| #define FD_RAW_INTR 8 |
| #define FD_RAW_SPIN 0x10 |
| #define FD_RAW_NO_MOTOR_AFTER 0x20 |
| #define FD_RAW_NEED_DISK 0x40 |
| #define FD_RAW_NEED_SEEK 0x80 |
| |
| #define FD_RAW_MORE 0x100 |
| #define FD_RAW_STOP_IF_FAILURE 0x200 |
| #define FD_RAW_STOP_IF_SUCCESS 0x400 |
| #define FD_RAW_SOFTFAILURE 0x800 |
| |
| #define FD_RAW_FAILURE 0x10000 |
| #define FD_RAW_HARDFAILURE 0x20000 |
| |
| void __user *data; |
| char *kernel_data; |
| struct floppy_raw_cmd *next; |
| long length; |
| long phys_length; |
| int buffer_length; |
| |
| unsigned char rate; |
| unsigned char cmd_count; |
| unsigned char cmd[16]; |
| unsigned char reply_count; |
| unsigned char reply[16]; |
| int track; |
| int resultcode; |
| |
| int reserved1; |
| int reserved2; |
| }; |
| |
| #define FDRAWCMD _IO(2, 0x58) |
| |
| #define FDTWADDLE _IO(2, 0x59) |
| |
| #define FDEJECT _IO(2, 0x5a) |
| |
| #endif |