You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[SCSI] aci7xxx_old: delete decade+ obsolete driver
After getting warnings in an allyesconfig build[1] from this
driver, I decided to remind myself just how old it was, and
whether it warranted fixing. In the Kconfig help text, I found:
"This driver will eventually be phased out entirely"
Going back to the history archive, I see the line was added[2]
in Feb 2002, when we moved from v2.4.2.1 ---> v2.4.2.2
So, with over a decade of notification, and multiple major releases
since then, I think we can justify removing this. Currently we have
people wasting time building it during routine testing, and then
wasting more time re-researching the known reported warnings, only to
find that nobody really is willing to integrate the fixes[3] for it.
A quick search didn't seem to indicate any active user base for it.
If someone happens to have a quirky _old_ card that the eleven year
old "new" driver doesn't work with, then it is entirely reasonable
that they stick with a kernel version that predates this removal.
[1] drivers/scsi/aic7xxx_old.c: In function ‘aic7xxx_register’:
drivers/scsi/aic7xxx_old.c:7901:5: warning: case value ‘257’ not in enumerated type ‘ahc_chip’ [-Wswitch]
drivers/scsi/aic7xxx_old.c:7898:5: warning: case value ‘513’ not in enumerated type ‘ahc_chip’ [-Wswitch]
drivers/scsi/aic7xxx_old.c: In function ‘aic7xxx_load_seeprom’:
drivers/scsi/aic7xxx_old.c:8517:5: warning: case value ‘257’ not in enumerated type ‘ahc_chip’ [-Wswitch]
drivers/scsi/aic7xxx_old.c:8510:5: warning: case value ‘513’ not in enumerated type ‘ahc_chip’ [-Wswitch]
[2] http://git.kernel.org/cgit/linux/kernel/git/tglx/history.git commit 44e8778c
[3] https://lkml.org/lkml/2012/10/29/215
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Acked-by: Hannes Reinecke <hare@suse.de>
Acked-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
committed by
James Bottomley
parent
59ab3c9323
commit
1a4049ddfd
@@ -42,8 +42,6 @@ aic79xx.txt
|
||||
- Adaptec Ultra320 SCSI host adapters
|
||||
aic7xxx.txt
|
||||
- info on driver for Adaptec controllers
|
||||
aic7xxx_old.txt
|
||||
- info on driver for Adaptec controllers, old generation
|
||||
arcmsr_spec.txt
|
||||
- ARECA FIRMWARE SPEC (for IOP331 adapter)
|
||||
dc395x.txt
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -484,7 +484,6 @@ M: Hannes Reinecke <hare@suse.de>
|
||||
L: linux-scsi@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/scsi/aic7xxx/
|
||||
F: drivers/scsi/aic7xxx_old/
|
||||
|
||||
AIMSLAB FM RADIO RECEIVER DRIVER
|
||||
M: Hans Verkuil <hverkuil@xs4all.nl>
|
||||
|
||||
@@ -499,47 +499,6 @@ config SCSI_AACRAID
|
||||
|
||||
|
||||
source "drivers/scsi/aic7xxx/Kconfig.aic7xxx"
|
||||
|
||||
config SCSI_AIC7XXX_OLD
|
||||
tristate "Adaptec AIC7xxx support (old driver)"
|
||||
depends on (ISA || EISA || PCI ) && SCSI
|
||||
help
|
||||
WARNING This driver is an older aic7xxx driver and is no longer
|
||||
under active development. Adaptec, Inc. is writing a new driver to
|
||||
take the place of this one, and it is recommended that whenever
|
||||
possible, people should use the new Adaptec written driver instead
|
||||
of this one. This driver will eventually be phased out entirely.
|
||||
|
||||
This is support for the various aic7xxx based Adaptec SCSI
|
||||
controllers. These include the 274x EISA cards; 284x VLB cards;
|
||||
2902, 2910, 293x, 294x, 394x, 3985 and several other PCI and
|
||||
motherboard based SCSI controllers from Adaptec. It does not support
|
||||
the AAA-13x RAID controllers from Adaptec, nor will it likely ever
|
||||
support them. It does not support the 2920 cards from Adaptec that
|
||||
use the Future Domain SCSI controller chip. For those cards, you
|
||||
need the "Future Domain 16xx SCSI support" driver.
|
||||
|
||||
In general, if the controller is based on an Adaptec SCSI controller
|
||||
chip from the aic777x series or the aic78xx series, this driver
|
||||
should work. The only exception is the 7810 which is specifically
|
||||
not supported (that's the RAID controller chip on the AAA-13x
|
||||
cards).
|
||||
|
||||
Note that the AHA2920 SCSI host adapter is *not* supported by this
|
||||
driver; choose "Future Domain 16xx SCSI support" instead if you have
|
||||
one of those.
|
||||
|
||||
Information on the configuration options for this controller can be
|
||||
found by checking the help file for each of the available
|
||||
configuration options. You should read
|
||||
<file:Documentation/scsi/aic7xxx_old.txt> at a minimum before
|
||||
contacting the maintainer with any questions. The SCSI-HOWTO,
|
||||
available from <http://www.tldp.org/docs.html#howto>, can also
|
||||
be of great help.
|
||||
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called aic7xxx_old.
|
||||
|
||||
source "drivers/scsi/aic7xxx/Kconfig.aic79xx"
|
||||
source "drivers/scsi/aic94xx/Kconfig"
|
||||
source "drivers/scsi/mvsas/Kconfig"
|
||||
|
||||
@@ -70,7 +70,6 @@ obj-$(CONFIG_SCSI_AHA1740) += aha1740.o
|
||||
obj-$(CONFIG_SCSI_AIC7XXX) += aic7xxx/
|
||||
obj-$(CONFIG_SCSI_AIC79XX) += aic7xxx/
|
||||
obj-$(CONFIG_SCSI_AACRAID) += aacraid/
|
||||
obj-$(CONFIG_SCSI_AIC7XXX_OLD) += aic7xxx_old.o
|
||||
obj-$(CONFIG_SCSI_AIC94XX) += aic94xx/
|
||||
obj-$(CONFIG_SCSI_PM8001) += pm8001/
|
||||
obj-$(CONFIG_SCSI_ISCI) += isci/
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,28 +0,0 @@
|
||||
/*+M*************************************************************************
|
||||
* Adaptec AIC7xxx device driver for Linux.
|
||||
*
|
||||
* Copyright (c) 1994 John Aycock
|
||||
* The University of Calgary Department of Computer Science.
|
||||
*
|
||||
* 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, 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; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* $Id: aic7xxx.h,v 3.2 1996/07/23 03:37:26 deang Exp $
|
||||
*-M*************************************************************************/
|
||||
#ifndef _aic7xxx_h
|
||||
#define _aic7xxx_h
|
||||
|
||||
#define AIC7XXX_H_VERSION "5.2.0"
|
||||
|
||||
#endif /* _aic7xxx_h */
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,270 +0,0 @@
|
||||
/*+M*************************************************************************
|
||||
* Adaptec AIC7xxx device driver proc support for Linux.
|
||||
*
|
||||
* Copyright (c) 1995, 1996 Dean W. Gehnert
|
||||
*
|
||||
* 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, 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; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
* o Modified from the EATA-DMA /proc support.
|
||||
* o Additional support for device block statistics provided by
|
||||
* Matthew Jacob.
|
||||
* o Correction of overflow by Heinz Mauelshagen
|
||||
* o Adittional corrections by Doug Ledford
|
||||
*
|
||||
* Dean W. Gehnert, deang@teleport.com, 05/01/96
|
||||
*
|
||||
* $Id: aic7xxx_proc.c,v 4.1 1997/06/97 08:23:42 deang Exp $
|
||||
*-M*************************************************************************/
|
||||
|
||||
|
||||
#define HDRB \
|
||||
" 0 - 4K 4 - 16K 16 - 64K 64 - 256K 256K - 1M 1M+"
|
||||
|
||||
|
||||
/*+F*************************************************************************
|
||||
* Function:
|
||||
* aic7xxx_show_info
|
||||
*
|
||||
* Description:
|
||||
* Return information to handle /proc support for the driver.
|
||||
*-F*************************************************************************/
|
||||
int
|
||||
aic7xxx_show_info(struct seq_file *m, struct Scsi_Host *HBAptr)
|
||||
{
|
||||
struct aic7xxx_host *p;
|
||||
struct aic_dev_data *aic_dev;
|
||||
struct scsi_device *sdptr;
|
||||
unsigned char i;
|
||||
unsigned char tindex;
|
||||
|
||||
for(p=first_aic7xxx; p && p->host != HBAptr; p=p->next)
|
||||
;
|
||||
|
||||
if (!p)
|
||||
{
|
||||
seq_printf(m, "Can't find adapter for host number %d\n", HBAptr->host_no);
|
||||
return 0;
|
||||
}
|
||||
|
||||
p = (struct aic7xxx_host *) HBAptr->hostdata;
|
||||
|
||||
seq_printf(m, "Adaptec AIC7xxx driver version: ");
|
||||
seq_printf(m, "%s/", AIC7XXX_C_VERSION);
|
||||
seq_printf(m, "%s", AIC7XXX_H_VERSION);
|
||||
seq_printf(m, "\n");
|
||||
seq_printf(m, "Adapter Configuration:\n");
|
||||
seq_printf(m, " SCSI Adapter: %s\n",
|
||||
board_names[p->board_name_index]);
|
||||
if (p->flags & AHC_TWIN)
|
||||
seq_printf(m, " Twin Channel Controller ");
|
||||
else
|
||||
{
|
||||
char *channel = "";
|
||||
char *ultra = "";
|
||||
char *wide = "Narrow ";
|
||||
if (p->flags & AHC_MULTI_CHANNEL)
|
||||
{
|
||||
channel = " Channel A";
|
||||
if (p->flags & (AHC_CHNLB|AHC_CHNLC))
|
||||
channel = (p->flags & AHC_CHNLB) ? " Channel B" : " Channel C";
|
||||
}
|
||||
if (p->features & AHC_WIDE)
|
||||
wide = "Wide ";
|
||||
if (p->features & AHC_ULTRA3)
|
||||
{
|
||||
switch(p->chip & AHC_CHIPID_MASK)
|
||||
{
|
||||
case AHC_AIC7892:
|
||||
case AHC_AIC7899:
|
||||
ultra = "Ultra-160/m LVD/SE ";
|
||||
break;
|
||||
default:
|
||||
ultra = "Ultra-3 LVD/SE ";
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (p->features & AHC_ULTRA2)
|
||||
ultra = "Ultra-2 LVD/SE ";
|
||||
else if (p->features & AHC_ULTRA)
|
||||
ultra = "Ultra ";
|
||||
seq_printf(m, " %s%sController%s ",
|
||||
ultra, wide, channel);
|
||||
}
|
||||
switch(p->chip & ~AHC_CHIPID_MASK)
|
||||
{
|
||||
case AHC_VL:
|
||||
seq_printf(m, "at VLB slot %d\n", p->pci_device_fn);
|
||||
break;
|
||||
case AHC_EISA:
|
||||
seq_printf(m, "at EISA slot %d\n", p->pci_device_fn);
|
||||
break;
|
||||
default:
|
||||
seq_printf(m, "at PCI %d/%d/%d\n", p->pci_bus,
|
||||
PCI_SLOT(p->pci_device_fn), PCI_FUNC(p->pci_device_fn));
|
||||
break;
|
||||
}
|
||||
if( !(p->maddr) )
|
||||
{
|
||||
seq_printf(m, " Programmed I/O Base: %lx\n", p->base);
|
||||
}
|
||||
else
|
||||
{
|
||||
seq_printf(m, " PCI MMAPed I/O Base: 0x%lx\n", p->mbase);
|
||||
}
|
||||
if( (p->chip & (AHC_VL | AHC_EISA)) )
|
||||
{
|
||||
seq_printf(m, " BIOS Memory Address: 0x%08x\n", p->bios_address);
|
||||
}
|
||||
seq_printf(m, " Adapter SEEPROM Config: %s\n",
|
||||
(p->flags & AHC_SEEPROM_FOUND) ? "SEEPROM found and used." :
|
||||
((p->flags & AHC_USEDEFAULTS) ? "SEEPROM not found, using defaults." :
|
||||
"SEEPROM not found, using leftover BIOS values.") );
|
||||
seq_printf(m, " Adaptec SCSI BIOS: %s\n",
|
||||
(p->flags & AHC_BIOS_ENABLED) ? "Enabled" : "Disabled");
|
||||
seq_printf(m, " IRQ: %d\n", HBAptr->irq);
|
||||
seq_printf(m, " SCBs: Active %d, Max Active %d,\n",
|
||||
p->activescbs, p->max_activescbs);
|
||||
seq_printf(m, " Allocated %d, HW %d, "
|
||||
"Page %d\n", p->scb_data->numscbs, p->scb_data->maxhscbs,
|
||||
p->scb_data->maxscbs);
|
||||
if (p->flags & AHC_EXTERNAL_SRAM)
|
||||
seq_printf(m, " Using External SCB SRAM\n");
|
||||
seq_printf(m, " Interrupts: %ld", p->isr_count);
|
||||
if (p->chip & AHC_EISA)
|
||||
{
|
||||
seq_printf(m, " %s\n",
|
||||
(p->pause & IRQMS) ? "(Level Sensitive)" : "(Edge Triggered)");
|
||||
}
|
||||
else
|
||||
{
|
||||
seq_printf(m, "\n");
|
||||
}
|
||||
seq_printf(m, " BIOS Control Word: 0x%04x\n",
|
||||
p->bios_control);
|
||||
seq_printf(m, " Adapter Control Word: 0x%04x\n",
|
||||
p->adapter_control);
|
||||
seq_printf(m, " Extended Translation: %sabled\n",
|
||||
(p->flags & AHC_EXTEND_TRANS_A) ? "En" : "Dis");
|
||||
seq_printf(m, "Disconnect Enable Flags: 0x%04x\n", p->discenable);
|
||||
if (p->features & (AHC_ULTRA | AHC_ULTRA2))
|
||||
{
|
||||
seq_printf(m, " Ultra Enable Flags: 0x%04x\n", p->ultraenb);
|
||||
}
|
||||
seq_printf(m, "Default Tag Queue Depth: %d\n", aic7xxx_default_queue_depth);
|
||||
seq_printf(m, " Tagged Queue By Device array for aic7xxx host "
|
||||
"instance %d:\n", p->instance);
|
||||
seq_printf(m, " {");
|
||||
for(i=0; i < (MAX_TARGETS - 1); i++)
|
||||
seq_printf(m, "%d,",aic7xxx_tag_info[p->instance].tag_commands[i]);
|
||||
seq_printf(m, "%d}\n",aic7xxx_tag_info[p->instance].tag_commands[i]);
|
||||
|
||||
seq_printf(m, "\n");
|
||||
seq_printf(m, "Statistics:\n\n");
|
||||
list_for_each_entry(aic_dev, &p->aic_devs, list)
|
||||
{
|
||||
sdptr = aic_dev->SDptr;
|
||||
tindex = sdptr->channel << 3 | sdptr->id;
|
||||
seq_printf(m, "(scsi%d:%d:%d:%d)\n",
|
||||
p->host_no, sdptr->channel, sdptr->id, sdptr->lun);
|
||||
seq_printf(m, " Device using %s/%s",
|
||||
(aic_dev->cur.width == MSG_EXT_WDTR_BUS_16_BIT) ?
|
||||
"Wide" : "Narrow",
|
||||
(aic_dev->cur.offset != 0) ?
|
||||
"Sync transfers at " : "Async transfers.\n" );
|
||||
if (aic_dev->cur.offset != 0)
|
||||
{
|
||||
struct aic7xxx_syncrate *sync_rate;
|
||||
unsigned char options = aic_dev->cur.options;
|
||||
int period = aic_dev->cur.period;
|
||||
int rate = (aic_dev->cur.width ==
|
||||
MSG_EXT_WDTR_BUS_16_BIT) ? 1 : 0;
|
||||
|
||||
sync_rate = aic7xxx_find_syncrate(p, &period, 0, &options);
|
||||
if (sync_rate != NULL)
|
||||
{
|
||||
seq_printf(m, "%s MByte/sec, offset %d\n",
|
||||
sync_rate->rate[rate],
|
||||
aic_dev->cur.offset );
|
||||
}
|
||||
else
|
||||
{
|
||||
seq_printf(m, "3.3 MByte/sec, offset %d\n",
|
||||
aic_dev->cur.offset );
|
||||
}
|
||||
}
|
||||
seq_printf(m, " Transinfo settings: ");
|
||||
seq_printf(m, "current(%d/%d/%d/%d), ",
|
||||
aic_dev->cur.period,
|
||||
aic_dev->cur.offset,
|
||||
aic_dev->cur.width,
|
||||
aic_dev->cur.options);
|
||||
seq_printf(m, "goal(%d/%d/%d/%d), ",
|
||||
aic_dev->goal.period,
|
||||
aic_dev->goal.offset,
|
||||
aic_dev->goal.width,
|
||||
aic_dev->goal.options);
|
||||
seq_printf(m, "user(%d/%d/%d/%d)\n",
|
||||
p->user[tindex].period,
|
||||
p->user[tindex].offset,
|
||||
p->user[tindex].width,
|
||||
p->user[tindex].options);
|
||||
if(sdptr->simple_tags)
|
||||
{
|
||||
seq_printf(m, " Tagged Command Queueing Enabled, Ordered Tags %s, Depth %d/%d\n", sdptr->ordered_tags ? "Enabled" : "Disabled", sdptr->queue_depth, aic_dev->max_q_depth);
|
||||
}
|
||||
if(aic_dev->barrier_total)
|
||||
seq_printf(m, " Total transfers %ld:\n (%ld/%ld/%ld/%ld reads/writes/REQ_BARRIER/Ordered Tags)\n",
|
||||
aic_dev->r_total+aic_dev->w_total, aic_dev->r_total, aic_dev->w_total,
|
||||
aic_dev->barrier_total, aic_dev->ordered_total);
|
||||
else
|
||||
seq_printf(m, " Total transfers %ld:\n (%ld/%ld reads/writes)\n",
|
||||
aic_dev->r_total+aic_dev->w_total, aic_dev->r_total, aic_dev->w_total);
|
||||
seq_printf(m, "%s\n", HDRB);
|
||||
seq_printf(m, " Reads:");
|
||||
for (i = 0; i < ARRAY_SIZE(aic_dev->r_bins); i++)
|
||||
{
|
||||
seq_printf(m, " %10ld", aic_dev->r_bins[i]);
|
||||
}
|
||||
seq_printf(m, "\n");
|
||||
seq_printf(m, " Writes:");
|
||||
for (i = 0; i < ARRAY_SIZE(aic_dev->w_bins); i++)
|
||||
{
|
||||
seq_printf(m, " %10ld", aic_dev->w_bins[i]);
|
||||
}
|
||||
seq_printf(m, "\n");
|
||||
seq_printf(m, "\n\n");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Overrides for Emacs so that we follow Linus's tabbing style.
|
||||
* Emacs will notice this stuff at the end of the file and automatically
|
||||
* adjust the settings for this buffer only. This must remain at the end
|
||||
* of the file.
|
||||
* ---------------------------------------------------------------------------
|
||||
* Local variables:
|
||||
* c-indent-level: 2
|
||||
* c-brace-imaginary-offset: 0
|
||||
* c-brace-offset: -2
|
||||
* c-argdecl-indent: 2
|
||||
* c-label-offset: -2
|
||||
* c-continued-statement-offset: 2
|
||||
* c-continued-brace-offset: 0
|
||||
* indent-tabs-mode: nil
|
||||
* tab-width: 8
|
||||
* End:
|
||||
*/
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,49 +0,0 @@
|
||||
/* Messages (1 byte) */ /* I/T (M)andatory or (O)ptional */
|
||||
#define MSG_CMDCOMPLETE 0x00 /* M/M */
|
||||
#define MSG_EXTENDED 0x01 /* O/O */
|
||||
#define MSG_SAVEDATAPOINTER 0x02 /* O/O */
|
||||
#define MSG_RESTOREPOINTERS 0x03 /* O/O */
|
||||
#define MSG_DISCONNECT 0x04 /* O/O */
|
||||
#define MSG_INITIATOR_DET_ERR 0x05 /* M/M */
|
||||
#define MSG_ABORT 0x06 /* O/M */
|
||||
#define MSG_MESSAGE_REJECT 0x07 /* M/M */
|
||||
#define MSG_NOOP 0x08 /* M/M */
|
||||
#define MSG_PARITY_ERROR 0x09 /* M/M */
|
||||
#define MSG_LINK_CMD_COMPLETE 0x0a /* O/O */
|
||||
#define MSG_LINK_CMD_COMPLETEF 0x0b /* O/O */
|
||||
#define MSG_BUS_DEV_RESET 0x0c /* O/M */
|
||||
#define MSG_ABORT_TAG 0x0d /* O/O */
|
||||
#define MSG_CLEAR_QUEUE 0x0e /* O/O */
|
||||
#define MSG_INIT_RECOVERY 0x0f /* O/O */
|
||||
#define MSG_REL_RECOVERY 0x10 /* O/O */
|
||||
#define MSG_TERM_IO_PROC 0x11 /* O/O */
|
||||
|
||||
/* Messages (2 byte) */
|
||||
#define MSG_SIMPLE_Q_TAG 0x20 /* O/O */
|
||||
#define MSG_HEAD_OF_Q_TAG 0x21 /* O/O */
|
||||
#define MSG_ORDERED_Q_TAG 0x22 /* O/O */
|
||||
#define MSG_IGN_WIDE_RESIDUE 0x23 /* O/O */
|
||||
|
||||
/* Identify message */ /* M/M */
|
||||
#define MSG_IDENTIFYFLAG 0x80
|
||||
#define MSG_IDENTIFY_DISCFLAG 0x40
|
||||
#define MSG_IDENTIFY(lun, disc) (((disc) ? 0xc0 : MSG_IDENTIFYFLAG) | (lun))
|
||||
#define MSG_ISIDENTIFY(m) ((m) & MSG_IDENTIFYFLAG)
|
||||
|
||||
/* Extended messages (opcode and length) */
|
||||
#define MSG_EXT_SDTR 0x01
|
||||
#define MSG_EXT_SDTR_LEN 0x03
|
||||
|
||||
#define MSG_EXT_WDTR 0x03
|
||||
#define MSG_EXT_WDTR_LEN 0x02
|
||||
#define MSG_EXT_WDTR_BUS_8_BIT 0x00
|
||||
#define MSG_EXT_WDTR_BUS_16_BIT 0x01
|
||||
#define MSG_EXT_WDTR_BUS_32_BIT 0x02
|
||||
|
||||
#define MSG_EXT_PPR 0x04
|
||||
#define MSG_EXT_PPR_LEN 0x06
|
||||
#define MSG_EXT_PPR_OPTION_ST 0x00
|
||||
#define MSG_EXT_PPR_OPTION_DT_CRC 0x02
|
||||
#define MSG_EXT_PPR_OPTION_DT_UNITS 0x03
|
||||
#define MSG_EXT_PPR_OPTION_DT_CRC_QUICK 0x04
|
||||
#define MSG_EXT_PPR_OPTION_DT_UNITS_QUICK 0x05
|
||||
@@ -1,135 +0,0 @@
|
||||
/*
|
||||
* Instruction formats for the sequencer program downloaded to
|
||||
* Aic7xxx SCSI host adapters
|
||||
*
|
||||
* Copyright (c) 1997, 1998 Justin T. Gibbs.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions, and the following disclaimer,
|
||||
* without modification, immediately at the beginning of the file.
|
||||
* 2. The name of the author may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* Where this Software is combined with software released under the terms of
|
||||
* the GNU General Public License ("GPL") and the terms of the GPL would require the
|
||||
* combined work to also be released under the terms of the GPL, the terms
|
||||
* and conditions of this License will apply in addition to those of the
|
||||
* GPL with the exception of any terms or conditions of this License that
|
||||
* conflict with, or are expressly prohibited by, the GPL.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: sequencer.h,v 1.3 1997/09/27 19:37:31 gibbs Exp $
|
||||
*/
|
||||
|
||||
#ifdef __LITTLE_ENDIAN_BITFIELD
|
||||
struct ins_format1 {
|
||||
unsigned int
|
||||
immediate : 8,
|
||||
source : 9,
|
||||
destination : 9,
|
||||
ret : 1,
|
||||
opcode : 4,
|
||||
parity : 1;
|
||||
};
|
||||
|
||||
struct ins_format2 {
|
||||
unsigned int
|
||||
shift_control : 8,
|
||||
source : 9,
|
||||
destination : 9,
|
||||
ret : 1,
|
||||
opcode : 4,
|
||||
parity : 1;
|
||||
};
|
||||
|
||||
struct ins_format3 {
|
||||
unsigned int
|
||||
immediate : 8,
|
||||
source : 9,
|
||||
address : 10,
|
||||
opcode : 4,
|
||||
parity : 1;
|
||||
};
|
||||
#elif defined(__BIG_ENDIAN_BITFIELD)
|
||||
struct ins_format1 {
|
||||
unsigned int
|
||||
parity : 1,
|
||||
opcode : 4,
|
||||
ret : 1,
|
||||
destination : 9,
|
||||
source : 9,
|
||||
immediate : 8;
|
||||
};
|
||||
|
||||
struct ins_format2 {
|
||||
unsigned int
|
||||
parity : 1,
|
||||
opcode : 4,
|
||||
ret : 1,
|
||||
destination : 9,
|
||||
source : 9,
|
||||
shift_control : 8;
|
||||
};
|
||||
|
||||
struct ins_format3 {
|
||||
unsigned int
|
||||
parity : 1,
|
||||
opcode : 4,
|
||||
address : 10,
|
||||
source : 9,
|
||||
immediate : 8;
|
||||
};
|
||||
#endif
|
||||
|
||||
union ins_formats {
|
||||
struct ins_format1 format1;
|
||||
struct ins_format2 format2;
|
||||
struct ins_format3 format3;
|
||||
unsigned char bytes[4];
|
||||
unsigned int integer;
|
||||
};
|
||||
struct instruction {
|
||||
union ins_formats format;
|
||||
unsigned int srcline;
|
||||
struct symbol *patch_label;
|
||||
struct {
|
||||
struct instruction *stqe_next;
|
||||
} links;
|
||||
};
|
||||
|
||||
#define AIC_OP_OR 0x0
|
||||
#define AIC_OP_AND 0x1
|
||||
#define AIC_OP_XOR 0x2
|
||||
#define AIC_OP_ADD 0x3
|
||||
#define AIC_OP_ADC 0x4
|
||||
#define AIC_OP_ROL 0x5
|
||||
#define AIC_OP_BMOV 0x6
|
||||
|
||||
#define AIC_OP_JMP 0x8
|
||||
#define AIC_OP_JC 0x9
|
||||
#define AIC_OP_JNC 0xa
|
||||
#define AIC_OP_CALL 0xb
|
||||
#define AIC_OP_JNE 0xc
|
||||
#define AIC_OP_JNZ 0xd
|
||||
#define AIC_OP_JE 0xe
|
||||
#define AIC_OP_JZ 0xf
|
||||
|
||||
/* Pseudo Ops */
|
||||
#define AIC_OP_SHL 0x10
|
||||
#define AIC_OP_SHR 0x20
|
||||
#define AIC_OP_ROR 0x30
|
||||
Reference in New Issue
Block a user