⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sym53c8xx.h

📁 linux-2.6.15.6
💻 H
字号:
/* * Device driver for the SYMBIOS/LSILOGIC 53C8XX and 53C1010 family  * of PCI-SCSI IO processors. * * Copyright (C) 1999-2001  Gerard Roudier <groudier@free.fr> * * This driver is derived from the Linux sym53c8xx driver. * Copyright (C) 1998-2000  Gerard Roudier * * The sym53c8xx driver is derived from the ncr53c8xx driver that had been  * a port of the FreeBSD ncr driver to Linux-1.2.13. * * The original ncr driver has been written for 386bsd and FreeBSD by *         Wolfgang Stanglmeier        <wolf@cologne.de> *         Stefan Esser                <se@mi.Uni-Koeln.de> * Copyright (C) 1994  Wolfgang Stanglmeier * * Other major contributions: * * NVRAM detection and reading. * Copyright (C) 1997 Richard Waltham <dormouse@farsrobt.demon.co.uk> * *----------------------------------------------------------------------------- * * 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.  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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#ifndef SYM53C8XX_H#define SYM53C8XX_H#include <linux/config.h>/* *  DMA addressing mode. * *  0 : 32 bit addressing for all chips. *  1 : 40 bit addressing when supported by chip. *  2 : 64 bit addressing when supported by chip, *      limited to 16 segments of 4 GB -> 64 GB max. */#define	SYM_CONF_DMA_ADDRESSING_MODE CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE/* *  NVRAM support. */#if 1#define SYM_CONF_NVRAM_SUPPORT		(1)#endif/* *  These options are not tunable from 'make config' */#if 1#define	SYM_LINUX_PROC_INFO_SUPPORT#define SYM_LINUX_USER_COMMAND_SUPPORT#define SYM_LINUX_USER_INFO_SUPPORT#define SYM_LINUX_DEBUG_CONTROL_SUPPORT#endif/* *  Also handle old NCR chips if not (0). */#define SYM_CONF_GENERIC_SUPPORT	(1)/* *  Allow tags from 2 to 256, default 8 */#ifndef CONFIG_SCSI_SYM53C8XX_MAX_TAGS#define CONFIG_SCSI_SYM53C8XX_MAX_TAGS	(8)#endif#if	CONFIG_SCSI_SYM53C8XX_MAX_TAGS < 2#define SYM_CONF_MAX_TAG	(2)#elif	CONFIG_SCSI_SYM53C8XX_MAX_TAGS > 256#define SYM_CONF_MAX_TAG	(256)#else#define	SYM_CONF_MAX_TAG	CONFIG_SCSI_SYM53C8XX_MAX_TAGS#endif#ifndef	CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS#define	CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS	SYM_CONF_MAX_TAG#endif/* *  Anyway, we configure the driver for at least 64 tags per LUN. :) */#if	SYM_CONF_MAX_TAG <= 64#define SYM_CONF_MAX_TAG_ORDER	(6)#elif	SYM_CONF_MAX_TAG <= 128#define SYM_CONF_MAX_TAG_ORDER	(7)#else#define SYM_CONF_MAX_TAG_ORDER	(8)#endif/* *  Max number of SG entries. */#define SYM_CONF_MAX_SG		(96)/* *  Driver setup structure. * *  This structure is initialized from linux config options. *  It can be overridden at boot-up by the boot command line. */struct sym_driver_setup {	u_short	max_tag;	u_char	burst_order;	u_char	scsi_led;	u_char	scsi_diff;	u_char	irq_mode;	u_char	scsi_bus_check;	u_char	host_id;	u_char	verbose;	u_char	settle_delay;	u_char	use_nvram;	u_long	excludes[8];	char	tag_ctrl[100];};#define SYM_SETUP_MAX_TAG		sym_driver_setup.max_tag#define SYM_SETUP_BURST_ORDER		sym_driver_setup.burst_order#define SYM_SETUP_SCSI_LED		sym_driver_setup.scsi_led#define SYM_SETUP_SCSI_DIFF		sym_driver_setup.scsi_diff#define SYM_SETUP_IRQ_MODE		sym_driver_setup.irq_mode#define SYM_SETUP_SCSI_BUS_CHECK	sym_driver_setup.scsi_bus_check#define SYM_SETUP_HOST_ID		sym_driver_setup.host_id#define boot_verbose			sym_driver_setup.verbose/* *  Initial setup. * *  Can be overriden at startup by a command line. */#define SYM_LINUX_DRIVER_SETUP	{				\	.max_tag	= CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS,	\	.burst_order	= 7,					\	.scsi_led	= 1,					\	.scsi_diff	= 1,					\	.irq_mode	= 0,					\	.scsi_bus_check	= 1,					\	.host_id	= 7,					\	.verbose	= 0,					\	.settle_delay	= 3,					\	.use_nvram	= 1,					\}extern struct sym_driver_setup sym_driver_setup;extern unsigned int sym_debug_flags;#define DEBUG_FLAGS	sym_debug_flags/* *  Max number of targets. *  Maximum is 16 and you are advised not to change this value. */#ifndef SYM_CONF_MAX_TARGET#define SYM_CONF_MAX_TARGET	(16)#endif/* *  Max number of logical units. *  SPI-2 allows up to 64 logical units, but in real life, target *  that implements more that 7 logical units are pretty rare. *  Anyway, the cost of accepting up to 64 logical unit is low in  *  this driver, thus going with the maximum is acceptable. */#ifndef SYM_CONF_MAX_LUN#define SYM_CONF_MAX_LUN	(64)#endif/* *  Max number of IO control blocks queued to the controller. *  Each entry needs 8 bytes and the queues are allocated contiguously. *  Since we donnot want to allocate more than a page, the theorical  *  maximum is PAGE_SIZE/8. For safety, we announce a bit less to the  *  access method. :) *  When not supplied, as it is suggested, the driver compute some  *  good value for this parameter. *//* #define SYM_CONF_MAX_START	(PAGE_SIZE/8 - 16) *//* *  Support for Immediate Arbitration. *  Not advised. *//* #define SYM_CONF_IARB_SUPPORT *//* *  Only relevant if IARB support configured. *  - Max number of successive settings of IARB hints. *  - Set IARB on arbitration lost. */#define SYM_CONF_IARB_MAX 3#define SYM_CONF_SET_IARB_ON_ARB_LOST 1/* *  Returning wrong residuals may make problems. *  When zero, this define tells the driver to  *  always return 0 as transfer residual. *  Btw, all my testings of residuals have succeeded. */#define SYM_SETUP_RESIDUAL_SUPPORT 1#endif /* SYM53C8XX_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -