📄 cpqarray.h
字号:
/* * Disk Array driver for Compaq SMART2 Controllers * Copyright 1998 Compaq Computer Corporation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or * NON INFRINGEMENT. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * Questions/Comments/Bugfixes to arrays@compaq.com * * If you want to make changes, improve or add functionality to this * driver, you'll probably need the Compaq Array Controller Interface * Specificiation (Document number ECG086/1198) */#ifndef CPQARRAY_H#define CPQARRAY_H#ifdef __KERNEL__#include <linux/blkdev.h>#include <linux/locks.h>#include <linux/malloc.h>#include <linux/proc_fs.h>#include <linux/timer.h>#endif#include "ida_cmd.h"#define IO_OK 0#define IO_ERROR 1#define NWD 16#define NWD_SHIFT 4#define IDA_TIMER (5*HZ)#define IDA_TIMEOUT (10*HZ)#define MISC_NONFATAL_WARN 0x01typedef struct { unsigned blk_size; unsigned nr_blks; unsigned cylinders; unsigned heads; unsigned sectors; int usage_count;} drv_info_t;#ifdef __KERNEL__struct ctlr_info;typedef struct ctlr_info ctlr_info_t;struct access_method { void (*submit_command)(ctlr_info_t *h, cmdlist_t *c); void (*set_intr_mask)(ctlr_info_t *h, unsigned long val); unsigned long (*fifo_full)(ctlr_info_t *h); unsigned long (*intr_pending)(ctlr_info_t *h); unsigned long (*command_completed)(ctlr_info_t *h);};struct board_type { __u32 board_id; char *product_name; struct access_method *access;};struct ctlr_info { int ctlr; char devname[8]; __u32 log_drv_map; __u32 drv_assign_map; __u32 drv_spare_map; __u32 mp_failed_drv_map; char firm_rev[4]; int ctlr_sig; int log_drives; int phys_drives; struct pci_dev *pci_dev; /* NULL if EISA */ __u32 board_id; char *product_name; void *vaddr; unsigned long paddr; unsigned long ioaddr; int intr; int usage_count; drv_info_t drv[NWD]; struct proc_dir_entry *proc; struct access_method access; cmdlist_t *reqQ; cmdlist_t *cmpQ; cmdlist_t *cmd_pool; __u32 *cmd_pool_bits; unsigned int Qdepth; unsigned int maxQsinceinit; unsigned int nr_requests; unsigned int nr_allocs; unsigned int nr_frees; struct timer_list timer; unsigned int misc_tflags;};#endif#endif /* CPQARRAY_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -