aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mfi/mfi_ioctl.h
diff options
context:
space:
mode:
authorDoug Ambrisko <ambrisko@FreeBSD.org>2012-03-30 23:05:48 +0000
committerDoug Ambrisko <ambrisko@FreeBSD.org>2012-03-30 23:05:48 +0000
commita6ba0fd64d4743eba0a8f89de63ed72b031e9e00 (patch)
treee1b865ec95e3c7d85bba7e6ba5c14bc2630a1809 /sys/dev/mfi/mfi_ioctl.h
parent1040a0007e818db3a54de057ec346c334c388d30 (diff)
parent0d9a4ef39c9cb332b90872893d0d068f0ede0217 (diff)
MFhead_mfi r227068
First cut of new HW support from LSI and merge into FreeBSD. Supports Drake Skinny and ThunderBolt cards. MFhead_mfi r227574 Style MFhead_mfi r227579 Use bus_addr_t instead of uintXX_t. MFhead_mfi r227580 MSI support MFhead_mfi r227612 More bus_addr_t and remove "#ifdef __amd64__". MFhead_mfi r227905 Improved timeout support from Scott. MFhead_mfi r228108 Make file. MFhead_mfi r228208 Fixed botched merge of Skinny support and enhanced handling in call back routine. MFhead_mfi r228279 Remove superfluous !TAILQ_EMPTY() checks before TAILQ_FOREACH(). MFhead_mfi r228310 Move mfi_decode_evt() to taskqueue. MFhead_mfi r228320 Implement MFI_DEBUG for 64bit S/G lists. MFhead_mfi r231988 Restore structure layout by reverting the array header to use [0] instead of [1]. MFhead_mfi r232412 Put wildcard pattern later in the match table. MFhead_mfi r232413 Use lower case for hexadecimal numbers to match surrounding style. MFhead_mfi r232414 Add more Thunderbolt variants. MFhead_mfi r232888 Don't act on events prior to boot or when shutting down. Add hw.mfi.detect_jbod_change to enable or disable acting on JBOD type of disks being added on insert and removed on removing. Switch hw.mfi.msi to 1 by default since it works better on newer cards. MFhead_mfi r233016 Release driver lock before taking Giant when deleting children. Use TAILQ_FOREACH_SAFE when items can be deleted. Make code a little simplier to follow. Fix a couple more style issues. MFhead_mfi r233620 Update mfi_spare/mfi_array with the actual number of elements for array_ref and pd. Change these max. #define names to avoid name space collisions. This will require an update to mfiutil It avoids mfiutil having to do a magic calculation. Add a note and #define to state that a "SYSTEM" disk is really what the firmware calls a "JBOD" drive. Thanks to the many that helped, LSI for the initial code drop, mav, delphij, jhb, sbruno that all helped with code and testing.
Notes
Notes: svn path=/head/; revision=233711
Diffstat (limited to 'sys/dev/mfi/mfi_ioctl.h')
-rw-r--r--sys/dev/mfi/mfi_ioctl.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/sys/dev/mfi/mfi_ioctl.h b/sys/dev/mfi/mfi_ioctl.h
index 48e9c7f7ba20..e42001732944 100644
--- a/sys/dev/mfi/mfi_ioctl.h
+++ b/sys/dev/mfi/mfi_ioctl.h
@@ -28,13 +28,18 @@
__FBSDID("$FreeBSD$");
#include <dev/mfi/mfireg.h>
+#include <machine/bus.h>
-#if defined(__amd64__) /* Assume amd64 wants 32 bit Linux */
struct iovec32 {
u_int32_t iov_base;
int iov_len;
};
-#endif
+
+struct megasas_sge
+{
+ bus_addr_t phys_addr;
+ uint32_t length;
+};
#define MFIQ_FREE 0
#define MFIQ_BIO 1
@@ -79,7 +84,7 @@ struct mfi_ioc_packet {
struct iovec mfi_sgl[MAX_IOCTL_SGE];
} __packed;
-#ifdef __amd64__
+#ifdef COMPAT_FREEBSD32
struct mfi_ioc_packet32 {
uint16_t mfi_adapter_no;
uint16_t mfi_pad1;
@@ -104,7 +109,7 @@ struct mfi_ioc_aen {
} __packed;
#define MFI_CMD _IOWR('M', 1, struct mfi_ioc_packet)
-#ifdef __amd64__
+#ifdef COMPAT_FREEBSD32
#define MFI_CMD32 _IOWR('M', 1, struct mfi_ioc_packet32)
#endif
#define MFI_SET_AEN _IOW('M', 3, struct mfi_ioc_aen)
@@ -136,7 +141,7 @@ struct mfi_ioc_passthru {
uint8_t *buf;
} __packed;
-#ifdef __amd64__
+#ifdef COMPAT_FREEBSD32
struct mfi_ioc_passthru32 {
struct mfi_dcmd_frame ioc_frame;
uint32_t buf_size;
@@ -146,7 +151,7 @@ struct mfi_ioc_passthru32 {
#define MFIIO_STATS _IOWR('Q', 101, union mfi_statrequest)
#define MFIIO_PASSTHRU _IOWR('C', 102, struct mfi_ioc_passthru)
-#ifdef __amd64__
+#ifdef COMPAT_FREEBSD32
#define MFIIO_PASSTHRU32 _IOWR('C', 102, struct mfi_ioc_passthru32)
#endif