Print this page
OS-1996 mpt_sas: allow physical topology enumeration in libtopo
Reviewed by: Keith Wesolowski <keith.wesolowski@joyent.com>

@@ -21,10 +21,13 @@
 
 /*
  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
+/*
+ * Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ */
 
 /*
  * Copyright (c) 2000 to 2010, LSI Corporation.
  * All rights reserved.
  *

@@ -69,10 +72,11 @@
 #define MPTIOCTL_EVENT_ENABLE           (MPTIOCTL | 6)
 #define MPTIOCTL_EVENT_REPORT           (MPTIOCTL | 7)
 #define MPTIOCTL_GET_PCI_INFO           (MPTIOCTL | 8)
 #define MPTIOCTL_DIAG_ACTION            (MPTIOCTL | 9)
 #define MPTIOCTL_REG_ACCESS             (MPTIOCTL | 10)
+#define MPTIOCTL_GET_DISK_INFO          (MPTIOCTL | 11)
 
 /*
  *  The following are our ioctl() return status values.  If everything went
  *  well, we return good status.  If the buffer length sent to us is too short
  *  we return a status to tell the user.

@@ -294,10 +298,39 @@
         uint32_t        Command;
         uint32_t        RegOffset;
         uint32_t        RegData;
 } mptsas_reg_access_t;
 
+/*
+ * Disk Toplogy Information
+ */
+typedef struct mptsas_disk_info
+{
+        uint64_t        SasAddress;
+        uint16_t        Instance;
+        uint16_t        Enclosure;
+        uint16_t        Slot;
+} mptsas_disk_info_t;
+
+typedef struct mptsas_get_disk_info
+{
+        uint16_t                DiskCount;
+        mptsas_disk_info_t      *PtrDiskInfoArray;
+        uint64_t                DiskInfoArraySize;
+} mptsas_get_disk_info_t;
+
+#ifdef _KERNEL
+
+typedef struct mptsas_get_disk_info32
+{
+        uint16_t                DiskCount;
+        caddr32_t               PtrDiskInfoArray;
+        uint64_t                DiskInfoArraySize;
+} mptsas_get_disk_info32_t;
+
+#endif /* _KERNEL */
+
 #ifdef  __cplusplus
 }
 #endif
 
 #endif  /* _MPTSAS_IOCTL_H */