Linus TorvaldsLinux-2.6.12-rc21da177e21 years agoHistory
62 lines · 1.9 KB · C
RawDownload
#ifndef _AMIFD_H#define _AMIFD_H /* Definitions for the Amiga floppy driver */ #include <linux/fd.h> #define FD_MAX_UNITS    4	/* Max. Number of drives */#define FLOPPY_MAX_SECTORS	22	/* Max. Number of sectors per track */ #ifndef ASSEMBLER struct fd_data_type {    char *name;			/* description of data type */    int sects;			/* sectors per track */#ifdef __STDC__    int (*read_fkt)(int);    void (*write_fkt)(int);#else    int (*read_fkt)();		/* read whole track */    void (*write_fkt)();		/* write whole track */#endif}; /*** Floppy type descriptions*/ struct fd_drive_type {    unsigned long code;		/* code returned from drive */    char *name;			/* description of drive */    unsigned int tracks;	/* number of tracks */    unsigned int heads;		/* number of heads */    unsigned int read_size;	/* raw read size for one track */    unsigned int write_size;	/* raw write size for one track */    unsigned int sect_mult;	/* sectors and gap multiplier (HD = 2) */    unsigned int precomp1;	/* start track for precomp 1 */    unsigned int precomp2;	/* start track for precomp 2 */    unsigned int step_delay;	/* time (in ms) for delay after step */    unsigned int settle_time;	/* time to settle after dir change */    unsigned int side_time;	/* time needed to change sides */}; struct amiga_floppy_struct {    struct fd_drive_type *type;	/* type of floppy for this unit */    struct fd_data_type *dtype;	/* type of floppy for this unit */    int track;			/* current track (-1 == unknown) */    unsigned char *trackbuf;    /* current track (kmaloc()'d */     int blocks;			/* total # blocks on disk */     int changed;		/* true when not known */    int disk;			/* disk in drive (-1 == unknown) */    int motor;			/* true when motor is at speed */    int busy;			/* true when drive is active */    int dirty;			/* true when trackbuf is not on disk */    int status;			/* current error code for unit */    struct gendisk *gendisk;};#endif #endif