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