]> 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 f1768a53c621de1c8f4662b788021b5056093278..d40d18735d906e962814357c5c9ea7e897e24a95 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -258,6 +258,7 @@ struct sysarray {
        int     level;
        int     spares;
        int     cache_size;
+       int     mismatch_cnt;
 };
 /* various details can be requested */
 #define        GET_LEVEL       1
@@ -265,6 +266,7 @@ struct sysarray {
 #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
@@ -317,7 +319,7 @@ extern struct superswitch {
        int (*update_super)(struct mdinfo *info, void *sbv, char *update,
                            char *devname, int verbose,
                            int uuid_set, char *homehost);
-       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);
@@ -342,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;
@@ -406,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);
@@ -429,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);
@@ -457,6 +460,7 @@ 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, int clean,