text: /****************************************************************************
   ****************************************************************************
   ***
   ***   This header was automatically generated from a Linux kernel header
   ***   of the same name, to make information necessary for userspace to
   ***   call into the kernel available to libc.  It contains only constants,
   ***   structures, and macros generated from the original header, and thus,
   ***   contains no copyrightable information.
   ***
   ***   To edit the content of this header, modify the corresponding
   ***   source file (e.g. under external/kernel-headers/original/) then
   ***   run bionic/libc/kernel/tools/update_all.py
   ***
   ***   Any manual change here will be lost the next time this script will
   ***   be run. You've been warned!
   ***
   ****************************************************************************
   ****************************************************************************/
  #ifndef _UAPI_LINUX_FD_H
  #define _UAPI_LINUX_FD_H
  #define UAPI_LINUX_FD_H
  #define UAPI_LINUX_FD_H_
  #define NDK_ANDROID_SUPPORT_UAPI_LINUX_FD_H
  #define NDK_ANDROID_SUPPORT_UAPI_LINUX_FD_H_
  #define NDK_ANDROID_SUPPORT_LINUX_FD_H
  #define NDK_ANDROID_SUPPORT_LINUX_FD_H_
  #define _LINUX_FD_H
  #define _LINUX_FD_H_
  #define _UAPI_LINUX_FD_H_
  #include <museum/8.1.0/bionic/libc/linux/ioctl.h>
  #include <linux/compiler.h>
  struct floppy_struct {
    unsigned int size, sect, head, track, stretch;
  #define FD_STRETCH 1
  #define FD_SWAPSIDES 2
  #define FD_ZEROBASED 4
  #define FD_SECTBASEMASK 0x3FC
  #define FD_MKSECTBASE(s) (((s) ^ 1) << 2)
  #define FD_SECTBASE(floppy) ((((floppy)->stretch & FD_SECTBASEMASK) >> 2) ^ 1)
    unsigned char gap, rate,
  #define FD_2M 0x4
  #define FD_SIZECODEMASK 0x38
  #define FD_SIZECODE(floppy) (((((floppy)->rate & FD_SIZECODEMASK) >> 3) + 2) % 8)
  #define FD_SECTSIZE(floppy) ((floppy)->rate & FD_2M ? 512 : 128 << FD_SIZECODE(floppy))
  #define FD_PERP 0x40
    spec1, fmt_gap;
    const char * name;
  };
  #define FDCLRPRM _IO(2, 0x41)
  #define FDSETPRM _IOW(2, 0x42, struct floppy_struct)
  #define FDSETMEDIAPRM FDSETPRM
  #define FDDEFPRM _IOW(2, 0x43, struct floppy_struct)
  #define FDGETPRM _IOR(2, 0x04, struct floppy_struct)
  #define FDDEFMEDIAPRM FDDEFPRM
  #define FDGETMEDIAPRM FDGETPRM
  #define FDMSGON _IO(2, 0x45)
  #define FDMSGOFF _IO(2, 0x46)
  #define FD_FILL_BYTE 0xF6
  struct format_descr {
    unsigned int device, head, track;
  };
  #define FDFMTBEG _IO(2, 0x47)
  #define FDFMTTRK _IOW(2, 0x48, struct format_descr)
  #define FDFMTEND _IO(2, 0x49)
  struct floppy_max_errors {
    unsigned int abort, read_track, reset, recal, reporting;
  };
  #define FDSETEMSGTRESH _IO(2, 0x4a)
  #define FDFLUSH _IO(2, 0x4b)
  #define FDSETMAXERRS _IOW(2, 0x4c, struct floppy_max_errors)
  #define FDGETMAXERRS _IOR(2, 0x0e, struct floppy_max_errors)
  typedef char floppy_drive_name[16];
  #define FDGETDRVTYP _IOR(2, 0x0f, floppy_drive_name)
  struct floppy_drive_params {
    signed char cmos;
    unsigned long max_dtr;
    unsigned long hlt;
    unsigned long hut;
    unsigned long srt;
    unsigned long spinup;
    unsigned long spindown;
    unsigned char spindown_offset;
    unsigned char select_delay;
    unsigned char rps;
    unsigned char tracks;
    unsigned long timeout;
    unsigned char interleave_sect;
    struct floppy_max_errors max_errors;
    char flags;
  #define FTD_MSG 0x10
  #define FD_BROKEN_DCL 0x20
  #define FD_DEBUG 0x02
  #define FD_SILENT_DCL_CLEAR 0x4
  #define FD_INVERTED_DCL 0x80
    char read_track;
    short autodetect[8];
    int checkfreq;
    int native_format;
  };
  enum {
    FD_NEED_TWADDLE_BIT,
    FD_VERIFY_BIT,
    FD_DISK_NEWCHANGE_BIT,
    FD_UNUSED_BIT,
    FD_DISK_CHANGED_BIT,
    FD_DISK_WRITABLE_BIT,
    FD_OPEN_SHOULD_FAIL_BIT
  };
  #define FDSETDRVPRM _IOW(2, 0x90, struct floppy_drive_params)
  #define FDGETDRVPRM _IOR(2, 0x11, struct floppy_drive_params)
  struct floppy_drive_struct {
    unsigned long flags;
  #define FD_NEED_TWADDLE (1 << FD_NEED_TWADDLE_BIT)
  #define FD_VERIFY (1 << FD_VERIFY_BIT)
  #define FD_DISK_NEWCHANGE (1 << FD_DISK_NEWCHANGE_BIT)
  #define FD_DISK_CHANGED (1 << FD_DISK_CHANGED_BIT)
  #define FD_DISK_WRITABLE (1 << FD_DISK_WRITABLE_BIT)
    unsigned long spinup_date;
    unsigned long select_date;
    unsigned long first_read_date;
    short probed_format;
    short track;
    short maxblock;
    short maxtrack;
    int generation;
    int keep_data;
    int fd_ref;
    int fd_device;
    unsigned long last_checked;
    char * dmabuf;
    int bufblocks;
  };
  #define FDGETDRVSTAT _IOR(2, 0x12, struct floppy_drive_struct)
  #define FDPOLLDRVSTAT _IOR(2, 0x13, struct floppy_drive_struct)
  enum reset_mode {
    FD_RESET_IF_NEEDED,
    FD_RESET_IF_RAWCMD,
    FD_RESET_ALWAYS
  };
  #define FDRESET _IO(2, 0x54)
  struct floppy_fdc_state {
    int spec1;
    int spec2;
    int dtr;
    unsigned char version;
    unsigned char dor;
    unsigned long address;
    unsigned int rawcmd : 2;
    unsigned int reset : 1;
    unsigned int need_configure : 1;
    unsigned int perp_mode : 2;
    unsigned int has_fifo : 1;
    unsigned int driver_version;
  #define FD_DRIVER_VERSION 0x100
    unsigned char track[4];
  };
  #define FDGETFDCSTAT _IOR(2, 0x15, struct floppy_fdc_state)
  struct floppy_write_errors {
    unsigned int write_errors;
    unsigned long first_error_sector;
    int first_error_generation;
    unsigned long last_error_sector;
    int last_error_generation;
    unsigned int badness;
  };
  #define FDWERRORCLR _IO(2, 0x56)
  #define FDWERRORGET _IOR(2, 0x17, struct floppy_write_errors)
  #define FDHAVEBATCHEDRAWCMD
  struct floppy_raw_cmd {
    unsigned int flags;
  #define FD_RAW_READ 1
  #define FD_RAW_WRITE 2
  #define FD_RAW_NO_MOTOR 4
  #define FD_RAW_DISK_CHANGE 4
  #define FD_RAW_INTR 8
  #define FD_RAW_SPIN 0x10
  #define FD_RAW_NO_MOTOR_AFTER 0x20
  #define FD_RAW_NEED_DISK 0x40
  #define FD_RAW_NEED_SEEK 0x80
  #define FD_RAW_MORE 0x100
  #define FD_RAW_STOP_IF_FAILURE 0x200
  #define FD_RAW_STOP_IF_SUCCESS 0x400
  #define FD_RAW_SOFTFAILURE 0x800
  #define FD_RAW_FAILURE 0x10000
  #define FD_RAW_HARDFAILURE 0x20000
    void __user * data;
    char * kernel_data;
    struct floppy_raw_cmd * next;
    long length;
    long phys_length;
    int buffer_length;
    unsigned char rate;
    unsigned char cmd_count;
    unsigned char cmd[16];
    unsigned char reply_count;
    unsigned char reply[16];
    int track;
    int resultcode;
    int reserved1;
    int reserved2;
  };
  #define FDRAWCMD _IO(2, 0x58)
  #define FDTWADDLE _IO(2, 0x59)
  #define FDEJECT _IO(2, 0x5a)
  #endif
  