Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/drivers/scsi/sym53c8xx_2/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 5 kB image not shown  

Quelle  sym53c8xx.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * 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>
 *
 *-----------------------------------------------------------------------------
 */


#ifndef SYM53C8XX_H
#define SYM53C8XX_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];
};

#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 */

Messung V0.5
C=90 H=94 G=91

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.