Only include sys/sysmacros.h on glibc, it is not portable
[project/make_ext4fs.git] / ext4_utils.h
index b6915bd..71f1cd6 100644 (file)
@@ -27,9 +27,12 @@ extern "C" {
 #define _FILE_OFFSET_BITS 64
 #define _LARGEFILE64_SOURCE 1
 #include <sys/types.h>
-#include <unistd.h>
 
-#include <sys/types.h>
+#ifdef __GLIBC__
+#include <sys/sysmacros.h>
+#endif
+
+#include <unistd.h>
 #include <errno.h>
 #include <stdarg.h>
 #include <stdio.h>
@@ -150,13 +153,13 @@ u64 parse_num(const char *arg);
 void ext4_parse_sb_info(struct ext4_super_block *sb);
 u16 ext4_crc16(u16 crc_in, const void *buf, int size);
 
-typedef void (*fs_config_func_t)(const char *path, int dir, unsigned *uid, unsigned *gid,
+typedef int (*fs_config_func_t)(const char *path, int dir, unsigned *uid, unsigned *gid,
                unsigned *mode, uint64_t *capabilities);
 
 struct selabel_handle;
 
 int make_ext4fs_internal(int fd, const char *directory,
-                                                const char *mountpoint, fs_config_func_t fs_config_func, int gzip,
+                                                fs_config_func_t fs_config_func, int gzip,
                                                 int sparse, int crc, int wipe,
                                                 int verbose, time_t fixed_time,
                                                 FILE* block_list_file);