xref: /aosp_15_r20/prebuilts/build-tools/sysroots/arm-unknown-linux-musleabihf/include/linux/fd.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
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