~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/drivers/block/cpqarray.h

Version: ~ [ 2.2.5 ] ~ [ 2.4.1 ] ~ [ 2.4.9 ] ~ [ 2.6.17.10 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  *    Disk Array driver for Compaq SMART2 Controllers
  3  *    Copyright 1998 Compaq Computer Corporation
  4  *
  5  *    This program is free software; you can redistribute it and/or modify
  6  *    it under the terms of the GNU General Public License as published by
  7  *    the Free Software Foundation; either version 2 of the License, or
  8  *    (at your option) any later version.
  9  *
 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, GOOD TITLE or
 13  *    NON INFRINGEMENT.  See the GNU General Public License for more details.
 14  *
 15  *    You should have received a copy of the GNU General Public License
 16  *    along with this program; if not, write to the Free Software
 17  *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 18  *
 19  *    Questions/Comments/Bugfixes to arrays@compaq.com
 20  *
 21  *    If you want to make changes, improve or add functionality to this
 22  *    driver, you'll probably need the Compaq Array Controller Interface
 23  *    Specificiation (Document number ECG086/1198)
 24  */
 25 #ifndef CPQARRAY_H
 26 #define CPQARRAY_H
 27 
 28 #ifdef __KERNEL__
 29 #include <linux/blkdev.h>
 30 #include <linux/locks.h>
 31 #include <linux/malloc.h>
 32 #include <linux/proc_fs.h>
 33 #include <linux/timer.h>
 34 #endif
 35 
 36 #include "ida_cmd.h"
 37 
 38 #define IO_OK           0
 39 #define IO_ERROR        1
 40 #define NWD             16
 41 #define NWD_SHIFT       4
 42 
 43 #define IDA_TIMER       (5*HZ)
 44 #define IDA_TIMEOUT     (10*HZ)
 45 
 46 #define MISC_NONFATAL_WARN      0x01
 47 
 48 typedef struct {
 49         unsigned blk_size;
 50         unsigned nr_blks;
 51         unsigned cylinders;
 52         unsigned heads;
 53         unsigned sectors;
 54         int usage_count;
 55 } drv_info_t;
 56 
 57 #ifdef __KERNEL__
 58 
 59 struct ctlr_info;
 60 typedef struct ctlr_info ctlr_info_t;
 61 
 62 struct access_method {
 63         void (*submit_command)(ctlr_info_t *h, cmdlist_t *c);
 64         void (*set_intr_mask)(ctlr_info_t *h, unsigned long val);
 65         unsigned long (*fifo_full)(ctlr_info_t *h);
 66         unsigned long (*intr_pending)(ctlr_info_t *h);
 67         unsigned long (*command_completed)(ctlr_info_t *h);
 68 };
 69 
 70 struct board_type {
 71         __u32   board_id;
 72         char    *product_name;
 73         struct access_method *access;
 74 };
 75 
 76 struct ctlr_info {
 77         int     ctlr;
 78         char    devname[8];
 79         __u32   log_drv_map;
 80         __u32   drv_assign_map;
 81         __u32   drv_spare_map;
 82         __u32   mp_failed_drv_map;
 83 
 84         char    firm_rev[4];
 85         int     ctlr_sig;
 86 
 87         int     log_drives;
 88         int     phys_drives;
 89 
 90         struct pci_dev *pci_dev;    /* NULL if EISA */
 91         __u32   board_id;
 92         char    *product_name;  
 93 
 94         void *vaddr;
 95         unsigned long paddr;
 96         unsigned long ioaddr;
 97         int     intr;
 98         int     usage_count;
 99         drv_info_t      drv[NWD];
100         struct proc_dir_entry *proc;
101 
102         struct access_method access;
103 
104         cmdlist_t *reqQ;
105         cmdlist_t *cmpQ;
106         cmdlist_t *cmd_pool;
107         __u32   *cmd_pool_bits;
108 
109         unsigned int Qdepth;
110         unsigned int maxQsinceinit;
111 
112         unsigned int nr_requests;
113         unsigned int nr_allocs;
114         unsigned int nr_frees;
115         struct timer_list timer;
116         unsigned int misc_tflags;
117 };
118 #endif
119 
120 #endif /* CPQARRAY_H */
121 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.