1 #ifndef _LINUX_FD_H
2 #define _LINUX_FD_H
3
4 #define FDCLRPRM 0 /* clear user-defined parameters */
5 #define FDSETPRM 1 /* set user-defined parameters for current media */
6 #define FDDEFPRM 2 /* set user-defined parameters until explicitly cleared */
7 #define FDGETPRM 3 /* get disk parameters */
8 #define FDMSGON 4 /* issue kernel messages on media type change */
9 #define FDMSGOFF 5 /* don't issue kernel messages on media type change */
10 #define FDFMTBEG 6 /* begin formatting a disk */
11 #define FDFMTTRK 7 /* format the specified track */
12 #define FDFMTEND 8 /* end formatting a disk */
13 #define FDSETEMSGTRESH 10 /* set fdc error reporting treshold */
14 #define FDFLUSH 11 /* flush buffers for media; either for verifying media, or for
15 handling a media change without closing the file
16 descriptor */
17
18 #define FD_FILL_BYTE 0xF6 /* format fill byte */
19
20 #define FORMAT_NONE 0 /* no format request */
21 #define FORMAT_WAIT 1 /* format request is waiting */
22 #define FORMAT_BUSY 2 /* formatting in progress */
23 #define FORMAT_OKAY 3 /* successful completion */
24 #define FORMAT_ERROR 4 /* formatting error */
25
26 struct floppy_struct {
27 unsigned int size, /* nr of 512-byte sectors total */
28 sect, /* sectors per track */
29 head, /* nr of heads */
30 track, /* nr of tracks */
31 stretch; /* !=0 means double track steps */
32 unsigned char gap, /* gap1 size */
33 rate, /* data rate. |= 0x40 for perpendicular */
34 spec1, /* stepping rate, head unload time */
35 fmt_gap; /* gap2 size */
36 char * name; /* used only for predefined formats */
37 };
38
39 struct format_descr {
40 unsigned int device,head,track;
41 };
42
43 #endif