X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=mdadm.h;h=4c0e9e16a636a72ebfc7d141b47895ba071cea6c;hp=71903768f21eedb4cf32e80e6bad464ddda69205;hb=598f0d58ac3544e25f90f2d34337e15764f4d877;hpb=111d01fcc76d2e7d0b05f78fae67e89cdf6856ad diff --git a/mdadm.h b/mdadm.h index 71903768..4c0e9e16 100644 --- a/mdadm.h +++ b/mdadm.h @@ -142,7 +142,9 @@ struct mdinfo { int uuid[4]; char name[33]; unsigned long long data_offset; - unsigned long long component_size; + unsigned long long component_size; /* same as array.size, except in + * sectors and up to 64bits. + */ int reshape_active; unsigned long long reshape_progress; int new_level, delta_disks, new_layout, new_chunk; @@ -317,6 +319,11 @@ extern int sysfs_set_num(struct mdinfo *sra, struct mdinfo *dev, char *name, unsigned long long val); extern int sysfs_get_ll(struct mdinfo *sra, struct mdinfo *dev, char *name, unsigned long long *val); +extern int sysfs_set_array(struct mdinfo *sra, + struct mdinfo *info); +extern int sysfs_add_disk(struct mdinfo *sra, int fd, struct mdinfo *sd); + + extern int save_stripes(int *source, unsigned long long *offsets, @@ -350,6 +357,7 @@ extern struct superswitch { void (*export_detail_super)(struct supertype *st); void (*uuid_from_super)(struct supertype *st, int uuid[4]); void (*getinfo_super)(struct supertype *st, struct mdinfo *info); + void (*getinfo_super_n)(struct supertype *st, struct mdinfo *info); int (*match_home)(struct supertype *st, char *homehost); int (*update_super)(struct supertype *st, struct mdinfo *info, char *update, @@ -376,9 +384,14 @@ extern struct superswitch { int raiddisks, int chunk, unsigned long long size, char *subdev, unsigned long long *freesize); + + struct mdinfo *(*container_content)(struct supertype *st); + int major; + char *text_version; int swapuuid; /* true if uuid is bigending rather than hostendian */ -} super0, super1, *superlist[]; + int external; +} super0, super1, super_ddf, super_ddf_bvd, super_ddf_svd, *superlist[]; struct supertype { struct superswitch *ss; @@ -483,6 +496,8 @@ extern int Wait(char *dev); extern int Incremental(char *devname, int verbose, int runstop, struct supertype *st, char *homehost, int autof); +extern int Incremental_container(struct supertype *st, char *devname, + int verbose, int runstop, int autof); extern void RebuildMap(void); extern int IncrementalScan(int verbose); @@ -528,6 +543,8 @@ extern int enough(int level, int raid_disks, int layout, int clean, extern int ask(char *mesg); extern unsigned long long get_component_size(int fd); extern void remove_partitions(int fd); +extern unsigned long long calc_array_size(int level, int raid_disks, int layout, + int chunksize, unsigned long long devsize); extern char *human_size(long long bytes); @@ -544,6 +561,7 @@ extern char DefaultConfFile[]; extern int open_mddev(char *dev, int autof); extern int open_mddev_devnum(char *devname, int devnum, char *name, char *chosen_name, int parts); +extern int open_container(int fd); #define LEVEL_MULTIPATH (-4) @@ -552,6 +570,7 @@ extern int open_mddev_devnum(char *devname, int devnum, char *name, /* kernel module doesn't know about these */ #define LEVEL_CONTAINER (-100) +#define LEVEL_UNSUPPORTED (-200) /* faulty stuff */