/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * wd33c93.h - Linux device driver definitions for the * Commodore Amiga A2091/590 SCSI controller card * * IMPORTANT: This file is for version 1.25 - 09/Jul/1997 * * Copyright (c) 1996 John Shifflett, GeoLog Consulting * john@geolog.com * jshiffle@netcom.com
*/ #ifndef WD33C93_H #define WD33C93_H
#define PROC_INTERFACE /* add code for /proc/scsi/wd33c93/xxx interface */ #ifdef PROC_INTERFACE #define PROC_STATISTICS /* add code for keeping various real time stats */ #endif
#define SYNC_DEBUG /* extra info on sync negotiation printed */ #define DEBUGGING_ON /* enable command-line debugging bitmask */ #define DEBUG_DEFAULTS 0 /* default debugging bitmask */
/* define these so we don't have to change a2091.c, etc. */ #define WD33C93_FS_8_10 OWNID_FS_8 #define WD33C93_FS_12_15 OWNID_FS_12 #define WD33C93_FS_16_20 OWNID_FS_16
struct WD33C93_hostdata { struct Scsi_Host *next;
wd33c93_regs regs;
spinlock_t lock;
uchar clock_freq;
uchar chip; /* what kind of wd33c93? */
uchar microcode; /* microcode rev */
uchar dma_buffer_pool; /* FEF: buffer from chip_ram? */ int dma_dir; /* data transfer dir. */
dma_setup_t dma_setup;
dma_stop_t dma_stop; unsignedint dma_xfer_mask;
uchar *dma_bounce_buffer; unsignedint dma_bounce_len; volatile uchar busy[8]; /* index = target, bit = lun */ volatilestruct scsi_cmnd *input_Q; /* commands waiting to be started */ volatilestruct scsi_cmnd *selecting; /* trying to select this command */ volatilestruct scsi_cmnd *connected; /* currently connected command */ volatilestruct scsi_cmnd *disconnected_Q;/* commands waiting for reconnect */
uchar state; /* what we are currently doing */
uchar dma; /* current state of DMA (on/off) */
uchar level2; /* extent to which Level-2 commands are used */
uchar disconnect; /* disconnect/reselect policy */ unsignedint args; /* set from command-line argument */
uchar incoming_msg[8]; /* filled during message_in phase */ int incoming_ptr; /* mainly used with EXTENDED messages */
uchar outgoing_msg[8]; /* send this during next message_out */ int outgoing_len; /* length of outgoing message */ unsignedint default_sx_per; /* default transfer period for SCSI bus */
uchar sync_xfer[8]; /* sync_xfer reg settings per target */
uchar sync_stat[8]; /* status of sync negotiation per target */
uchar no_sync; /* bitmask: don't do sync on these targets */
uchar no_dma; /* set this flag to disable DMA */
uchar dma_mode; /* DMA Burst Mode or Single Byte DMA */
uchar fast; /* set this flag to enable Fast SCSI */ struct sx_period sx_table[9]; /* transfer periods for actual DTC-setting */ #ifdef PROC_INTERFACE
uchar proc; /* bitmask: what's in proc output */ #ifdef PROC_STATISTICS unsignedlong cmd_cnt[8]; /* # of commands issued per target */ unsignedlong int_cnt; /* # of interrupts serviced */ unsignedlong pio_cnt; /* # of pio data transfers */ unsignedlong dma_cnt; /* # of DMA data transfers */ unsignedlong disc_allowed_cnt[8]; /* # of disconnects allowed per target */ unsignedlong disc_done_cnt[8]; /* # of disconnects done per target*/ #endif #endif
};
/* defines for hostdata->level2 */ /* NOTE: only the first 3 are implemented so far */
#define L2_NONE 1 /* no combination commands - we get lots of ints */ #define L2_SELECT 2 /* start with SEL_ATN_XFER, but never resume it */ #define L2_BASIC 3 /* resume after STATUS ints & RDP messages */ #define L2_DATA 4 /* resume after DATA_IN/OUT ints */ #define L2_MOST 5 /* resume after anything except a RESELECT int */ #define L2_RESELECT 6 /* resume after everything, including RESELECT ints */ #define L2_ALL 7 /* always resume */
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.