OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [block/] [cpqarray.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
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 iss_storagedev@hp.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/slab.h>
31
#include <linux/proc_fs.h>
32
#include <linux/timer.h>
33
#endif
34
 
35
#include "ida_cmd.h"
36
 
37
#define IO_OK           0
38
#define IO_ERROR        1
39
#define NWD             16
40
#define NWD_SHIFT       4
41
 
42
#define IDA_TIMER       (5*HZ)
43
#define IDA_TIMEOUT     (10*HZ)
44
 
45
#define MISC_NONFATAL_WARN      0x01
46
 
47
typedef struct {
48
        unsigned blk_size;
49
        unsigned nr_blks;
50
        unsigned cylinders;
51
        unsigned heads;
52
        unsigned sectors;
53
        int usage_count;
54
} drv_info_t;
55
 
56
#ifdef __KERNEL__
57
 
58
struct ctlr_info;
59
typedef struct ctlr_info ctlr_info_t;
60
 
61
struct access_method {
62
        void (*submit_command)(ctlr_info_t *h, cmdlist_t *c);
63
        void (*set_intr_mask)(ctlr_info_t *h, unsigned long val);
64
        unsigned long (*fifo_full)(ctlr_info_t *h);
65
        unsigned long (*intr_pending)(ctlr_info_t *h);
66
        unsigned long (*command_completed)(ctlr_info_t *h);
67
};
68
 
69
struct board_type {
70
        __u32   board_id;
71
        char    *product_name;
72
        struct access_method *access;
73
};
74
 
75
struct ctlr_info {
76
        int     ctlr;
77
        char    devname[8];
78
        __u32   log_drv_map;
79
        __u32   drv_assign_map;
80
        __u32   drv_spare_map;
81
        __u32   mp_failed_drv_map;
82
 
83
        char    firm_rev[4];
84
        int     ctlr_sig;
85
 
86
        int     log_drives;
87
        int     phys_drives;
88
 
89
        struct pci_dev *pci_dev;    /* NULL if EISA */
90
        __u32   board_id;
91
        char    *product_name;
92
 
93
        void __iomem *vaddr;
94
        unsigned long paddr;
95
        unsigned long io_mem_addr;
96
        unsigned long io_mem_length;
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
        dma_addr_t cmd_pool_dhandle;
108
        unsigned long *cmd_pool_bits;
109
        struct request_queue *queue;
110
        spinlock_t lock;
111
 
112
        unsigned int Qdepth;
113
        unsigned int maxQsinceinit;
114
 
115
        unsigned int nr_requests;
116
        unsigned int nr_allocs;
117
        unsigned int nr_frees;
118
        struct timer_list timer;
119
        unsigned int misc_tflags;
120
};
121
 
122
#define IDA_LOCK(i)     (&hba[i]->lock)
123
 
124
#endif
125
 
126
#endif /* CPQARRAY_H */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.