diff options
Diffstat (limited to 'lib/portability.h')
-rw-r--r-- | lib/portability.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/portability.h b/lib/portability.h index f57eb026..c955eddf 100644 --- a/lib/portability.h +++ b/lib/portability.h @@ -186,8 +186,24 @@ char *strcasestr(const char *haystack, const char *needle); #endif #endif -#ifndef __FreeBSD__ +#if defined(__APPLE__) || defined(__linux__) +// Linux and macOS has both have getxattr and friends in <sys/xattr.h>, but +// they aren't compatible. #include <sys/xattr.h> +ssize_t xattr_get(const char *, const char *, void *, size_t); +ssize_t xattr_lget(const char *, const char *, void *, size_t); +ssize_t xattr_fget(int fd, const char *, void *, size_t); +ssize_t xattr_list(const char *, char *, size_t); +ssize_t xattr_llist(const char *, char *, size_t); +ssize_t xattr_flist(int, char *, size_t); +ssize_t xattr_set(const char*, const char*, const void*, size_t, int); +ssize_t xattr_lset(const char*, const char*, const void*, size_t, int); +ssize_t xattr_fset(int, const char*, const void*, size_t, int); +#endif + +// macOS doesn't have mknodat, but we can fake it. +#ifdef __APPLE__ +int mknodat(int, const char*, mode_t, dev_t); #endif // Android is missing some headers and functions @@ -312,3 +328,7 @@ struct xnotify { struct xnotify *xnotify_init(int max); int xnotify_add(struct xnotify *not, int fd, char *path); int xnotify_wait(struct xnotify *not, char **path); + +#ifdef __APPLE__ +#define f_frsize f_iosize +#endif |