summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-raid.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ata/ata-raid.h')
-rw-r--r--sys/dev/ata/ata-raid.h27
1 files changed, 15 insertions, 12 deletions
diff --git a/sys/dev/ata/ata-raid.h b/sys/dev/ata/ata-raid.h
index 06a5f8f..4061701 100644
--- a/sys/dev/ata/ata-raid.h
+++ b/sys/dev/ata/ata-raid.h
@@ -58,7 +58,7 @@ struct ar_softc {
int total_disks; /* number of disks in this array */
int generation; /* generation of this array */
- struct ar_disk disks[MAX_DISKS]; /* ptr to each disk in array */
+ struct ar_disk disks[MAX_DISKS+1]; /* ptr to each disk in array */
int width; /* array width in disks */
u_int16_t heads;
u_int16_t sectors;
@@ -93,12 +93,11 @@ struct highpoint_raid_conf {
u_int32_t magic_0;
u_int32_t magic_1;
u_int32_t order;
-#define HPT_O_RAID0 0x00
-#define HPT_O_RAID1 0x01
+#define HPT_O_DOWN 0x00
+#define HPT_O_RAID01DEGRADED 0x01
#define HPT_O_RAID01DST 0x02
#define HPT_O_RAID01SRC 0x03
-#define HPT_O_RAIDMASK 0x03
-#define HPT_O_OK 0x04
+#define HPT_O_READY 0x04
u_int8_t array_width;
u_int8_t stripe_shift;
@@ -134,6 +133,7 @@ struct highpoint_raid_conf {
int8_t filler2[60];
} __attribute__((packed));
+
#define PR_LBA(adp) \
(((adp->total_secs / (adp->heads * adp->sectors)) * \
adp->heads * adp->sectors) - adp->sectors)
@@ -143,7 +143,9 @@ struct promise_raid_conf {
#define PR_MAGIC "Promise Technology, Inc."
u_int32_t dummy_0;
- u_int8_t magic_0[8];
+ u_int64_t magic_0;
+#define PR_MAGIC0(x) ((u_int64_t)x.device->channel->unit << 48) | \
+ ((u_int64_t)(x.device->unit != 0) << 56)
u_int16_t magic_1;
u_int32_t magic_2;
u_int8_t filler1[470];
@@ -164,10 +166,10 @@ struct promise_raid_conf {
u_int8_t disk_number;
u_int8_t channel;
u_int8_t device;
- u_int8_t magic_0[8];
+ u_int64_t magic_0;
u_int32_t disk_offset; /* 0x210 */
u_int32_t disk_sectors;
- u_int32_t dummy_1;
+ u_int32_t rebuild_lba;
u_int16_t generation;
u_int8_t status;
#define PR_S_VALID 0x01
@@ -176,6 +178,7 @@ struct promise_raid_conf {
#define PR_S_READY 0x08
#define PR_S_DEGRADED 0x10
#define PR_S_MARKED 0x20
+#define PR_S_FUNCTIONAL 0x80
u_int8_t type;
#define PR_T_RAID0 0x00
@@ -192,19 +195,19 @@ struct promise_raid_conf {
u_int16_t cylinders;
u_int8_t heads;
u_int8_t sectors;
- int8_t magic_1[8];
+ int64_t magic_1;
struct { /* 0x240 */
u_int8_t flags;
u_int8_t dummy_0;
u_int8_t channel;
u_int8_t device;
- u_int8_t magic_0[8];
+ u_int64_t magic_0;
} disk[8];
} raid;
int32_t filler2[346];
u_int32_t checksum;
} __attribute__((packed));
-int ar_probe(struct ad_softc *);
-void atar_attach(void);
+int ata_raid_probe(struct ad_softc *);
+void ata_raid_attach(void);
OpenPOWER on IntegriCloud