aboutsummaryrefslogtreecommitdiff
path: root/sys/sys/aac_ioctl.h
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2008-03-28 19:07:25 +0000
committerEd Maste <emaste@FreeBSD.org>2008-03-28 19:07:25 +0000
commit6d307336b3b3b439f973866b801aa8ac9dfe1cd9 (patch)
tree26454ea9a77fab47cf6a404131c1c2fc28e2d206 /sys/sys/aac_ioctl.h
parenta6b39657438de3d037cb85deaa336c00ca65ab18 (diff)
downloadsrc-6d307336b3b3b439f973866b801aa8ac9dfe1cd9.tar.gz
src-6d307336b3b3b439f973866b801aa8ac9dfe1cd9.zip
Implement FSACTL_LNX_GET_FEATURES and FSACTL_GET_FEATURES ioctls. RAID
tools (e.g. arcconf) need this to be able to create arrays larger than 2TB. Submitted by: Adaptec, via driver build 15317
Notes
Notes: svn path=/head/; revision=177695
Diffstat (limited to 'sys/sys/aac_ioctl.h')
-rw-r--r--sys/sys/aac_ioctl.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/sys/aac_ioctl.h b/sys/sys/aac_ioctl.h
index e29e5ad79326..ef16a429e043 100644
--- a/sys/sys/aac_ioctl.h
+++ b/sys/sys/aac_ioctl.h
@@ -97,6 +97,8 @@ union aac_statrequest {
METHOD_NEITHER, FILE_ANY_ACCESS)
#define FSACTL_LNX_SEND_LARGE_FIB CTL_CODE(FILE_DEVICE_CONTROLLER, 2138, \
METHOD_BUFFERED, FILE_ANY_ACCESS)
+#define FSACTL_LNX_GET_FEATURES CTL_CODE(FILE_DEVICE_CONTROLLER, 2139, \
+ METHOD_BUFFERED, FILE_ANY_ACCESS)
/* Why these don't follow the previous convention, I don't know */
#define FSACTL_LNX_NULL_IO_TEST 0x43
@@ -134,6 +136,7 @@ union aac_statrequest {
#define FSACTL_FORCE_DELETE_DISK _IO('8', 72)
#define FSACTL_AIF_THREAD _IO('8', 79)
#define FSACTL_SEND_LARGE_FIB _IO('8', 90)
+#define FSACTL_GET_FEATURES _IO('8', 91)
#define FSACTL_NULL_IO_TEST _IO('8', 67)
#define FSACTL_SIM_IO_TEST _IO('8', 83)
@@ -182,4 +185,21 @@ struct aac_query_disk {
char diskDeviceName[10];
u_int32_t UnMapped;
};
+
+/* Features, asked from the tools to know if the driver
+ * supports drives >2TB
+ */
+typedef union {
+ struct {
+ u_int32_t largeLBA : 1; /* disk support greater 2TB */
+ u_int32_t fReserved : 31;
+ } fBits;
+ u_int32_t fValue;
+} featuresState;
+
+struct aac_features {
+ featuresState feat;
+ u_int32_t data[31];
+ u_int32_t reserved[32];
+} __packed;
#endif