summaryrefslogtreecommitdiff
path: root/sys/dev/softraidvar.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/softraidvar.h')
-rw-r--r--sys/dev/softraidvar.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/dev/softraidvar.h b/sys/dev/softraidvar.h
index 04ba09af530..407e76bcfe6 100644
--- a/sys/dev/softraidvar.h
+++ b/sys/dev/softraidvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: softraidvar.h,v 1.79 2009/07/12 16:31:56 jsing Exp $ */
+/* $OpenBSD: softraidvar.h,v 1.80 2009/07/23 15:15:25 jordan Exp $ */
/*
* Copyright (c) 2006 Marco Peereboom <marco@peereboom.us>
* Copyright (c) 2008 Chris Kuethe <ckuethe@openbsd.org>
@@ -264,6 +264,8 @@ struct sr_workunit {
int swu_flags; /* additional hints */
#define SR_WUF_REBUILD (1<<0) /* rebuild io */
#define SR_WUF_REBUILDIOCOMP (1<<1) /* rbuild io complete */
+#define SR_WUF_FAIL (1<<2) /* RAID6: failure */
+#define SR_WUF_FAILIOCOMP (1<<3)
int swu_fake; /* faked wu */
/* workunit io range */
@@ -307,6 +309,12 @@ struct sr_raidp {
int32_t srp_strip_bits;
};
+/* RAID 6 */
+#define SR_RAID6_NOWU 16
+struct sr_raid6 {
+ int32_t sr6_strip_bits;
+};
+
/* CRYPTO */
#define SR_CRYPTO_NOWU 16
struct sr_crypto {
@@ -394,6 +402,7 @@ struct sr_discipline {
#define SR_MD_AOE_INIT 5
#define SR_MD_AOE_TARG 6
#define SR_MD_RAID4 7
+#define SR_MD_RAID6 8
char sd_name[10]; /* human readable dis name */
u_int8_t sd_scsibus; /* scsibus discipline uses */
struct scsi_link sd_link; /* link to midlayer */
@@ -402,6 +411,7 @@ struct sr_discipline {
struct sr_raid0 mdd_raid0;
struct sr_raid1 mdd_raid1;
struct sr_raidp mdd_raidp;
+ struct sr_raid6 mdd_raid6;
struct sr_crypto mdd_crypto;
#ifdef AOE
struct sr_aoe mdd_aoe;
@@ -536,6 +546,7 @@ void sr_raid_startwu(struct sr_workunit *);
void sr_raid0_discipline_init(struct sr_discipline *);
void sr_raid1_discipline_init(struct sr_discipline *);
void sr_raidp_discipline_init(struct sr_discipline *);
+void sr_raid6_discipline_init(struct sr_discipline *);
void sr_crypto_discipline_init(struct sr_discipline *);
void sr_aoe_discipline_init(struct sr_discipline *);
void sr_aoe_server_discipline_init(struct sr_discipline *);