[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, &reg) == 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