/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ #ifndef _UAPI_LINUX_FD_H #define _UAPI_LINUX_FD_H #include <linux/ioctl.h> #include <linux/compiler.h> /* New file layout: Now the ioctl definitions immediately follow the * definitions of the structures that they use */ /* * Geometry */ struct floppy_struct { … }; /* commands needing write access have 0x40 set */ /* commands needing super user access have 0x80 set */ #define FDCLRPRM … /* clear user-defined parameters */ #define FDSETPRM … #define FDSETMEDIAPRM … /* set user-defined parameters for current media */ #define FDDEFPRM … #define FDGETPRM … #define FDDEFMEDIAPRM … #define FDGETMEDIAPRM … /* set/get disk parameters */ #define FDMSGON … #define FDMSGOFF … /* issue/don't issue kernel messages on media type change */ /* * Formatting (obsolete) */ #define FD_FILL_BYTE … struct format_descr { … }; #define FDFMTBEG … /* begin formatting a disk */ #define FDFMTTRK … /* format the specified track */ #define FDFMTEND … /* end formatting a disk */ /* * Error thresholds */ struct floppy_max_errors { … }; #define FDSETEMSGTRESH … /* set fdc error reporting threshold */ #define FDFLUSH … /* flush buffers for media; either for verifying media, or for * handling a media change without closing the file descriptor */ #define FDSETMAXERRS … #define FDGETMAXERRS … /* set/get abortion and read_track threshold. See also floppy_drive_params * structure */ floppy_drive_name; #define FDGETDRVTYP … /* get drive type: 5 1/4 or 3 1/2 */ /* * Drive parameters (user modifiable) */ struct floppy_drive_params { … }; enum { … }; #define FDSETDRVPRM … #define FDGETDRVPRM … /* set/get drive parameters */ /* * Current drive state (not directly modifiable by user, readonly) */ struct floppy_drive_struct { … }; #define FDGETDRVSTAT … #define FDPOLLDRVSTAT … /* get drive state: GET returns the cached state, POLL polls for new state */ /* * reset FDC */ enum reset_mode { … }; #define FDRESET … /* * FDC state */ struct floppy_fdc_state { … }; #define FDGETFDCSTAT … /* * Asynchronous Write error tracking */ struct floppy_write_errors { … }; #define FDWERRORCLR … /* clear write error and badness information */ #define FDWERRORGET … /* get write error and badness information */ /* * Raw commands */ /* new interface flag: now we can do them in batches */ #define FDHAVEBATCHEDRAWCMD struct floppy_raw_cmd { … }; #define FDRAWCMD … /* send a raw command to the fdc. Structure size not included, because of * batches */ #define FDTWADDLE … /* flicker motor-on bit before reading a sector. Experimental */ #define FDEJECT … /* eject the disk */ #endif /* _UAPI_LINUX_FD_H */