]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.h
Factor out add-disk code
[thirdparty/mdadm.git] / mdadm.h
diff --git a/mdadm.h b/mdadm.h
index 3eee61a5adad7de5fc7e32d313c0421a5d911a78..b123da2dd24503ef3c2bf6830da826edc342388a 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -224,6 +224,7 @@ enum special_options {
        AutoHomeHost,
        Symlinks,
        AutoDetect,
+       Waitclean,
 };
 
 /* structures read from config file */
@@ -327,6 +328,7 @@ extern void map_add(struct map_ent **melp,
 #define        GET_VERSION     64
 #define        GET_DISKS       128
 #define        GET_DEGRADED    256
+#define        GET_SAFEMODE    512
 
 #define        GET_DEVS        1024 /* gets role, major, minor */
 #define        GET_OFFSET      2048
@@ -340,6 +342,8 @@ extern void map_add(struct map_ent **melp,
 extern int sysfs_open(int devnum, char *devname, char *attr);
 extern void sysfs_free(struct mdinfo *sra);
 extern struct mdinfo *sysfs_read(int fd, int devnum, unsigned long options);
+extern int sysfs_attr_match(const char *attr, const char *str);
+extern int sysfs_match_word(const char *word, char **list);
 extern int sysfs_set_str(struct mdinfo *sra, struct mdinfo *dev,
                         char *name, char *val);
 extern int sysfs_set_num(struct mdinfo *sra, struct mdinfo *dev,
@@ -352,6 +356,7 @@ extern int sysfs_set_array(struct mdinfo *sra,
 extern int sysfs_add_disk(struct mdinfo *sra, struct mdinfo *sd);
 extern int sysfs_disk_to_scsi_id(int fd, __u32 *id);
 extern int sysfs_unique_holder(int devnum, long rdev);
+extern int load_sys(char *path, char *buf);
 
 
 extern int save_stripes(int *source, unsigned long long *offsets,
@@ -705,6 +710,7 @@ extern int Monitor(mddev_dev_t devlist,
 
 extern int Kill(char *dev, int force, int quiet, int noexcl);
 extern int Wait(char *dev);
+extern int WaitClean(char *dev);
 
 extern int Incremental(char *devname, int verbose, int runstop,
                       struct supertype *st, char *homehost, int autof);
@@ -761,6 +767,8 @@ extern unsigned long long calc_array_size(int level, int raid_disks, int layout,
 extern int flush_metadata_updates(struct supertype *st);
 extern void append_metadata_update(struct supertype *st, void *buf, int len);
 
+extern int add_disk(int mdfd, struct supertype *st,
+                   struct mdinfo *sra, struct mdinfo *info);
 
 extern char *human_size(long long bytes);
 char *human_size_brief(long long bytes);
@@ -785,6 +793,7 @@ extern int start_mdmon(int devnum);
 
 extern char *devnum2devname(int num);
 extern int devname2devnum(char *name);
+extern int stat2devnum(struct stat *st);
 extern int fd2devnum(int fd);
 
 static inline int dev2major(int d)