root/include/asm-m68k/amifd.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef _ASM_M68K_AMIFD_H
   2 #define _ASM_M68K_AMIFD_H
   3 
   4 /* Definitions for the Amiga floppy driver */
   5 
   6 #include <linux/fd.h>
   7 
   8 #define FD_MAX_UNITS    4
   9 
  10 struct fd_data_type {
  11     char *name;                 /* description of data type */
  12     int sects;                  /* sectors per track */
  13 #ifdef __STDC__
  14     int (*read_fkt)(int, unsigned char *, unsigned long, int);
  15     void (*write_fkt)(int, unsigned long, unsigned char *, int);
  16 #else
  17     int (*read_fkt)();          /* read whole track */
  18     void (*write_fkt)();                /* write whole track */
  19 #endif
  20 };
  21 
  22 #ifndef ASSEMBLER
  23 /*
  24 ** Floppy type descriptions
  25 */
  26 
  27 struct fd_drive_type {
  28     unsigned long code;         /* code returned from drive */
  29     char *name;                 /* description of drive */
  30     unsigned int tracks;        /* number of tracks */
  31     unsigned int heads;         /* number of heads */
  32     unsigned int read_size;     /* raw read size for one track */
  33     unsigned int write_size;    /* raw write size for one track */
  34     unsigned int sect_mult;     /* sectors and gap multiplier (HD = 2) */
  35     unsigned int precomp1;      /* start track for precomp 1 */
  36     unsigned int precomp2;      /* start track for precomp 2 */
  37     unsigned int step_delay;    /* time (in ms) for delay after step */
  38     unsigned int settle_time;   /* time to settle after dir change */
  39     unsigned int side_time;     /* time needed to change sides */
  40 };
  41 
  42 struct amiga_floppy_struct {
  43     struct fd_drive_type *type; /* type of floppy for this unit */
  44     struct fd_data_type *dtype; /* type of floppy for this unit */
  45     int track;                  /* current track (-1 == unknown) */
  46 
  47     int blocks;                 /* total # blocks on disk */
  48     int sects;                  /* number of sectors per track */
  49 
  50     int disk;                   /* disk in drive (-1 == unknown) */
  51     int motor;                  /* true when motor is at speed */
  52     int busy;                   /* true when drive is active */
  53     int status;                 /* current error code for unit */
  54 };
  55 #endif
  56 
  57 #endif

/* [previous][next][first][last][top][bottom][index][help] */