]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.h
Centralise code for copying uuid
[thirdparty/mdadm.git] / mdadm.h
diff --git a/mdadm.h b/mdadm.h
index 420e6a34bb5b2b0f462ecb05b0fbe793d1e66bef..d40d18735d906e962814357c5c9ea7e897e24a95 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -132,6 +132,7 @@ struct createinfo {
        int     gid;
        int     autof;
        int     mode;
+       int     symlinks;
        struct supertype *supertype;
 };
 
@@ -167,6 +168,7 @@ enum special_options {
        BackupFile,
        HomeHost,
        AutoHomeHost,
+       Symlinks,
 };
 
 /* structures read from config file */
@@ -255,12 +257,16 @@ struct sysarray {
        int     layout;
        int     level;
        int     spares;
+       int     cache_size;
+       int     mismatch_cnt;
 };
 /* various details can be requested */
 #define        GET_LEVEL       1
 #define        GET_LAYOUT      2
 #define        GET_COMPONENT   4
 #define        GET_CHUNK       8
+#define GET_CACHE      16
+#define        GET_MISMATCH    32
 
 #define        GET_DEVS        1024 /* gets role, major, minor */
 #define        GET_OFFSET      2048
@@ -313,8 +319,7 @@ extern struct superswitch {
        int (*update_super)(struct mdinfo *info, void *sbv, char *update,
                            char *devname, int verbose,
                            int uuid_set, char *homehost);
-       __u64 (*event_super)(void *sbv);
-       int (*init_super)(struct supertype *st, void **sbp, mdu_array_info_t *info, unsigned long long size, char *name, char *homehost);
+       int (*init_super)(struct supertype *st, void **sbp, mdu_array_info_t *info, unsigned long long size, char *name, char *homehost, int *uuid);
        void (*add_to_super)(void *sbv, mdu_disk_info_t *dinfo);
        int (*store_super)(struct supertype *st, int fd, void *sbv);
        int (*write_init_super)(struct supertype *st, void *sbv, mdu_disk_info_t *dinfo, char *devname);
@@ -322,7 +327,8 @@ extern struct superswitch {
        int (*load_super)(struct supertype *st, int fd, void **sbp, char *devname);
        struct supertype * (*match_metadata_desc)(char *arg);
        __u64 (*avail_size)(struct supertype *st, __u64 size);
-       int (*add_internal_bitmap)(struct supertype *st, void *sbv, int chunk, int delay, int write_behind,
+       int (*add_internal_bitmap)(struct supertype *st, void *sbv, int *chunkp,
+                                  int delay, int write_behind,
                                   unsigned long long size, int may_change, int major);
        void (*locate_bitmap)(struct supertype *st, int fd, void *sbv);
        int (*write_bitmap)(struct supertype *st, int fd, void *sbv);
@@ -338,6 +344,7 @@ struct supertype {
 
 extern struct supertype *super_by_version(int vers, int minor);
 extern struct supertype *guess_super(int fd);
+extern int get_dev_size(int fd, char *dname, unsigned long long *sizep);
 
 #if __GNUC__ < 3
 struct stat64;
@@ -402,7 +409,7 @@ extern int Build(char *mddev, int mdfd, int chunk, int level, int layout,
 
 extern int Create(struct supertype *st, char *mddev, int mdfd,
                  int chunk, int level, int layout, unsigned long long size, int raiddisks, int sparedisks,
-                 char *name, char *homehost,
+                 char *name, char *homehost, int *uuid,
                  int subdevs, mddev_dev_t devlist,
                  int runstop, int verbose, int force, int assume_clean,
                  char *bitmap_file, int bitmap_chunk, int write_behind, int delay);
@@ -417,6 +424,7 @@ extern int Monitor(mddev_dev_t devlist,
                   int dosyslog, int test, char *pidfile);
 
 extern int Kill(char *dev, int force, int quiet);
+extern int Wait(char *dev);
 
 extern int CreateBitmap(char *filename, int force, char uuid[16],
                        unsigned long chunksize, unsigned long daemon_sleep,
@@ -424,7 +432,7 @@ extern int CreateBitmap(char *filename, int force, char uuid[16],
                        unsigned long long array_size,
                        int major);
 extern int ExamineBitmap(char *filename, int brief, struct supertype *st);
-extern int bitmap_update_uuid(int fd, int *uuid);
+extern int bitmap_update_uuid(int fd, int *uuid, int swap);
 
 extern int md_get_version(int fd);
 extern int get_linux_version(void);
@@ -452,12 +460,14 @@ extern void free_line(char *line);
 extern int match_oneof(char *devices, char *devname);
 extern void uuid_from_super(int uuid[4], mdp_super_t *super);
 extern int same_uuid(int a[4], int b[4], int swapuuid);
+extern void copy_uuid(void *a, int b[4], int swapuuid);
 /* extern int compare_super(mdp_super_t *first, mdp_super_t *second);*/
 extern unsigned long calc_csum(void *super, int bytes);
-extern int enough(int level, int raid_disks, int layout,
+extern int enough(int level, int raid_disks, int layout, int clean,
                   char *avail, int avail_disks);
 extern int ask(char *mesg);
 extern unsigned long long get_component_size(int fd);
+extern void remove_partitions(int fd);
 
 
 extern char *human_size(long long bytes);