9p-util.h (67a71e3b71a2834d028031a92e76eb9444e423c6) 9p-util.h (b5989326f558faedd2511f29459112cced2ca8f5)
1/*
2 * 9p utilities
3 *
4 * Copyright IBM, Corp. 2017
5 *
6 * Authors:
7 * Greg Kurz <groug@kaod.org>
8 *

--- 5 unchanged lines hidden (view full) ---

14#define QEMU_9P_UTIL_H
15
16#ifdef O_PATH
17#define O_PATH_9P_UTIL O_PATH
18#else
19#define O_PATH_9P_UTIL 0
20#endif
21
1/*
2 * 9p utilities
3 *
4 * Copyright IBM, Corp. 2017
5 *
6 * Authors:
7 * Greg Kurz <groug@kaod.org>
8 *

--- 5 unchanged lines hidden (view full) ---

14#define QEMU_9P_UTIL_H
15
16#ifdef O_PATH
17#define O_PATH_9P_UTIL O_PATH
18#else
19#define O_PATH_9P_UTIL 0
20#endif
21
22#ifdef CONFIG_DARWIN
23#define qemu_fgetxattr(...) fgetxattr(__VA_ARGS__, 0, 0)
24#define qemu_lgetxattr(...) getxattr(__VA_ARGS__, 0, XATTR_NOFOLLOW)
25#define qemu_llistxattr(...) listxattr(__VA_ARGS__, XATTR_NOFOLLOW)
26#define qemu_lremovexattr(...) removexattr(__VA_ARGS__, XATTR_NOFOLLOW)
27static inline int qemu_lsetxattr(const char *path, const char *name,
28 const void *value, size_t size, int flags) {
29 return setxattr(path, name, value, size, 0, flags | XATTR_NOFOLLOW);
30}
31#else
32#define qemu_fgetxattr fgetxattr
33#define qemu_lgetxattr lgetxattr
34#define qemu_llistxattr llistxattr
35#define qemu_lremovexattr lremovexattr
36#define qemu_lsetxattr lsetxattr
37#endif
38
22static inline void close_preserve_errno(int fd)
23{
24 int serrno = errno;
25 close(fd);
26 errno = serrno;
27}
28
29static inline int openat_dir(int dirfd, const char *name)

--- 72 unchanged lines hidden ---
39static inline void close_preserve_errno(int fd)
40{
41 int serrno = errno;
42 close(fd);
43 errno = serrno;
44}
45
46static inline int openat_dir(int dirfd, const char *name)

--- 72 unchanged lines hidden ---