diff options
author | ambrisko <ambrisko@FreeBSD.org> | 2006-05-18 23:30:48 +0000 |
---|---|---|
committer | ambrisko <ambrisko@FreeBSD.org> | 2006-05-18 23:30:48 +0000 |
commit | 2f056812a1392832771de5b0dfbef07c6cd58edf (patch) | |
tree | bdf34234b5c8fd48d8bf0f3e68fb6a04622e7227 /sys/dev/mfi/mfi_ioctl.h | |
parent | 0c235a1ed089c04da60996b550032ddc98d5d410 (diff) | |
download | FreeBSD-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.h | 23 |
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; |