linux/include/uapi/linux/fd.h

/* 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 */