1*cda5da8dSAndroid Build Coastguard Worker /* 2*cda5da8dSAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*cda5da8dSAndroid Build Coastguard Worker * 4*cda5da8dSAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*cda5da8dSAndroid Build Coastguard Worker * for more information. 6*cda5da8dSAndroid Build Coastguard Worker */ 7*cda5da8dSAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_FD_H 8*cda5da8dSAndroid Build Coastguard Worker #define _UAPI_LINUX_FD_H 9*cda5da8dSAndroid Build Coastguard Worker #include <linux/ioctl.h> 10*cda5da8dSAndroid Build Coastguard Worker #include <linux/compiler.h> 11*cda5da8dSAndroid Build Coastguard Worker struct floppy_struct { 12*cda5da8dSAndroid Build Coastguard Worker unsigned int size, sect, head, track, stretch; 13*cda5da8dSAndroid Build Coastguard Worker #define FD_STRETCH 1 14*cda5da8dSAndroid Build Coastguard Worker #define FD_SWAPSIDES 2 15*cda5da8dSAndroid Build Coastguard Worker #define FD_ZEROBASED 4 16*cda5da8dSAndroid Build Coastguard Worker #define FD_SECTBASEMASK 0x3FC 17*cda5da8dSAndroid Build Coastguard Worker #define FD_MKSECTBASE(s) (((s) ^ 1) << 2) 18*cda5da8dSAndroid Build Coastguard Worker #define FD_SECTBASE(floppy) ((((floppy)->stretch & FD_SECTBASEMASK) >> 2) ^ 1) 19*cda5da8dSAndroid Build Coastguard Worker unsigned char gap, rate, 20*cda5da8dSAndroid Build Coastguard Worker #define FD_2M 0x4 21*cda5da8dSAndroid Build Coastguard Worker #define FD_SIZECODEMASK 0x38 22*cda5da8dSAndroid Build Coastguard Worker #define FD_SIZECODE(floppy) (((((floppy)->rate & FD_SIZECODEMASK) >> 3) + 2) % 8) 23*cda5da8dSAndroid Build Coastguard Worker #define FD_SECTSIZE(floppy) ((floppy)->rate & FD_2M ? 512 : 128 << FD_SIZECODE(floppy)) 24*cda5da8dSAndroid Build Coastguard Worker #define FD_PERP 0x40 25*cda5da8dSAndroid Build Coastguard Worker spec1, fmt_gap; 26*cda5da8dSAndroid Build Coastguard Worker const char * name; 27*cda5da8dSAndroid Build Coastguard Worker }; 28*cda5da8dSAndroid Build Coastguard Worker #define FDCLRPRM _IO(2, 0x41) 29*cda5da8dSAndroid Build Coastguard Worker #define FDSETPRM _IOW(2, 0x42, struct floppy_struct) 30*cda5da8dSAndroid Build Coastguard Worker #define FDSETMEDIAPRM FDSETPRM 31*cda5da8dSAndroid Build Coastguard Worker #define FDDEFPRM _IOW(2, 0x43, struct floppy_struct) 32*cda5da8dSAndroid Build Coastguard Worker #define FDGETPRM _IOR(2, 0x04, struct floppy_struct) 33*cda5da8dSAndroid Build Coastguard Worker #define FDDEFMEDIAPRM FDDEFPRM 34*cda5da8dSAndroid Build Coastguard Worker #define FDGETMEDIAPRM FDGETPRM 35*cda5da8dSAndroid Build Coastguard Worker #define FDMSGON _IO(2, 0x45) 36*cda5da8dSAndroid Build Coastguard Worker #define FDMSGOFF _IO(2, 0x46) 37*cda5da8dSAndroid Build Coastguard Worker #define FD_FILL_BYTE 0xF6 38*cda5da8dSAndroid Build Coastguard Worker struct format_descr { 39*cda5da8dSAndroid Build Coastguard Worker unsigned int device, head, track; 40*cda5da8dSAndroid Build Coastguard Worker }; 41*cda5da8dSAndroid Build Coastguard Worker #define FDFMTBEG _IO(2, 0x47) 42*cda5da8dSAndroid Build Coastguard Worker #define FDFMTTRK _IOW(2, 0x48, struct format_descr) 43*cda5da8dSAndroid Build Coastguard Worker #define FDFMTEND _IO(2, 0x49) 44*cda5da8dSAndroid Build Coastguard Worker struct floppy_max_errors { 45*cda5da8dSAndroid Build Coastguard Worker unsigned int abort, read_track, reset, recal, reporting; 46*cda5da8dSAndroid Build Coastguard Worker }; 47*cda5da8dSAndroid Build Coastguard Worker #define FDSETEMSGTRESH _IO(2, 0x4a) 48*cda5da8dSAndroid Build Coastguard Worker #define FDFLUSH _IO(2, 0x4b) 49*cda5da8dSAndroid Build Coastguard Worker #define FDSETMAXERRS _IOW(2, 0x4c, struct floppy_max_errors) 50*cda5da8dSAndroid Build Coastguard Worker #define FDGETMAXERRS _IOR(2, 0x0e, struct floppy_max_errors) 51*cda5da8dSAndroid Build Coastguard Worker typedef char floppy_drive_name[16]; 52*cda5da8dSAndroid Build Coastguard Worker #define FDGETDRVTYP _IOR(2, 0x0f, floppy_drive_name) 53*cda5da8dSAndroid Build Coastguard Worker struct floppy_drive_params { 54*cda5da8dSAndroid Build Coastguard Worker signed char cmos; 55*cda5da8dSAndroid Build Coastguard Worker unsigned long max_dtr; 56*cda5da8dSAndroid Build Coastguard Worker unsigned long hlt; 57*cda5da8dSAndroid Build Coastguard Worker unsigned long hut; 58*cda5da8dSAndroid Build Coastguard Worker unsigned long srt; 59*cda5da8dSAndroid Build Coastguard Worker unsigned long spinup; 60*cda5da8dSAndroid Build Coastguard Worker unsigned long spindown; 61*cda5da8dSAndroid Build Coastguard Worker unsigned char spindown_offset; 62*cda5da8dSAndroid Build Coastguard Worker unsigned char select_delay; 63*cda5da8dSAndroid Build Coastguard Worker unsigned char rps; 64*cda5da8dSAndroid Build Coastguard Worker unsigned char tracks; 65*cda5da8dSAndroid Build Coastguard Worker unsigned long timeout; 66*cda5da8dSAndroid Build Coastguard Worker unsigned char interleave_sect; 67*cda5da8dSAndroid Build Coastguard Worker struct floppy_max_errors max_errors; 68*cda5da8dSAndroid Build Coastguard Worker char flags; 69*cda5da8dSAndroid Build Coastguard Worker #define FTD_MSG 0x10 70*cda5da8dSAndroid Build Coastguard Worker #define FD_BROKEN_DCL 0x20 71*cda5da8dSAndroid Build Coastguard Worker #define FD_DEBUG 0x02 72*cda5da8dSAndroid Build Coastguard Worker #define FD_SILENT_DCL_CLEAR 0x4 73*cda5da8dSAndroid Build Coastguard Worker #define FD_INVERTED_DCL 0x80 74*cda5da8dSAndroid Build Coastguard Worker char read_track; 75*cda5da8dSAndroid Build Coastguard Worker #define FD_AUTODETECT_SIZE 8 76*cda5da8dSAndroid Build Coastguard Worker short autodetect[FD_AUTODETECT_SIZE]; 77*cda5da8dSAndroid Build Coastguard Worker int checkfreq; 78*cda5da8dSAndroid Build Coastguard Worker int native_format; 79*cda5da8dSAndroid Build Coastguard Worker }; 80*cda5da8dSAndroid Build Coastguard Worker enum { 81*cda5da8dSAndroid Build Coastguard Worker FD_NEED_TWADDLE_BIT, 82*cda5da8dSAndroid Build Coastguard Worker FD_VERIFY_BIT, 83*cda5da8dSAndroid Build Coastguard Worker FD_DISK_NEWCHANGE_BIT, 84*cda5da8dSAndroid Build Coastguard Worker FD_UNUSED_BIT, 85*cda5da8dSAndroid Build Coastguard Worker FD_DISK_CHANGED_BIT, 86*cda5da8dSAndroid Build Coastguard Worker FD_DISK_WRITABLE_BIT, 87*cda5da8dSAndroid Build Coastguard Worker FD_OPEN_SHOULD_FAIL_BIT 88*cda5da8dSAndroid Build Coastguard Worker }; 89*cda5da8dSAndroid Build Coastguard Worker #define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params) 90*cda5da8dSAndroid Build Coastguard Worker #define FDGETDRVPRM _IOR(2, 0x11, struct floppy_drive_params) 91*cda5da8dSAndroid Build Coastguard Worker struct floppy_drive_struct { 92*cda5da8dSAndroid Build Coastguard Worker unsigned long flags; 93*cda5da8dSAndroid Build Coastguard Worker #define FD_NEED_TWADDLE (1 << FD_NEED_TWADDLE_BIT) 94*cda5da8dSAndroid Build Coastguard Worker #define FD_VERIFY (1 << FD_VERIFY_BIT) 95*cda5da8dSAndroid Build Coastguard Worker #define FD_DISK_NEWCHANGE (1 << FD_DISK_NEWCHANGE_BIT) 96*cda5da8dSAndroid Build Coastguard Worker #define FD_DISK_CHANGED (1 << FD_DISK_CHANGED_BIT) 97*cda5da8dSAndroid Build Coastguard Worker #define FD_DISK_WRITABLE (1 << FD_DISK_WRITABLE_BIT) 98*cda5da8dSAndroid Build Coastguard Worker unsigned long spinup_date; 99*cda5da8dSAndroid Build Coastguard Worker unsigned long select_date; 100*cda5da8dSAndroid Build Coastguard Worker unsigned long first_read_date; 101*cda5da8dSAndroid Build Coastguard Worker short probed_format; 102*cda5da8dSAndroid Build Coastguard Worker short track; 103*cda5da8dSAndroid Build Coastguard Worker short maxblock; 104*cda5da8dSAndroid Build Coastguard Worker short maxtrack; 105*cda5da8dSAndroid Build Coastguard Worker int generation; 106*cda5da8dSAndroid Build Coastguard Worker int keep_data; 107*cda5da8dSAndroid Build Coastguard Worker int fd_ref; 108*cda5da8dSAndroid Build Coastguard Worker int fd_device; 109*cda5da8dSAndroid Build Coastguard Worker unsigned long last_checked; 110*cda5da8dSAndroid Build Coastguard Worker char * dmabuf; 111*cda5da8dSAndroid Build Coastguard Worker int bufblocks; 112*cda5da8dSAndroid Build Coastguard Worker }; 113*cda5da8dSAndroid Build Coastguard Worker #define FDGETDRVSTAT _IOR(2, 0x12, struct floppy_drive_struct) 114*cda5da8dSAndroid Build Coastguard Worker #define FDPOLLDRVSTAT _IOR(2, 0x13, struct floppy_drive_struct) 115*cda5da8dSAndroid Build Coastguard Worker enum reset_mode { 116*cda5da8dSAndroid Build Coastguard Worker FD_RESET_IF_NEEDED, 117*cda5da8dSAndroid Build Coastguard Worker FD_RESET_IF_RAWCMD, 118*cda5da8dSAndroid Build Coastguard Worker FD_RESET_ALWAYS 119*cda5da8dSAndroid Build Coastguard Worker }; 120*cda5da8dSAndroid Build Coastguard Worker #define FDRESET _IO(2, 0x54) 121*cda5da8dSAndroid Build Coastguard Worker struct floppy_fdc_state { 122*cda5da8dSAndroid Build Coastguard Worker int spec1; 123*cda5da8dSAndroid Build Coastguard Worker int spec2; 124*cda5da8dSAndroid Build Coastguard Worker int dtr; 125*cda5da8dSAndroid Build Coastguard Worker unsigned char version; 126*cda5da8dSAndroid Build Coastguard Worker unsigned char dor; 127*cda5da8dSAndroid Build Coastguard Worker unsigned long address; 128*cda5da8dSAndroid Build Coastguard Worker unsigned int rawcmd : 2; 129*cda5da8dSAndroid Build Coastguard Worker unsigned int reset : 1; 130*cda5da8dSAndroid Build Coastguard Worker unsigned int need_configure : 1; 131*cda5da8dSAndroid Build Coastguard Worker unsigned int perp_mode : 2; 132*cda5da8dSAndroid Build Coastguard Worker unsigned int has_fifo : 1; 133*cda5da8dSAndroid Build Coastguard Worker unsigned int driver_version; 134*cda5da8dSAndroid Build Coastguard Worker #define FD_DRIVER_VERSION 0x100 135*cda5da8dSAndroid Build Coastguard Worker unsigned char track[4]; 136*cda5da8dSAndroid Build Coastguard Worker }; 137*cda5da8dSAndroid Build Coastguard Worker #define FDGETFDCSTAT _IOR(2, 0x15, struct floppy_fdc_state) 138*cda5da8dSAndroid Build Coastguard Worker struct floppy_write_errors { 139*cda5da8dSAndroid Build Coastguard Worker unsigned int write_errors; 140*cda5da8dSAndroid Build Coastguard Worker unsigned long first_error_sector; 141*cda5da8dSAndroid Build Coastguard Worker int first_error_generation; 142*cda5da8dSAndroid Build Coastguard Worker unsigned long last_error_sector; 143*cda5da8dSAndroid Build Coastguard Worker int last_error_generation; 144*cda5da8dSAndroid Build Coastguard Worker unsigned int badness; 145*cda5da8dSAndroid Build Coastguard Worker }; 146*cda5da8dSAndroid Build Coastguard Worker #define FDWERRORCLR _IO(2, 0x56) 147*cda5da8dSAndroid Build Coastguard Worker #define FDWERRORGET _IOR(2, 0x17, struct floppy_write_errors) 148*cda5da8dSAndroid Build Coastguard Worker #define FDHAVEBATCHEDRAWCMD 149*cda5da8dSAndroid Build Coastguard Worker struct floppy_raw_cmd { 150*cda5da8dSAndroid Build Coastguard Worker unsigned int flags; 151*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_READ 1 152*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_WRITE 2 153*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_NO_MOTOR 4 154*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_DISK_CHANGE 4 155*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_INTR 8 156*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_SPIN 0x10 157*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_NO_MOTOR_AFTER 0x20 158*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_NEED_DISK 0x40 159*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_NEED_SEEK 0x80 160*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_MORE 0x100 161*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_STOP_IF_FAILURE 0x200 162*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_STOP_IF_SUCCESS 0x400 163*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_SOFTFAILURE 0x800 164*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_FAILURE 0x10000 165*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_HARDFAILURE 0x20000 166*cda5da8dSAndroid Build Coastguard Worker void * data; 167*cda5da8dSAndroid Build Coastguard Worker char * kernel_data; 168*cda5da8dSAndroid Build Coastguard Worker struct floppy_raw_cmd * next; 169*cda5da8dSAndroid Build Coastguard Worker long length; 170*cda5da8dSAndroid Build Coastguard Worker long phys_length; 171*cda5da8dSAndroid Build Coastguard Worker int buffer_length; 172*cda5da8dSAndroid Build Coastguard Worker unsigned char rate; 173*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_CMD_SIZE 16 174*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_REPLY_SIZE 16 175*cda5da8dSAndroid Build Coastguard Worker #define FD_RAW_CMD_FULLSIZE (FD_RAW_CMD_SIZE + 1 + FD_RAW_REPLY_SIZE) 176*cda5da8dSAndroid Build Coastguard Worker unsigned char cmd_count; 177*cda5da8dSAndroid Build Coastguard Worker union { 178*cda5da8dSAndroid Build Coastguard Worker struct { 179*cda5da8dSAndroid Build Coastguard Worker unsigned char cmd[FD_RAW_CMD_SIZE]; 180*cda5da8dSAndroid Build Coastguard Worker unsigned char reply_count; 181*cda5da8dSAndroid Build Coastguard Worker unsigned char reply[FD_RAW_REPLY_SIZE]; 182*cda5da8dSAndroid Build Coastguard Worker }; 183*cda5da8dSAndroid Build Coastguard Worker unsigned char fullcmd[FD_RAW_CMD_FULLSIZE]; 184*cda5da8dSAndroid Build Coastguard Worker }; 185*cda5da8dSAndroid Build Coastguard Worker int track; 186*cda5da8dSAndroid Build Coastguard Worker int resultcode; 187*cda5da8dSAndroid Build Coastguard Worker int reserved1; 188*cda5da8dSAndroid Build Coastguard Worker int reserved2; 189*cda5da8dSAndroid Build Coastguard Worker }; 190*cda5da8dSAndroid Build Coastguard Worker #define FDRAWCMD _IO(2, 0x58) 191*cda5da8dSAndroid Build Coastguard Worker #define FDTWADDLE _IO(2, 0x59) 192*cda5da8dSAndroid Build Coastguard Worker #define FDEJECT _IO(2, 0x5a) 193*cda5da8dSAndroid Build Coastguard Worker #endif 194