1/**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19#ifndef _UAPI_LINUX_FD_H 20#define _UAPI_LINUX_FD_H 21#include <linux/ioctl.h> 22#include <linux/compiler.h> 23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24struct floppy_struct { 25 unsigned int size, sect, head, track, stretch; 26#define FD_STRETCH 1 27#define FD_SWAPSIDES 2 28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29#define FD_ZEROBASED 4 30#define FD_SECTBASEMASK 0x3FC 31#define FD_MKSECTBASE(s) (((s) ^ 1) << 2) 32#define FD_SECTBASE(floppy) ((((floppy)->stretch & FD_SECTBASEMASK) >> 2) ^ 1) 33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 unsigned char gap, rate, 35#define FD_2M 0x4 36#define FD_SIZECODEMASK 0x38 37#define FD_SIZECODE(floppy) (((((floppy)->rate & FD_SIZECODEMASK) >> 3) + 2) % 8) 38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39#define FD_SECTSIZE(floppy) ((floppy)->rate & FD_2M ? 512 : 128 << FD_SIZECODE(floppy)) 40#define FD_PERP 0x40 41 spec1, fmt_gap; 42 const char * name; 43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44}; 45#define FDCLRPRM _IO(2, 0x41) 46#define FDSETPRM _IOW(2, 0x42, struct floppy_struct) 47#define FDSETMEDIAPRM FDSETPRM 48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49#define FDDEFPRM _IOW(2, 0x43, struct floppy_struct) 50#define FDGETPRM _IOR(2, 0x04, struct floppy_struct) 51#define FDDEFMEDIAPRM FDDEFPRM 52#define FDGETMEDIAPRM FDGETPRM 53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54#define FDMSGON _IO(2, 0x45) 55#define FDMSGOFF _IO(2, 0x46) 56#define FD_FILL_BYTE 0xF6 57struct format_descr { 58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 unsigned int device, head, track; 60}; 61#define FDFMTBEG _IO(2, 0x47) 62#define FDFMTTRK _IOW(2, 0x48, struct format_descr) 63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64#define FDFMTEND _IO(2, 0x49) 65struct floppy_max_errors { 66 unsigned int abort, read_track, reset, recal, reporting; 67}; 68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69#define FDSETEMSGTRESH _IO(2, 0x4a) 70#define FDFLUSH _IO(2, 0x4b) 71#define FDSETMAXERRS _IOW(2, 0x4c, struct floppy_max_errors) 72#define FDGETMAXERRS _IOR(2, 0x0e, struct floppy_max_errors) 73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74typedef char floppy_drive_name[16]; 75#define FDGETDRVTYP _IOR(2, 0x0f, floppy_drive_name) 76struct floppy_drive_params { 77 signed char cmos; 78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 unsigned long max_dtr; 80 unsigned long hlt; 81 unsigned long hut; 82 unsigned long srt; 83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 unsigned long spinup; 85 unsigned long spindown; 86 unsigned char spindown_offset; 87 unsigned char select_delay; 88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 unsigned char rps; 90 unsigned char tracks; 91 unsigned long timeout; 92 unsigned char interleave_sect; 93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 struct floppy_max_errors max_errors; 95 char flags; 96#define FTD_MSG 0x10 97#define FD_BROKEN_DCL 0x20 98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99#define FD_DEBUG 0x02 100#define FD_SILENT_DCL_CLEAR 0x4 101#define FD_INVERTED_DCL 0x80 102 char read_track; 103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 short autodetect[8]; 105 int checkfreq; 106 int native_format; 107}; 108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109enum { 110 FD_NEED_TWADDLE_BIT, 111 FD_VERIFY_BIT, 112 FD_DISK_NEWCHANGE_BIT, 113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 FD_UNUSED_BIT, 115 FD_DISK_CHANGED_BIT, 116 FD_DISK_WRITABLE_BIT, 117 FD_OPEN_SHOULD_FAIL_BIT 118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119}; 120#define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params) 121#define FDGETDRVPRM _IOR(2, 0x11, struct floppy_drive_params) 122struct floppy_drive_struct { 123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 unsigned long flags; 125#define FD_NEED_TWADDLE (1 << FD_NEED_TWADDLE_BIT) 126#define FD_VERIFY (1 << FD_VERIFY_BIT) 127#define FD_DISK_NEWCHANGE (1 << FD_DISK_NEWCHANGE_BIT) 128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129#define FD_DISK_CHANGED (1 << FD_DISK_CHANGED_BIT) 130#define FD_DISK_WRITABLE (1 << FD_DISK_WRITABLE_BIT) 131 unsigned long spinup_date; 132 unsigned long select_date; 133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 unsigned long first_read_date; 135 short probed_format; 136 short track; 137 short maxblock; 138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 short maxtrack; 140 int generation; 141 int keep_data; 142 int fd_ref; 143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 int fd_device; 145 unsigned long last_checked; 146 char * dmabuf; 147 int bufblocks; 148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149}; 150#define FDGETDRVSTAT _IOR(2, 0x12, struct floppy_drive_struct) 151#define FDPOLLDRVSTAT _IOR(2, 0x13, struct floppy_drive_struct) 152enum reset_mode { 153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 FD_RESET_IF_NEEDED, 155 FD_RESET_IF_RAWCMD, 156 FD_RESET_ALWAYS 157}; 158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159#define FDRESET _IO(2, 0x54) 160struct floppy_fdc_state { 161 int spec1; 162 int spec2; 163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 int dtr; 165 unsigned char version; 166 unsigned char dor; 167 unsigned long address; 168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 unsigned int rawcmd : 2; 170 unsigned int reset : 1; 171 unsigned int need_configure : 1; 172 unsigned int perp_mode : 2; 173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 unsigned int has_fifo : 1; 175 unsigned int driver_version; 176#define FD_DRIVER_VERSION 0x100 177 unsigned char track[4]; 178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179}; 180#define FDGETFDCSTAT _IOR(2, 0x15, struct floppy_fdc_state) 181struct floppy_write_errors { 182 unsigned int write_errors; 183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 unsigned long first_error_sector; 185 int first_error_generation; 186 unsigned long last_error_sector; 187 int last_error_generation; 188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 unsigned int badness; 190}; 191#define FDWERRORCLR _IO(2, 0x56) 192#define FDWERRORGET _IOR(2, 0x17, struct floppy_write_errors) 193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194#define FDHAVEBATCHEDRAWCMD 195struct floppy_raw_cmd { 196 unsigned int flags; 197#define FD_RAW_READ 1 198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199#define FD_RAW_WRITE 2 200#define FD_RAW_NO_MOTOR 4 201#define FD_RAW_DISK_CHANGE 4 202#define FD_RAW_INTR 8 203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204#define FD_RAW_SPIN 0x10 205#define FD_RAW_NO_MOTOR_AFTER 0x20 206#define FD_RAW_NEED_DISK 0x40 207#define FD_RAW_NEED_SEEK 0x80 208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209#define FD_RAW_MORE 0x100 210#define FD_RAW_STOP_IF_FAILURE 0x200 211#define FD_RAW_STOP_IF_SUCCESS 0x400 212#define FD_RAW_SOFTFAILURE 0x800 213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214#define FD_RAW_FAILURE 0x10000 215#define FD_RAW_HARDFAILURE 0x20000 216 void __user * data; 217 char * kernel_data; 218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 struct floppy_raw_cmd * next; 220 long length; 221 long phys_length; 222 int buffer_length; 223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224 unsigned char rate; 225 unsigned char cmd_count; 226 unsigned char cmd[16]; 227 unsigned char reply_count; 228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 unsigned char reply[16]; 230 int track; 231 int resultcode; 232 int reserved1; 233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 int reserved2; 235}; 236#define FDRAWCMD _IO(2, 0x58) 237#define FDTWADDLE _IO(2, 0x59) 238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239#define FDEJECT _IO(2, 0x5a) 240#endif 241