]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.h
Add 'supertype' arg to almost all metadata methods.
[thirdparty/mdadm.git] / mdadm.h
diff --git a/mdadm.h b/mdadm.h
index e6b03c58c5d4cef213ee832ea022575c7f99f34e..bf583b41e9ce347fa4d54b0c7be1fbe4847345ec 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
 
 #define        _GNU_SOURCE
 #include       <unistd.h>
-#ifndef __dietlibc__
+#if !defined(__dietlibc__) && !defined(__KLIBC__)
 extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
 #else
-# ifdef __NO_STAT64
+# if defined(__NO_STAT64) || __WORDSIZE != 32
 # define lseek64 lseek
 # endif
 #endif
@@ -97,6 +97,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
                     ((x) & 0x00000000ff000000ULL) << 8 | \
                     ((x) & 0x000000ff00000000ULL) >> 8)
 
+#if !defined(__KLIBC__)
 #if BYTE_ORDER == LITTLE_ENDIAN
 #define        __cpu_to_le16(_x) (_x)
 #define __cpu_to_le32(_x) (_x)
@@ -114,6 +115,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
 #else
 #  error "unknown endianness."
 #endif
+#endif /* __KLIBC__ */
 
 
 
@@ -155,6 +157,7 @@ enum mode {
 };
 
 extern char short_options[];
+extern char short_bitmap_options[];
 extern char short_bitmap_auto_options[];
 extern struct option long_options[];
 extern char Version[], Usage[], Help[], OptionHelp[],
@@ -192,7 +195,7 @@ enum special_options {
 #define UnSet (0xfffe)
 typedef struct mddev_ident_s {
        char    *devname;
-       
+
        int     uuid_set;
        int     uuid[4];
        char    name[33];
@@ -338,19 +341,20 @@ extern char *map_dev(int major, int minor, int create);
 
 
 extern struct superswitch {
-       void (*examine_super)(void *sbv, char *homehost);
-       void (*brief_examine_super)(void *sbv);
-       void (*detail_super)(void *sbv, char *homehost);
-       void (*export_super)(void *sbv);
-       void (*brief_detail_super)(void *sbv);
-       void (*uuid_from_super)(int uuid[4], void *sbv);
-       void (*getinfo_super)(struct mdinfo *info, void *sbv);
-       int (*match_home)(void *sbv, char *homehost);
-       int (*update_super)(struct mdinfo *info, void *sbv, char *update,
+       void (*examine_super)(struct supertype *st, void *sbv, char *homehost);
+       void (*brief_examine_super)(struct supertype *st, void *sbv);
+       void (*detail_super)(struct supertype *st, void *sbv, char *homehost);
+       void (*export_super)(struct supertype *st, void *sbv);
+       void (*brief_detail_super)(struct supertype *st, void *sbv);
+       void (*uuid_from_super)(struct supertype *st, int uuid[4], void *sbv);
+       void (*getinfo_super)(struct supertype *st, struct mdinfo *info, void *sbv);
+       int (*match_home)(struct supertype *st, void *sbv, char *homehost);
+       int (*update_super)(struct supertype *st, 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 *uuid);
-       void (*add_to_super)(void *sbv, mdu_disk_info_t *dinfo);
+       void (*add_to_super)(struct supertype *st, 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);
        int (*compare_super)(void **firstp, void *secondv);
@@ -362,6 +366,7 @@ extern struct superswitch {
                                   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);
+       void (*free_super)(struct supertype *st, void *super);
        int major;
        int swapuuid; /* true if uuid is bigending rather than hostendian */
 } super0, super1, *superlist[];
@@ -397,6 +402,11 @@ struct stat64;
 # undef HAVE_NFTW
 #endif
 
+#if defined(__KLIBC__)
+# undef HAVE_NFTW
+# undef HAVE_FTW
+#endif
+
 #ifndef HAVE_NFTW
 # define FTW_PHYS 1
 # ifndef HAVE_FTW