111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_FD_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_FD_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/ioctl.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/compiler.h> 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct floppy_struct { 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int size, 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert sect, 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert head, 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert track, 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert stretch; 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_STRETCH 1 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_SWAPSIDES 2 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_ZEROBASED 4 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char gap, 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert rate, 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_2M 0x4 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_SIZECODEMASK 0x38 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_SIZECODE(floppy) (((((floppy)->rate&FD_SIZECODEMASK)>> 3)+ 2) %8) 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_SECTSIZE(floppy) ( (floppy)->rate & FD_2M ? 512 : 128 << FD_SIZECODE(floppy) ) 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_PERP 0x40 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert spec1, 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert fmt_gap; 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const char * name; 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDCLRPRM _IO(2, 0x41) 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDSETPRM _IOW(2, 0x42, struct floppy_struct) 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDSETMEDIAPRM FDSETPRM 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDDEFPRM _IOW(2, 0x43, struct floppy_struct) 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDGETPRM _IOR(2, 0x04, struct floppy_struct) 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDDEFMEDIAPRM FDDEFPRM 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDGETMEDIAPRM FDGETPRM 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDMSGON _IO(2,0x45) 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDMSGOFF _IO(2,0x46) 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_FILL_BYTE 0xF6 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct format_descr { 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int device,head,track; 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDFMTBEG _IO(2,0x47) 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDFMTTRK _IOW(2,0x48, struct format_descr) 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDFMTEND _IO(2,0x49) 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct floppy_max_errors { 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert abort, 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert read_track, 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert reset, 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert recal, 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert reporting; 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDSETEMSGTRESH _IO(2,0x4a) 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDFLUSH _IO(2,0x4b) 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDSETMAXERRS _IOW(2, 0x4c, struct floppy_max_errors) 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDGETMAXERRS _IOR(2, 0x0e, struct floppy_max_errors) 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef char floppy_drive_name[16]; 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDGETDRVTYP _IOR(2, 0x0f, floppy_drive_name) 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct floppy_drive_params { 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert signed char cmos; 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long max_dtr; 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long hlt; 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long hut; 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long srt; 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long spinup; 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long spindown; 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char spindown_offset; 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char select_delay; 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rps; 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char tracks; 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long timeout; 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char interleave_sect; 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct floppy_max_errors max_errors; 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char flags; 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FTD_MSG 0x10 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_BROKEN_DCL 0x20 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_DEBUG 0x02 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_SILENT_DCL_CLEAR 0x4 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_INVERTED_DCL 0x80 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char read_track; 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short autodetect[8]; 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int checkfreq; 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int native_format; 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum { 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FD_NEED_TWADDLE_BIT, 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FD_VERIFY_BIT, 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FD_DISK_NEWCHANGE_BIT, 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FD_UNUSED_BIT, 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FD_DISK_CHANGED_BIT, 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FD_DISK_WRITABLE_BIT 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params) 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDGETDRVPRM _IOR(2, 0x11, struct floppy_drive_params) 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct floppy_drive_struct { 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long flags; 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_NEED_TWADDLE (1 << FD_NEED_TWADDLE_BIT) 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_VERIFY (1 << FD_VERIFY_BIT) 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_DISK_NEWCHANGE (1 << FD_DISK_NEWCHANGE_BIT) 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_DISK_CHANGED (1 << FD_DISK_CHANGED_BIT) 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_DISK_WRITABLE (1 << FD_DISK_WRITABLE_BIT) 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long spinup_date; 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long select_date; 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long first_read_date; 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short probed_format; 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short track; 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short maxblock; 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short maxtrack; 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int generation; 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int keep_data; 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int fd_ref; 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int fd_device; 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long last_checked; 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char *dmabuf; 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int bufblocks; 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDGETDRVSTAT _IOR(2, 0x12, struct floppy_drive_struct) 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDPOLLDRVSTAT _IOR(2, 0x13, struct floppy_drive_struct) 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertenum reset_mode { 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FD_RESET_IF_NEEDED, 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FD_RESET_IF_RAWCMD, 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert FD_RESET_ALWAYS 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDRESET _IO(2, 0x54) 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct floppy_fdc_state { 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int spec1; 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int spec2; 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int dtr; 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char version; 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char dor; 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long address; 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int rawcmd:2; 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int reset:1; 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int need_configure:1; 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int perp_mode:2; 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int has_fifo:1; 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int driver_version; 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_DRIVER_VERSION 0x100 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char track[4]; 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDGETFDCSTAT _IOR(2, 0x15, struct floppy_fdc_state) 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct floppy_write_errors { 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int write_errors; 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long first_error_sector; 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int first_error_generation; 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned long last_error_sector; 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int last_error_generation; 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int badness; 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDWERRORCLR _IO(2, 0x56) 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDWERRORGET _IOR(2, 0x17, struct floppy_write_errors) 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDHAVEBATCHEDRAWCMD 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct floppy_raw_cmd { 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int flags; 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_READ 1 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_WRITE 2 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_NO_MOTOR 4 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_DISK_CHANGE 4 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_INTR 8 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_SPIN 0x10 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_NO_MOTOR_AFTER 0x20 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_NEED_DISK 0x40 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_NEED_SEEK 0x80 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_MORE 0x100 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_STOP_IF_FAILURE 0x200 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_STOP_IF_SUCCESS 0x400 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_SOFTFAILURE 0x800 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_FAILURE 0x10000 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FD_RAW_HARDFAILURE 0x20000 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *data; 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char *kernel_data; 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct floppy_raw_cmd *next; 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long length; 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert long phys_length; 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int buffer_length; 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char rate; 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char cmd_count; 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char cmd[16]; 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char reply_count; 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char reply[16]; 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int track; 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int resultcode; 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int reserved1; 24911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int reserved2; 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 25111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDRAWCMD _IO(2, 0x58) 25311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDTWADDLE _IO(2, 0x59) 25511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define FDEJECT _IO(2, 0x5a) 25711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 259