summaryrefslogtreecommitdiff
path: root/mdmon.h
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2008-05-15 16:48:37 +1000
committerNeil Brown <neilb@suse.de>2008-05-15 16:48:37 +1000
commit549e9569c6006433512801ae76b34abc0d3e1ac0 (patch)
treecc17c37e280d4d0acd40009285a497eda693999d /mdmon.h
parentf7dd881f909a7bc552a6de3c1fc4920bb0bfdff2 (diff)
Merge mdmon
Diffstat (limited to 'mdmon.h')
-rw-r--r--mdmon.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/mdmon.h b/mdmon.h
new file mode 100644
index 00000000..497bbec2
--- /dev/null
+++ b/mdmon.h
@@ -0,0 +1,41 @@
+
+enum array_state { clear, inactive, suspended, readonly, read_auto,
+ clean, active, write_pending, active_idle, bad_word};
+
+enum sync_action { idle, reshape, resync, recover, check, repair, bad_action };
+
+
+struct active_array {
+ struct mdinfo info;
+ struct supertype *container;
+ struct active_array *next, *replaces;
+
+ int action_fd;
+ int sync_pos_fd;
+
+ enum array_state prev_state, curr_state, next_state;
+ enum sync_action prev_action, curr_action, next_action;
+
+ int devnum;
+
+ unsigned long long sync_pos;
+};
+
+
+
+#define MD_MAJOR 9
+
+extern struct active_array *container;
+extern struct active_array *array_list;
+extern struct active_array *discard_this;
+extern struct active_array *pending_discard;
+
+
+void do_monitor(struct supertype *container);
+void do_manager(struct supertype *container);
+
+int read_dev_state(int fd);
+
+struct mdstat_ent *mdstat_read(int hold, int start);
+
+extern struct superswitch super_ddf, super_ddf_bvd, super_ddf_svd;