ftape-io.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:3k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _FTAPE_IO_H
  2. #define _FTAPE_IO_H
  3. /*
  4.  * Copyright (C) 1993-1996 Bas Laarhoven,
  5.  *           (C) 1997      Claus-Justus Heine.
  6.  This program is free software; you can redistribute it and/or modify
  7.  it under the terms of the GNU General Public License as published by
  8.  the Free Software Foundation; either version 2, or (at your option)
  9.  any later version.
  10.  This program is distributed in the hope that it will be useful,
  11.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  GNU General Public License for more details.
  14.  You should have received a copy of the GNU General Public License
  15.  along with this program; see the file COPYING.  If not, write to
  16.  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  17.  *
  18.  * $Source: /homes/cvs/ftape-stacked/ftape/lowlevel/ftape-io.h,v $
  19.  * $Revision: 1.2 $
  20.  * $Date: 1997/10/05 19:18:18 $
  21.  *
  22.  *      This file contains definitions for the glue part of the
  23.  *      QIC-40/80/3010/3020 floppy-tape driver "ftape" for Linux.
  24.  */
  25. #include <linux/qic117.h>
  26. #include <linux/ftape-vendors.h>
  27. typedef struct {
  28. unsigned int seek;
  29. unsigned int reset;
  30. unsigned int rewind;
  31. unsigned int head_seek;
  32. unsigned int stop;
  33. unsigned int pause;
  34. } ft_timeout_table;
  35. typedef enum {
  36. prehistoric, pre_qic117c, post_qic117b, post_qic117d 
  37. } qic_model;
  38. /*
  39.  *      ftape-io.c defined global vars.
  40.  */
  41. extern ft_timeout_table ftape_timeout;
  42. extern unsigned int ftape_tape_len;
  43. extern volatile qic117_cmd_t ftape_current_command;
  44. extern const struct qic117_command_table qic117_cmds[];
  45. extern int ftape_might_be_off_track;
  46. /*
  47.  *      ftape-io.c defined global functions.
  48.  */
  49. extern void ftape_udelay(unsigned int usecs);
  50. extern void  ftape_udelay_calibrate(void);
  51. extern void ftape_sleep(unsigned int time);
  52. extern void ftape_report_vendor_id(unsigned int *id);
  53. extern int  ftape_command(qic117_cmd_t command);
  54. extern int  ftape_command_wait(qic117_cmd_t command,
  55.        unsigned int timeout,
  56.        int *status);
  57. extern int  ftape_parameter(unsigned int parameter);
  58. extern int  ftape_parameter_wait(unsigned int parameter,
  59.  unsigned int timeout,
  60.  int *status);
  61. extern int ftape_report_operation(int *status,
  62.   qic117_cmd_t  command,
  63.   int result_length);
  64. extern int ftape_report_configuration(qic_model *model,
  65.       unsigned int *rate,
  66.       int *qic_std,
  67.       int *tape_len);
  68. extern int ftape_report_drive_status(int *status);
  69. extern int ftape_report_raw_drive_status(int *status);
  70. extern int ftape_report_status(int *status);
  71. extern int ftape_ready_wait(unsigned int timeout, int *status);
  72. extern int ftape_seek_head_to_track(unsigned int track);
  73. extern int ftape_in_error_state(int status);
  74. extern int ftape_set_data_rate(unsigned int new_rate, unsigned int qic_std);
  75. extern int ftape_report_error(unsigned int *error,
  76.       qic117_cmd_t *command,
  77.       int report);
  78. extern int ftape_reset_drive(void);
  79. extern int ftape_put_drive_to_sleep(wake_up_types method);
  80. extern int ftape_wakeup_drive(wake_up_types method);
  81. extern int ftape_increase_threshold(void);
  82. extern int ftape_half_data_rate(void);
  83. #endif