X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=mdadm.h;h=82f6cd9f226ca349865e7233d1e2714df5319836;hp=2a5e1c8c425a4902ca46570b278e380c17d2f97b;hb=d03373f1deea242eaacfab6b2b0c4afc6d7702d2;hpb=c2c9bb6fe04fe2800fcda3ff285b16ca9ecd38ae diff --git a/mdadm.h b/mdadm.h index 2a5e1c8c..82f6cd9f 100644 --- a/mdadm.h +++ b/mdadm.h @@ -106,6 +106,13 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); #define __le16_to_cpu(_x) (_x) #define __le32_to_cpu(_x) (_x) #define __le64_to_cpu(_x) (_x) + +#define __cpu_to_be16(_x) bswap_16(_x) +#define __cpu_to_be32(_x) bswap_32(_x) +#define __cpu_to_be64(_x) bswap_64(_x) +#define __be16_to_cpu(_x) bswap_16(_x) +#define __be32_to_cpu(_x) bswap_32(_x) +#define __be64_to_cpu(_x) bswap_64(_x) #elif BYTE_ORDER == BIG_ENDIAN #define __cpu_to_le16(_x) bswap_16(_x) #define __cpu_to_le32(_x) bswap_32(_x) @@ -113,6 +120,13 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); #define __le16_to_cpu(_x) bswap_16(_x) #define __le32_to_cpu(_x) bswap_32(_x) #define __le64_to_cpu(_x) bswap_64(_x) + +#define __cpu_to_be16(_x) (_x) +#define __cpu_to_be32(_x) (_x) +#define __cpu_to_be64(_x) (_x) +#define __be16_to_cpu(_x) (_x) +#define __be32_to_cpu(_x) (_x) +#define __be64_to_cpu(_x) (_x) #else # error "unknown endianness." #endif @@ -330,9 +344,10 @@ extern char *map_dev(int major, int minor, int create); extern struct superswitch { void (*examine_super)(struct supertype *st, char *homehost); void (*brief_examine_super)(struct supertype *st); + void (*export_examine_super)(struct supertype *st); void (*detail_super)(struct supertype *st, char *homehost); - void (*export_super)(struct supertype *st); void (*brief_detail_super)(struct supertype *st); + 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); int (*match_home)(struct supertype *st, char *homehost); @@ -343,10 +358,10 @@ extern struct superswitch { 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); @@ -357,8 +372,14 @@ extern struct superswitch { void (*locate_bitmap)(struct supertype *st, int fd); int (*write_bitmap)(struct supertype *st, int fd); void (*free_super)(struct supertype *st); + int (*validate_geometry)(struct supertype *st, int level, int layout, + int raiddisks, + 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 */ + int external; } super0, super1, *superlist[]; struct supertype { @@ -366,6 +387,7 @@ struct supertype { int minor_version; int max_devs; void *sb; + void *info; }; extern struct supertype *super_by_fd(int fd); @@ -451,14 +473,14 @@ extern int Create(struct supertype *st, char *mddev, int mdfd, extern int Detail(char *dev, int brief, int export, int test, char *homehost); extern int Query(char *dev); -extern int Examine(mddev_dev_t devlist, int brief, int scan, int SparcAdjust, - struct supertype *forcest, char *homehost); +extern int Examine(mddev_dev_t devlist, int brief, int export, int scan, + int SparcAdjust, struct supertype *forcest, char *homehost); extern int Monitor(mddev_dev_t devlist, char *mailaddr, char *alert_cmd, 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, @@ -513,6 +535,9 @@ extern void remove_partitions(int fd); extern char *human_size(long long bytes); char *human_size_brief(long long bytes); +#define NoMdDev (1<<23) +extern int find_free_devnum(int use_partitions); + extern void put_md_name(char *name); extern char *get_md_name(int dev); @@ -520,13 +545,16 @@ 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); + char *chosen_name, int parts); #define LEVEL_MULTIPATH (-4) #define LEVEL_LINEAR (-1) #define LEVEL_FAULTY (-5) +/* kernel module doesn't know about these */ +#define LEVEL_CONTAINER (-100) + /* faulty stuff */