[Midnightbsd-cvs] src [10111] trunk/sys/dev/aac: sync aac
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sun May 27 19:54:56 EDT 2018
Revision: 10111
http://svnweb.midnightbsd.org/src/?rev=10111
Author: laffer1
Date: 2018-05-27 19:54:55 -0400 (Sun, 27 May 2018)
Log Message:
-----------
sync aac
Modified Paths:
--------------
trunk/sys/dev/aac/aac.c
trunk/sys/dev/aac/aac_cam.c
trunk/sys/dev/aac/aac_debug.c
trunk/sys/dev/aac/aac_disk.c
trunk/sys/dev/aac/aac_linux.c
trunk/sys/dev/aac/aac_pci.c
trunk/sys/dev/aac/aac_tables.h
trunk/sys/dev/aac/aacreg.h
trunk/sys/dev/aac/aacvar.h
Modified: trunk/sys/dev/aac/aac.c
===================================================================
--- trunk/sys/dev/aac/aac.c 2018-05-27 23:54:49 UTC (rev 10110)
+++ trunk/sys/dev/aac/aac.c 2018-05-27 23:54:55 UTC (rev 10111)
@@ -29,6 +29,7 @@
*/
#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: stable/10/sys/dev/aac/aac.c 331637 2018-03-27 17:52:52Z brooks $");
/*
* Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters.
@@ -36,6 +37,7 @@
#define AAC_DRIVERNAME "aac"
#include "opt_aac.h"
+#include "opt_compat.h"
/* #include <stddef.h> */
#include <sys/param.h>
@@ -43,7 +45,9 @@
#include <sys/malloc.h>
#include <sys/kernel.h>
#include <sys/kthread.h>
+#include <sys/proc.h>
#include <sys/sysctl.h>
+#include <sys/sysent.h>
#include <sys/poll.h>
#include <sys/ioccom.h>
@@ -507,9 +511,9 @@
BUS_SPACE_MAXADDR_32BIT, /* lowaddr */
BUS_SPACE_MAXADDR, /* highaddr */
NULL, NULL, /* filter, filterarg */
- MAXBSIZE, /* maxsize */
+ sc->aac_max_sectors << 9, /* maxsize */
sc->aac_sg_tablesize, /* nsegments */
- MAXBSIZE, /* maxsegsize */
+ BUS_SPACE_MAXSIZE_32BIT, /* maxsegsize */
BUS_DMA_ALLOCNOW, /* flags */
busdma_lock_mutex, /* lockfunc */
&sc->aac_io_lock, /* lockfuncarg */
@@ -631,9 +635,11 @@
/* disconnect the interrupt handler */
if (sc->aac_intr)
bus_teardown_intr(sc->aac_dev, sc->aac_irq, sc->aac_intr);
- if (sc->aac_irq != NULL)
+ if (sc->aac_irq != NULL) {
bus_release_resource(sc->aac_dev, SYS_RES_IRQ,
rman_get_rid(sc->aac_irq), sc->aac_irq);
+ pci_release_msi(sc->aac_dev);
+ }
/* destroy data-transfer DMA tag */
if (sc->aac_buffer_dmat)
@@ -987,14 +993,18 @@
* busdma.
*/
if (cm->cm_datalen != 0) {
- error = bus_dmamap_load(sc->aac_buffer_dmat,
- cm->cm_datamap, cm->cm_data,
- cm->cm_datalen,
- aac_map_command_sg, cm, 0);
+ if (cm->cm_flags & AAC_REQ_BIO)
+ error = bus_dmamap_load_bio(
+ sc->aac_buffer_dmat, cm->cm_datamap,
+ (struct bio *)cm->cm_private,
+ aac_map_command_sg, cm, 0);
+ else
+ error = bus_dmamap_load(sc->aac_buffer_dmat,
+ cm->cm_datamap, cm->cm_data,
+ cm->cm_datalen, aac_map_command_sg, cm, 0);
if (error == EINPROGRESS) {
fwprintf(sc, HBA_FLAGS_DBG_COMM_B, "freezing queue\n");
sc->flags |= AAC_QUEUE_FRZN;
- error = 0;
} else if (error != 0)
panic("aac_startio: unexpected error %d from "
"busdma", error);
@@ -1199,9 +1209,9 @@
goto fail;
/* fill out the command */
- cm->cm_data = (void *)bp->bio_data;
cm->cm_datalen = bp->bio_bcount;
cm->cm_complete = aac_bio_complete;
+ cm->cm_flags = AAC_REQ_BIO;
cm->cm_private = bp;
cm->cm_timestamp = time_uptime;
@@ -1402,6 +1412,7 @@
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
/* (re)initialize the command/FIB */
+ cm->cm_datalen = 0;
cm->cm_sgtable = NULL;
cm->cm_flags = 0;
cm->cm_complete = NULL;
@@ -3096,18 +3107,30 @@
/* Retrieve correct SG entries. */
if (fibsize == (sizeof(struct aac_srb) +
srbcmd->sg_map.SgCount * sizeof(struct aac_sg_entry))) {
+ struct aac_sg_entry sg;
+
sge = srbcmd->sg_map.SgEntry;
sge64 = NULL;
- srb_sg_bytecount = sge->SgByteCount;
- srb_sg_address = (void *)(uintptr_t)sge->SgAddress;
+
+ if ((error = copyin(sge, &sg, sizeof(sg))) != 0)
+ goto out;
+
+ srb_sg_bytecount = sg.SgByteCount;
+ srb_sg_address = (void *)(uintptr_t)sg.SgAddress;
}
#ifdef __amd64__
else if (fibsize == (sizeof(struct aac_srb) +
srbcmd->sg_map.SgCount * sizeof(struct aac_sg_entry64))) {
+ struct aac_sg_entry64 sg;
+
sge = NULL;
sge64 = (struct aac_sg_entry64 *)srbcmd->sg_map.SgEntry;
- srb_sg_bytecount = sge64->SgByteCount;
- srb_sg_address = (void *)sge64->SgAddress;
+
+ if ((error = copyin(sge64, &sg, sizeof(sg))) != 0)
+ goto out;
+
+ srb_sg_bytecount = sg.SgByteCount;
+ srb_sg_address = (void *)sg.SgAddress;
if (sge64->SgAddress > 0xffffffffull &&
(sc->flags & AAC_FLAGS_SG_64BIT) == 0) {
error = EINVAL;
@@ -3501,7 +3524,19 @@
fwprintf(sc, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
- if ((error = copyin(arg, &agf, sizeof(agf))) == 0) {
+#ifdef COMPAT_FREEBSD32
+ if (SV_CURPROC_FLAG(SV_ILP32)) {
+ struct get_adapter_fib_ioctl32 agf32;
+ error = copyin(arg, &agf32, sizeof(agf32));
+ if (error == 0) {
+ agf.AdapterFibContext = agf32.AdapterFibContext;
+ agf.Wait = agf32.Wait;
+ agf.AifFib = (caddr_t)(uintptr_t)agf32.AifFib;
+ }
+ } else
+#endif
+ error = copyin(arg, &agf, sizeof(agf));
+ if (error == 0) {
for (ctx = sc->fibctx; ctx; ctx = ctx->next) {
if (agf.AdapterFibContext == ctx->unique)
break;
Modified: trunk/sys/dev/aac/aac_cam.c
===================================================================
--- trunk/sys/dev/aac/aac_cam.c 2018-05-27 23:54:49 UTC (rev 10110)
+++ trunk/sys/dev/aac/aac_cam.c 2018-05-27 23:54:55 UTC (rev 10111)
@@ -26,6 +26,7 @@
*/
#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: stable/10/sys/dev/aac/aac_cam.c 315813 2017-03-23 06:41:13Z mav $");
/*
* CAM front-end for communicating with non-DASD devices
@@ -129,7 +130,7 @@
return;
}
- if (xpt_create_path(&ccb->ccb_h.path, xpt_periph,
+ if (xpt_create_path(&ccb->ccb_h.path, NULL,
cam_sim_path(camsc->sim),
target_id, CAM_LUN_WILDCARD) != CAM_REQ_CMP) {
xpt_free_ccb(ccb);
@@ -317,9 +318,9 @@
cpi->initiator_id = camsc->inf->InitiatorBusId;
cpi->bus_id = camsc->inf->BusNumber;
cpi->base_transfer_speed = 3300;
- strncpy(cpi->sim_vid, "FreeBSD", SIM_IDLEN);
- strncpy(cpi->hba_vid, "Adaptec", HBA_IDLEN);
- strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN);
+ strlcpy(cpi->sim_vid, "FreeBSD", SIM_IDLEN);
+ strlcpy(cpi->hba_vid, "Adaptec", HBA_IDLEN);
+ strlcpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN);
cpi->unit_number = cam_sim_unit(sim);
cpi->transport = XPORT_SPI;
cpi->transport_version = 2;
@@ -446,26 +447,28 @@
/* Map the s/g list. XXX 32bit addresses only! */
if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) {
- if ((ccb->ccb_h.flags & CAM_SCATTER_VALID) == 0) {
+ switch ((ccb->ccb_h.flags & CAM_DATA_MASK)) {
+ case CAM_DATA_VADDR:
srb->data_len = csio->dxfer_len;
- if (ccb->ccb_h.flags & CAM_DATA_PHYS) {
- /* Send a 32bit command */
- fib->Header.Command = ScsiPortCommand;
- srb->sg_map.SgCount = 1;
- srb->sg_map.SgEntry[0].SgAddress =
- (uint32_t)(uintptr_t)csio->data_ptr;
- srb->sg_map.SgEntry[0].SgByteCount =
- csio->dxfer_len;
- } else {
- /*
- * Arrange things so that the S/G
- * map will get set up automagically
- */
- cm->cm_data = (void *)csio->data_ptr;
- cm->cm_datalen = csio->dxfer_len;
- cm->cm_sgtable = &srb->sg_map;
- }
- } else {
+ /*
+ * Arrange things so that the S/G
+ * map will get set up automagically
+ */
+ cm->cm_data = (void *)csio->data_ptr;
+ cm->cm_datalen = csio->dxfer_len;
+ cm->cm_sgtable = &srb->sg_map;
+ break;
+ case CAM_DATA_PADDR:
+ /* Send a 32bit command */
+ fib->Header.Command = ScsiPortCommand;
+ srb->sg_map.SgCount = 1;
+ srb->sg_map.SgEntry[0].SgAddress =
+ (uint32_t)(uintptr_t)csio->data_ptr;
+ srb->sg_map.SgEntry[0].SgByteCount =
+ csio->dxfer_len;
+ srb->data_len = csio->dxfer_len;
+ break;
+ default:
/* XXX Need to handle multiple s/g elements */
panic("aac_cam: multiple s/g elements");
}
Modified: trunk/sys/dev/aac/aac_debug.c
===================================================================
--- trunk/sys/dev/aac/aac_debug.c 2018-05-27 23:54:49 UTC (rev 10110)
+++ trunk/sys/dev/aac/aac_debug.c 2018-05-27 23:54:55 UTC (rev 10111)
@@ -1,4 +1,4 @@
-/* $MidnightBSD: src/sys/dev/aac/aac_debug.c,v 1.4 2012/04/12 01:20:08 laffer1 Exp $ */
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2000 Michael Smith
* Copyright (c) 2001 Scott Long
@@ -29,6 +29,7 @@
*/
#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: stable/10/sys/dev/aac/aac_debug.c 242823 2012-11-09 13:58:52Z rdivacky $");
/*
* Debugging support.
@@ -160,7 +161,7 @@
aac_panic(struct aac_softc *sc, char *reason)
{
aac_print_queues(sc);
- panic(reason);
+ panic("%s", reason);
}
/*
Modified: trunk/sys/dev/aac/aac_disk.c
===================================================================
--- trunk/sys/dev/aac/aac_disk.c 2018-05-27 23:54:49 UTC (rev 10110)
+++ trunk/sys/dev/aac/aac_disk.c 2018-05-27 23:54:55 UTC (rev 10111)
@@ -29,6 +29,7 @@
*/
#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: stable/10/sys/dev/aac/aac_disk.c 251116 2013-05-30 00:22:07Z marius $");
#include "opt_aac.h"
@@ -397,6 +398,7 @@
sc->unit = device_get_unit(dev);
sc->ad_disk = disk_alloc();
sc->ad_disk->d_drv1 = sc;
+ sc->ad_disk->d_flags = DISKFLAG_UNMAPPED_BIO;
sc->ad_disk->d_name = "aacd";
sc->ad_disk->d_maxsize = sc->ad_controller->aac_max_sectors << 9;
sc->ad_disk->d_open = aac_disk_open;
Modified: trunk/sys/dev/aac/aac_linux.c
===================================================================
--- trunk/sys/dev/aac/aac_linux.c 2018-05-27 23:54:49 UTC (rev 10110)
+++ trunk/sys/dev/aac/aac_linux.c 2018-05-27 23:54:55 UTC (rev 10111)
@@ -1,4 +1,4 @@
-/* $MidnightBSD: src/sys/dev/aac/aac_linux.c,v 1.4 2012/04/12 01:20:08 laffer1 Exp $ */
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2002 Scott Long
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: stable/10/sys/dev/aac/aac_linux.c 280258 2015-03-19 13:37:36Z rwatson $");
/*
* Linux ioctl handler for the aac device driver
@@ -34,7 +34,7 @@
#include <sys/param.h>
#include <sys/systm.h>
-#include <sys/capability.h>
+#include <sys/capsicum.h>
#include <sys/conf.h>
#include <sys/kernel.h>
#include <sys/module.h>
@@ -76,11 +76,13 @@
static int
aac_linux_ioctl(struct thread *td, struct linux_ioctl_args *args)
{
+ cap_rights_t rights;
struct file *fp;
u_long cmd;
int error;
- if ((error = fget(td, args->fd, CAP_IOCTL, &fp)) != 0)
+ error = fget(td, args->fd, cap_rights_init(&rights, CAP_IOCTL), &fp);
+ if (error != 0)
return (error);
cmd = args->cmd;
Modified: trunk/sys/dev/aac/aac_pci.c
===================================================================
--- trunk/sys/dev/aac/aac_pci.c 2018-05-27 23:54:49 UTC (rev 10110)
+++ trunk/sys/dev/aac/aac_pci.c 2018-05-27 23:54:55 UTC (rev 10111)
@@ -29,6 +29,7 @@
*/
#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: stable/10/sys/dev/aac/aac_pci.c 254005 2013-08-06 19:14:02Z marius $");
/*
* PCI bus interface and resource allocation.
@@ -139,7 +140,7 @@
"Adaptec SATA RAID 21610SA"},
{0x9005, 0x0285, 0x103c, 0x3227, AAC_HWIF_I960RX, AAC_FLAGS_NO4GB,
"HP ML110 G2 (Adaptec 2610SA)"},
- {0x9005, 0x0286, 0x9005, 0x028c, AAC_HWIF_RKT, 0,
+ {0x9005, 0x0286, 0x9005, 0x028c, AAC_HWIF_RKT, AAC_FLAGS_NOMSI,
"Adaptec SCSI RAID 2230S"},
{0x9005, 0x0286, 0x9005, 0x028d, AAC_HWIF_RKT, 0,
"Adaptec SCSI RAID 2130S"},
@@ -157,7 +158,7 @@
"Adaptec SCSI RAID 2020ZCR"},
{0x9005, 0x0285, 0x9005, 0x028b, AAC_HWIF_I960RX, 0,
"Adaptec SCSI RAID 2025ZCR"},
- {0x9005, 0x0286, 0x9005, 0x029b, AAC_HWIF_RKT, 0,
+ {0x9005, 0x0286, 0x9005, 0x029b, AAC_HWIF_RKT, AAC_FLAGS_NOMSI,
"Adaptec SATA RAID 2820SA"},
{0x9005, 0x0286, 0x9005, 0x029c, AAC_HWIF_RKT, 0,
"Adaptec SATA RAID 2620SA"},
@@ -311,7 +312,6 @@
if ((m->vendor == vendid) && (m->device == devid))
return (m);
}
-
return (NULL);
}
@@ -340,7 +340,7 @@
{
struct aac_softc *sc;
const struct aac_ident *id;
- int count, error, reg, rid;
+ int count, error, rid;
fwprintf(NULL, HBA_FLAGS_DBG_FUNCTION_ENTRY_B, "");
@@ -363,6 +363,38 @@
}
/*
+ * Detect the hardware interface version, set up the bus interface
+ * indirection.
+ */
+ id = aac_find_ident(dev);
+ sc->aac_hwif = id->hwif;
+ switch(sc->aac_hwif) {
+ case AAC_HWIF_I960RX:
+ case AAC_HWIF_NARK:
+ fwprintf(sc, HBA_FLAGS_DBG_INIT_B,
+ "set hardware up for i960Rx/NARK");
+ sc->aac_if = &aac_rx_interface;
+ break;
+ case AAC_HWIF_STRONGARM:
+ fwprintf(sc, HBA_FLAGS_DBG_INIT_B,
+ "set hardware up for StrongARM");
+ sc->aac_if = &aac_sa_interface;
+ break;
+ case AAC_HWIF_RKT:
+ fwprintf(sc, HBA_FLAGS_DBG_INIT_B,
+ "set hardware up for Rocket/MIPS");
+ sc->aac_if = &aac_rkt_interface;
+ break;
+ default:
+ sc->aac_hwif = AAC_HWIF_UNKNOWN;
+ device_printf(dev, "unknown hardware type\n");
+ goto out;
+ }
+
+ /* Set up quirks */
+ sc->flags = id->quirks;
+
+ /*
* Allocate the PCI register window(s).
*/
rid = PCIR_BAR(0);
@@ -394,18 +426,13 @@
* Allocate the interrupt.
*/
rid = 0;
- count = 0;
- if (aac_enable_msi != 0 && pci_find_cap(dev, PCIY_MSI, ®) == 0) {
- count = pci_msi_count(dev);
- if (count > 1)
- count = 1;
- else
- count = 0;
- if (count == 1 && pci_alloc_msi(dev, &count) == 0)
+ if (aac_enable_msi != 0 && (sc->flags & AAC_FLAGS_NOMSI) == 0) {
+ count = 1;
+ if (pci_alloc_msi(dev, &count) == 0)
rid = 1;
}
if ((sc->aac_irq = bus_alloc_resource_any(sc->aac_dev, SYS_RES_IRQ,
- &rid, RF_ACTIVE | (count != 0 ? 0 : RF_SHAREABLE))) == NULL) {
+ &rid, RF_ACTIVE | (rid != 0 ? 0 : RF_SHAREABLE))) == NULL) {
device_printf(dev, "can't allocate interrupt\n");
goto out;
}
@@ -431,36 +458,6 @@
}
/*
- * Detect the hardware interface version, set up the bus interface
- * indirection.
- */
- id = aac_find_ident(dev);
- sc->aac_hwif = id->hwif;
- switch(sc->aac_hwif) {
- case AAC_HWIF_I960RX:
- case AAC_HWIF_NARK:
- fwprintf(sc, HBA_FLAGS_DBG_INIT_B, "set hardware up for i960Rx/NARK");
- sc->aac_if = &aac_rx_interface;
- break;
- case AAC_HWIF_STRONGARM:
- fwprintf(sc, HBA_FLAGS_DBG_INIT_B, "set hardware up for StrongARM");
- sc->aac_if = &aac_sa_interface;
- break;
- case AAC_HWIF_RKT:
- fwprintf(sc, HBA_FLAGS_DBG_INIT_B, "set hardware up for Rocket/MIPS");
- sc->aac_if = &aac_rkt_interface;
- break;
- default:
- sc->aac_hwif = AAC_HWIF_UNKNOWN;
- device_printf(dev, "unknown hardware type\n");
- error = ENXIO;
- goto out;
- }
-
- /* Set up quirks */
- sc->flags = id->quirks;
-
- /*
* Do bus-independent initialisation.
*/
error = aac_attach(sc);
@@ -488,14 +485,10 @@
DEVMETHOD_END
};
-struct aacch_softc {
- device_t dev;
-};
-
static driver_t aacch_driver = {
"aacch",
aacch_methods,
- sizeof(struct aacch_softc)
+ 1 /* no softc */
};
static devclass_t aacch_devclass;
@@ -514,19 +507,14 @@
}
static int
-aacch_attach(device_t dev)
+aacch_attach(device_t dev __unused)
{
- struct aacch_softc *sc;
- sc = device_get_softc(dev);
-
- sc->dev = dev;
-
return (0);
}
static int
-aacch_detach(device_t dev)
+aacch_detach(device_t dev __unused)
{
return (0);
Modified: trunk/sys/dev/aac/aac_tables.h
===================================================================
--- trunk/sys/dev/aac/aac_tables.h 2018-05-27 23:54:49 UTC (rev 10110)
+++ trunk/sys/dev/aac/aac_tables.h 2018-05-27 23:54:55 UTC (rev 10111)
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD$
+ * $FreeBSD: stable/10/sys/dev/aac/aac_tables.h 247570 2013-03-01 19:55:10Z marius $
*/
#if 0
Modified: trunk/sys/dev/aac/aacreg.h
===================================================================
--- trunk/sys/dev/aac/aacreg.h 2018-05-27 23:54:49 UTC (rev 10110)
+++ trunk/sys/dev/aac/aacreg.h 2018-05-27 23:54:55 UTC (rev 10111)
@@ -1,4 +1,4 @@
-/* $MidnightBSD: src/sys/dev/aac/aacreg.h,v 1.4 2012/04/12 01:20:08 laffer1 Exp $ */
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2000 Michael Smith
* Copyright (c) 2000-2001 Scott Long
@@ -27,6 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
+ * $FreeBSD: stable/10/sys/dev/aac/aacreg.h 213272 2010-09-29 14:22:00Z emaste $
*/
/*
Modified: trunk/sys/dev/aac/aacvar.h
===================================================================
--- trunk/sys/dev/aac/aacvar.h 2018-05-27 23:54:49 UTC (rev 10110)
+++ trunk/sys/dev/aac/aacvar.h 2018-05-27 23:54:55 UTC (rev 10111)
@@ -27,6 +27,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
+ * $FreeBSD: stable/10/sys/dev/aac/aacvar.h 261455 2014-02-04 03:36:42Z eadler $
*/
#include <sys/bio.h>
@@ -62,7 +63,7 @@
* The firmware interface allows for a 16-bit s/g list length. We limit
* ourselves to a reasonable maximum and ensure alignment.
*/
-#define AAC_MAXSGENTRIES 64 /* max S/G entries, limit 65535 */
+#define AAC_MAXSGENTRIES 64 /* max S/G entries, limit 65535 */
/*
* We allocate a small set of FIBs for the adapter to use to send us messages.
@@ -181,6 +182,8 @@
#define AAC_ON_AACQ_MASK ((1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<10))
#define AAC_QUEUE_FRZN (1<<9) /* Freeze the processing of
* commands on the queue. */
+#define AAC_REQ_BIO (1 << 11)
+#define AAC_REQ_CCB (1 << 12)
void (*cm_complete)(struct aac_command *cm);
void *cm_private;
@@ -222,7 +225,7 @@
/* buffer for text messages from the controller */
char ac_printf[AAC_PRINTF_BUFSIZE];
-
+
/* fib for synchronous commands */
struct aac_fib ac_sync_fib;
};
@@ -404,12 +407,13 @@
#define AAC_FLAGS_NO4GB (1 << 6) /* Can't access host mem >2GB */
#define AAC_FLAGS_256FIBS (1 << 7) /* Can only do 256 commands */
#define AAC_FLAGS_BROKEN_MEMMAP (1 << 8) /* Broken HostPhysMemPages */
-#define AAC_FLAGS_SLAVE (1 << 9)
+#define AAC_FLAGS_SLAVE (1 << 9)
#define AAC_FLAGS_MASTER (1 << 10)
#define AAC_FLAGS_NEW_COMM (1 << 11) /* New comm. interface supported */
#define AAC_FLAGS_RAW_IO (1 << 12) /* Raw I/O interface */
#define AAC_FLAGS_ARRAY_64BIT (1 << 13) /* 64-bit array size */
#define AAC_FLAGS_LBA_64BIT (1 << 14) /* 64-bit LBA support */
+#define AAC_FLAGS_NOMSI (1U << 31) /* Broken MSI */
u_int32_t supported_options;
u_int32_t scsi_method_id;
@@ -525,7 +529,6 @@
sc->aac_qstat[qname].q_max = 0; \
} while (0)
-
#define AACQ_COMMAND_QUEUE(name, index) \
static __inline void \
aac_initq_ ## name (struct aac_softc *sc) \
More information about the Midnightbsd-cvs
mailing list