xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/fd.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
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