summaryrefslogtreecommitdiffstats
path: root/sys/dev/mfi/mfi_ioctl.h
diff options
context:
space:
mode:
authorambrisko <ambrisko@FreeBSD.org>2006-05-18 23:30:48 +0000
committerambrisko <ambrisko@FreeBSD.org>2006-05-18 23:30:48 +0000
commit2f056812a1392832771de5b0dfbef07c6cd58edf (patch)
treebdf34234b5c8fd48d8bf0f3e68fb6a04622e7227 /sys/dev/mfi/mfi_ioctl.h
parent0c235a1ed089c04da60996b550032ddc98d5d410 (diff)
downloadFreeBSD-src-2f056812a1392832771de5b0dfbef07c6cd58edf.zip
FreeBSD-src-2f056812a1392832771de5b0dfbef07c6cd58edf.tar.gz
Add in a bunch of things to the mfi driver:
- Linux ioctl support, with the other Linux changes MegaCli will run if you mount linprocfs & linsysfs then set sysctl compat.linux.osrelease=2.6.12 or similar. This works on i386. It should work on amd64 but not well tested yet. StoreLib may or may not work. Remember to kldload mfi_linux. - Add in AEN (Async Event Notification) support so we can get messages from the firmware when something happens. Not all messages are in defined in event detail. Use event_log to try to figure out what happened. - Try to implement something like SIGIO for StoreLib. Since mrmonitor doesn't work right I can't fully test it. StoreLib works best with the rh9 base. In theory mrmonitor isn't needed due to native driver support of AEN :-) Now we can configure and monitor the RAID better. Submitted by: IronPort Systems.
Diffstat (limited to 'sys/dev/mfi/mfi_ioctl.h')
-rw-r--r--sys/dev/mfi/mfi_ioctl.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/sys/dev/mfi/mfi_ioctl.h b/sys/dev/mfi/mfi_ioctl.h
index 6730ba2..7c4dae9 100644
--- a/sys/dev/mfi/mfi_ioctl.h
+++ b/sys/dev/mfi/mfi_ioctl.h
@@ -43,5 +43,28 @@ union mfi_statrequest {
struct mfi_qstat ms_qstat;
};
+#define MAX_LINUX_IOCTL_SGE 16
+
+struct mfi_linux_ioc_packet {
+ uint16_t lioc_adapter_no;
+ uint16_t lioc_pad1;
+ uint32_t lioc_sgl_off;
+ uint32_t lioc_sge_count;
+ uint32_t lioc_sense_off;
+ uint32_t lioc_sense_len;
+ union {
+ uint8_t raw[128];
+ struct mfi_frame_header hdr;
+ } lioc_frame;
+
+ struct iovec lioc_sgl[MAX_LINUX_IOCTL_SGE];
+} __packed;
+
#define MFIIO_STATS _IOWR('Q', 101, union mfi_statrequest)
+struct mfi_linux_ioc_aen {
+ uint16_t laen_adapter_no;
+ uint16_t laen_pad1;
+ uint32_t laen_seq_num;
+ uint32_t laen_class_locale;
+} __packed;
OpenPOWER on IntegriCloud