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