summaryrefslogtreecommitdiff
path: root/sys/dev/ic/mpireg.h
diff options
context:
space:
mode:
authorMarco Peereboom <marco@cvs.openbsd.org>2006-06-15 04:45:00 +0000
committerMarco Peereboom <marco@cvs.openbsd.org>2006-06-15 04:45:00 +0000
commit464263103058491c13b88c4fed5b7f6d4eabcf20 (patch)
tree1cfd752a6cc84dd3ac24e47d607d8bc8f3ef5cee /sys/dev/ic/mpireg.h
parentb8ae841ef38a2439d43267f0cec4a9c1cc0ec250 (diff)
Add structures and initial code to retrieve IOC page 2. We need this for
RAID support and bio. "go at it" dlg
Diffstat (limited to 'sys/dev/ic/mpireg.h')
-rw-r--r--sys/dev/ic/mpireg.h35
1 files changed, 34 insertions, 1 deletions
diff --git a/sys/dev/ic/mpireg.h b/sys/dev/ic/mpireg.h
index 62da10f12dd..27c9fd4ac9a 100644
--- a/sys/dev/ic/mpireg.h
+++ b/sys/dev/ic/mpireg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: mpireg.h,v 1.13 2006/06/12 03:55:39 dlg Exp $ */
+/* $OpenBSD: mpireg.h,v 1.14 2006/06/15 04:44:59 marco Exp $ */
/*
* Copyright (c) 2005 David Gwynne <dlg@openbsd.org>
@@ -1006,3 +1006,36 @@ struct mpi_cfg_manufacturing_pg0 {
char board_assembly[16];
char board_tracer_number[16];
} __packed;
+
+struct mpi_cfg_raid_vol {
+ struct mpi_cfg_hdr config_header;
+
+ u_int8_t vol_id;
+ u_int8_t vol_bus;
+ u_int8_t vol_ioc;
+ u_int8_t vol_page;
+ u_int8_t vol_type;
+#define MPI_CFG_RAID_TYPE_RAID_IS (1<<0) /* RAID 0 */
+#define MPI_CFG_RAID_TYPE_RAID_IME (1<<1) /* RAID 1 */
+#define MPI_CFG_RAID_TYPE_RAID_IM (1<<2) /* RAID 1 */
+#define MPI_CFG_RAID_TYPE_RAID5 (1<<3)
+#define MPI_CFG_RAID_TYPE_RAID6 (1<<4)
+#define MPI_CFG_RAID_TYPE_RAID10 (1<<5)
+#define MPI_CFG_RAID_TYPE_RAID50 (1<<6)
+#define MPI_CFG_RAID_TYPE_UNKNOWN (0xff)
+ u_int8_t flags;
+#define MPI_CFG_RAID_VOL_ACTIVE (0<<3)
+#define MPI_CFG_RAID_VOL_INACTIVE (1<<3)
+ u_int16_t reserved;
+} __packed;
+
+struct mpi_cfg_ioc_pg2 {
+ struct mpi_cfg_hdr config_header;
+
+ u_int32_t capabilities;
+ u_int8_t no_active_vols;
+ u_int8_t max_vols;
+ u_int8_t no_active_phys_disks;
+ u_int8_t max_phys_disks;
+ struct mpi_cfg_raid_vol raid_vol[1]; /* length is stored in header */
+} __packed;