int (*init_super)(struct supertype *st, mdu_array_info_t *info,
unsigned long long size, char *name,
char *homehost, int *uuid);
- void (*add_to_super)(struct supertype *st, mdu_disk_info_t *dinfo);
+ void (*add_to_super)(struct supertype *st, mdu_disk_info_t *dinfo,
+ int fd, char *devname);
int (*store_super)(struct supertype *st, int fd);
- int (*write_init_super)(struct supertype *st, mdu_disk_info_t *dinfo,
- char *devname);
+ int (*write_init_super)(struct supertype *st);
int (*compare_super)(struct supertype *st, struct supertype *tst);
int (*load_super)(struct supertype *st, int fd, char *devname);
struct supertype * (*match_metadata_desc)(char *arg);
int chunk, unsigned long long size,
char *subdev, unsigned long long *freesize);
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;
int minor_version;
int max_devs;
void *sb;
+ void *info;
};
extern struct supertype *super_by_fd(int fd);
int period, int daemonise, int scan, int oneshot,
int dosyslog, int test, char *pidfile);
-extern int Kill(char *dev, int force, int quiet);
+extern int Kill(char *dev, int force, int quiet, int noexcl);
extern int Wait(char *dev);
extern int Incremental(char *devname, int verbose, int runstop,
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);
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)
/* kernel module doesn't know about these */
#define LEVEL_CONTAINER (-100)
+#define LEVEL_UNSUPPORTED (-200)
/* faulty stuff */