aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mrsas/mrsas_ioctl.h
diff options
context:
space:
mode:
authorKashyap D Desai <kadesai@FreeBSD.org>2014-10-08 09:19:35 +0000
committerKashyap D Desai <kadesai@FreeBSD.org>2014-10-08 09:19:35 +0000
commit536094dc79eb98d023bcfce564fc3cdc00787090 (patch)
tree0dc4d977f29d03202acc21f02fcd6143d5887553 /sys/dev/mrsas/mrsas_ioctl.h
parentfdbf76c383df5ed9630dea35e3d6092513ba9e0f (diff)
Notes
Diffstat (limited to 'sys/dev/mrsas/mrsas_ioctl.h')
-rw-r--r--sys/dev/mrsas/mrsas_ioctl.h34
1 files changed, 33 insertions, 1 deletions
diff --git a/sys/dev/mrsas/mrsas_ioctl.h b/sys/dev/mrsas/mrsas_ioctl.h
index 360484277678..ae0e2e10d732 100644
--- a/sys/dev/mrsas/mrsas_ioctl.h
+++ b/sys/dev/mrsas/mrsas_ioctl.h
@@ -51,6 +51,15 @@ __FBSDID("$FreeBSD$");
#include <sys/ioccom.h>
#endif /* !_IOWR */
+#ifdef COMPAT_FREEBSD32
+/* Compilation error FIX */
+#if (__FreeBSD_version <= 900000)
+#include <sys/socket.h>
+#endif
+#include <sys/mount.h>
+#include <compat/freebsd32/freebsd32.h>
+#endif
+
/*
* We need to use the same values as the mfi driver until MegaCli adds
* support for this (mrsas) driver:
@@ -61,10 +70,15 @@ __FBSDID("$FreeBSD$");
* These three values are encoded into a somewhat unique, 32-bit value.
*/
-#define MRSAS_IOC_FIRMWARE_PASS_THROUGH _IOWR('M', 1, struct mrsas_iocpacket)
+#define MRSAS_IOC_FIRMWARE_PASS_THROUGH64 _IOWR('M', 1, struct mrsas_iocpacket)
+#ifdef COMPAT_FREEBSD32
+#define MRSAS_IOC_FIRMWARE_PASS_THROUGH32 _IOWR('M', 1, struct mrsas_iocpacket32)
+#endif
#define MRSAS_IOC_SCAN_BUS _IO('M', 10)
+#define MRSAS_LINUX_CMD32 0xc1144d01
+
#define MAX_IOCTL_SGE 16
#define MFI_FRAME_DIR_READ 0x0010
#define MFI_CMD_LD_SCSI_IO 0x03
@@ -94,4 +108,22 @@ struct mrsas_iocpacket {
};
#pragma pack()
+#ifdef COMPAT_FREEBSD32
+#pragma pack(1)
+struct mrsas_iocpacket32 {
+ u_int16_t host_no;
+ u_int16_t __pad1;
+ u_int32_t sgl_off;
+ u_int32_t sge_count;
+ u_int32_t sense_off;
+ u_int32_t sense_len;
+ union {
+ u_int8_t raw[MEGAMFI_RAW_FRAME_SIZE];
+ struct mrsas_header hdr;
+ } frame;
+ struct iovec32 sgl[MAX_IOCTL_SGE];
+};
+#pragma pack()
+#endif /* COMPAT_FREEBSD32 */
+
#endif /* MRSAS_IOCTL_H */