diff options
| author | James Bottomley <James.Bottomley@steeleye.com> | 2005-11-06 11:59:08 -0600 | 
|---|---|---|
| committer | James Bottomley <jejb@mulgrave.(none)> | 2005-11-06 12:32:31 -0600 | 
| commit | b1081ea6f000dee6dba288f9fab9df902802b25b (patch) | |
| tree | 992c2419987d40e7fb9d888b5ab852c091acc31b /include/linux/raid_class.h | |
| parent | df133c212ef82b9c7e80fca7b1f87dad8a05de3c (diff) | |
| download | olio-linux-3.10-b1081ea6f000dee6dba288f9fab9df902802b25b.tar.xz olio-linux-3.10-b1081ea6f000dee6dba288f9fab9df902802b25b.zip  | |
[SCSI] raid class update
- Update raid class to use nested classes for raid components (this will
allow us to move to a component control model now)
- Make the raid level an enumeration rather than and int.
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'include/linux/raid_class.h')
| -rw-r--r-- | include/linux/raid_class.h | 32 | 
1 files changed, 26 insertions, 6 deletions
diff --git a/include/linux/raid_class.h b/include/linux/raid_class.h index a71123c2827..48831eac291 100644 --- a/include/linux/raid_class.h +++ b/include/linux/raid_class.h @@ -1,4 +1,9 @@  /* + * raid_class.h - a generic raid visualisation class + * + * Copyright (c) 2005 - James Bottomley <James.Bottomley@steeleye.com> + * + * This file is licensed under GPLv2   */  #include <linux/transport_class.h> @@ -14,20 +19,35 @@ struct raid_function_template {  };  enum raid_state { -	RAID_ACTIVE = 1, -	RAID_DEGRADED, -	RAID_RESYNCING, -	RAID_OFFLINE, +	RAID_STATE_UNKNOWN = 0, +	RAID_STATE_ACTIVE, +	RAID_STATE_DEGRADED, +	RAID_STATE_RESYNCING, +	RAID_STATE_OFFLINE, +}; + +enum raid_level { +	RAID_LEVEL_UNKNOWN = 0, +	RAID_LEVEL_LINEAR, +	RAID_LEVEL_0, +	RAID_LEVEL_1, +	RAID_LEVEL_3, +	RAID_LEVEL_4, +	RAID_LEVEL_5, +	RAID_LEVEL_6,  };  struct raid_data {  	struct list_head component_list;  	int component_count; -	int level; +	enum raid_level level;  	enum raid_state state;  	int resync;  }; +/* resync complete goes from 0 to this */ +#define RAID_MAX_RESYNC		(10000) +  #define DEFINE_RAID_ATTRIBUTE(type, attr)				      \  static inline void							      \  raid_set_##attr(struct raid_template *r, struct device *dev, type value) {    \ @@ -48,7 +68,7 @@ raid_get_##attr(struct raid_template *r, struct device *dev) {		      \  	return rd->attr;						      \  } -DEFINE_RAID_ATTRIBUTE(int, level) +DEFINE_RAID_ATTRIBUTE(enum raid_level, level)  DEFINE_RAID_ATTRIBUTE(int, resync)  DEFINE_RAID_ATTRIBUTE(enum raid_state, state)  |