31#if defined(__clang__) && defined(_FORTIFY_SOURCE)
36#define _DARWIN_USE_64_BIT_INODE 1
79namespace {
bool isLite = (getenv(
"XRD_POSIX_PRELOAD_LITE") != 0);}
87int access(
const char *path,
int amode)
89 static int Init =
Xunix.Init(&Init);
103int acl(
const char *path,
int cmd,
int nentries,
void *aclbufp)
105 static int Init =
Xunix.Init(&Init);
119 static int Init =
Xunix.Init(&Init);
133 static int Init =
Xunix.Init(&Init);
147 static int Init =
Xunix.Init(&Init);
161 static int Init =
Xunix.Init(&Init);
175 static int Init =
Xunix.Init(&Init);
189 static int Init =
Xunix.Init(&Init);
194 theArg = va_arg(ap,
void *);
204#if !defined(__APPLE__)
209 static int Init =
Xunix.Init(&Init);
224 static int Init =
Xunix.Init(&Init);
236FILE *
fopen64(
const char *path,
const char *mode)
238 static int Init =
Xunix.Init(&Init);
250size_t fread(
void *ptr,
size_t size,
size_t nitems, FILE *stream)
252 static int Init =
Xunix.Init(&Init);
264int fseek(FILE *stream,
long offset,
int whence)
266 static int Init =
Xunix.Init(&Init);
278int fseeko64(FILE *stream, off64_t offset,
int whence)
280 static int Init =
Xunix.Init(&Init);
292#if defined(__linux__) && defined(_STAT_VER) && __GNUC__ && __GNUC__ >= 2
293 int __fxstat64(
int ver,
int fildes,
struct stat64 *buf)
298 static int Init =
Xunix.Init(&Init);
299#if defined(__linux__) && defined(_STAT_VER) && __GNUC__ && __GNUC__ >= 2
314 static int Init =
Xunix.Init(&Init);
327 static int Init =
Xunix.Init(&Init);
341 static int Init =
Xunix.Init(&Init);
355 static int Init =
Xunix.Init(&Init);
369 static int Init =
Xunix.Init(&Init);
381size_t fwrite(
const void *ptr,
size_t size,
size_t nitems, FILE *stream)
383 static int Init =
Xunix.Init(&Init);
393#if defined(__linux__) || defined(__GNU__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
396ssize_t
fgetxattr (
int fd,
const char *name,
void *value,
size_t size)
398 static int Init =
Xunix.Init(&Init);
400 return XrdPosix_Fgetxattr(fd, name, value, size);
409#if defined(__linux__) || defined(__GNU__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
412ssize_t
getxattr (
const char *path,
const char *name,
void *value,
size_t size)
414 static int Init =
Xunix.Init(&Init);
416 return XrdPosix_Getxattr(path, name, value, size);
425#if defined(__linux__) || defined(__GNU__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
428ssize_t
lgetxattr (
const char *path,
const char *name,
void *value,
size_t size)
430 static int Init =
Xunix.Init(&Init);
432 return XrdPosix_Lgetxattr(path, name, value, size);
443off64_t
lseek64(
int fildes, off64_t offset,
int whence)
445 static int Init =
Xunix.Init(&Init);
457#if defined(__linux__) || defined(__APPLE__)
458off_t
llseek(
int fildes, off_t offset,
int whence)
460offset_t
llseek(
int fildes, offset_t offset,
int whence)
463 static int Init =
Xunix.Init(&Init);
475#if defined __linux__ && defined(_STAT_VER) && __GNUC__ && __GNUC__ >= 2
476int __lxstat64(
int ver,
const char *path,
struct stat64 *buf)
481 static int Init =
Xunix.Init(&Init);
492int mkdir(
const char *path, mode_t mode)
494 static int Init =
Xunix.Init(&Init);
506int open64(
const char *path,
int oflag, ...)
508 static int Init =
Xunix.Init(&Init);
513 mode = va_arg(ap,
int);
527 static int Init =
Xunix.Init(&Init);
532 mode = va_arg(ap,
int);
546 static int Init =
Xunix.Init(&Init);
562 static int Init =
Xunix.Init(&Init);
574ssize_t
pread64(
int fildes,
void *buf,
size_t nbyte, off_t offset)
576 static int Init =
Xunix.Init(&Init);
588ssize_t
pwrite64(
int fildes,
const void *buf,
size_t nbyte, off_t offset)
590 static int Init =
Xunix.Init(&Init);
602ssize_t
read(
int fildes,
void *buf,
size_t nbyte)
604 static int Init =
Xunix.Init(&Init);
616ssize_t
readv(
int fildes,
const struct iovec *
iov,
int iovcnt)
618 static int Init =
Xunix.Init(&Init);
632 static int Init =
Xunix.Init(&Init);
644int readdir64_r(DIR *dirp,
struct dirent64 *entry,
struct dirent64 **result)
646 static int Init =
Xunix.Init(&Init);
648 return (isLite ?
Xunix.Readdir64_r(dirp, entry, result) :
659int rename(
const char *oldpath,
const char *newpath)
661 static int Init =
Xunix.Init(&Init);
676 static int Init =
Xunix.Init(&Init);
691 static int Init =
Xunix.Init(&Init);
705 static int Init =
Xunix.Init(&Init);
717#if defined __linux__ && defined(_STAT_VER) && __GNUC__ && __GNUC__ >= 2
718int __xstat64(
int ver,
const char *path,
struct stat64 *buf)
723 static int Init =
Xunix.Init(&Init);
733#if !defined(__solaris__)
738 static int Init =
Xunix.Init(&Init);
753 static int Init =
Xunix.Init(&Init);
765int statx(
int dirfd,
const char *path,
int flags,
766 unsigned int mask,
struct statx *stx)
768 static int Init =
Xunix.Init(&Init);
782 static int Init =
Xunix.Init(&Init);
794int truncate64(
const char *path, off_t offset)
796 static int Init =
Xunix.Init(&Init);
808int unlink(
const char *path)
810 static int Init =
Xunix.Init(&Init);
822ssize_t
write(
int fildes,
const void *buf,
size_t nbyte)
824 static int Init =
Xunix.Init(&Init);
836ssize_t
writev(
int fildes,
const struct iovec *
iov,
int iovcnt)
838 static int Init =
Xunix.Init(&Init);
ssize_t pwrite64(int fildes, const void *buf, size_t nbyte, off_t offset)
off64_t lseek64(int fildes, off64_t offset, int whence)
offset_t llseek(int fildes, offset_t offset, int whence)
int fseeko64(FILE *stream, off64_t offset, int whence)
int statvfs64(const char *path, struct statvfs64 *buf)
int acl(const char *path, int cmd, int nentries, void *aclbufp)
off64_t ftello64(FILE *stream)
ssize_t pread64(int fildes, void *buf, size_t nbyte, off_t offset)
int fcntl64(int fd, int cmd,...)
int statfs64(const char *path, struct statfs64 *buf)
int fstat64(int fildes, struct stat64 *buf)
int ftruncate64(int fildes, off_t offset)
long pathconf(const char *path, int name)
int creat64(const char *path, mode_t mode)
int lstat64(const char *path, struct stat64 *buf)
int open64(const char *path, int oflag,...)
int fstatat64(int dirfd, const char *path, struct stat64 *buf, int flags)
FILE * fopen64(const char *path, const char *mode)
int fdatasync(int fildes)
int stat64(const char *path, struct stat64 *buf)
int XrdPosix_Statfs(const char *path, struct statfs *buf)
int XrdPosix_Truncate(const char *path, off_t offset)
ssize_t XrdPosix_Read(int fildes, void *buf, size_t nbyte)
int XrdPosix_Closedir(DIR *dirp)
int XrdPosix_Fsync(int fildes)
ssize_t XrdPosix_Readv(int fildes, const struct iovec *iov, int iovcnt)
long long XrdPosix_Ftello(FILE *stream)
int XrdPosix_Open(const char *path, int oflag,...)
void XrdPosix_Rewinddir(DIR *dirp)
ssize_t XrdPosix_Pread(int fildes, void *buf, size_t nbyte, off_t offset)
int XrdPosix_Readdir64_r(DIR *dirp, struct dirent64 *entry, struct dirent64 **result)
int XrdPosix_Close(int fildes)
int XrdPosix_Openat(int dirfd, const char *path, int flag,...)
void XrdPosix_Seekdir(DIR *dirp, long loc)
int XrdPosix_Rmdir(const char *path)
int XrdPosix_Chdir(const char *path)
int XrdPosix_Stat(const char *path, struct stat *buf)
int XrdPosix_Rename(const char *oldpath, const char *newpath)
int XrdPosix_Fcntl(int fd, int cmd,...)
int XrdPosix_Fseek(FILE *stream, long offset, int whence)
long XrdPosix_Ftell(FILE *stream)
int XrdPosix_Mkdir(const char *path, mode_t mode)
int XrdPosix_Fflush(FILE *stream)
DIR * XrdPosix_Opendir(const char *path)
ssize_t XrdPosix_Writev(int fildes, const struct iovec *iov, int iovcnt)
long XrdPosix_Telldir(DIR *dirp)
int XrdPosix_FstatV(int ver, int fildes, struct stat *buf)
ssize_t XrdPosix_Pwrite(int fildes, const void *buf, size_t nbyte, off_t offset)
int XrdPosix_Lstat(const char *path, struct stat *buf)
int XrdPosix_Fstatat(int dirfd, const char *path, struct stat *buf, int flags)
int XrdPosix_Creat(const char *path, mode_t mode)
int XrdPosix_Statx(int dirfd, const char *path, int flags, unsigned int mask, XrdSysStatx *stx)
int XrdPosix_Statvfs(const char *path, struct statvfs *buf)
int XrdPosix_Acl(const char *path, int cmd, int nentries, void *aclbufp)
int XrdPosix_Fstat(int fildes, struct stat *buf)
off_t XrdPosix_Lseek(int fildes, off_t offset, int whence)
ssize_t XrdPosix_Write(int fildes, const void *buf, size_t nbyte)
FILE * XrdPosix_Fopen(const char *path, const char *mode)
size_t XrdPosix_Fwrite(const void *ptr, size_t size, size_t nitems, FILE *stream)
int XrdPosix_Fclose(FILE *stream)
int XrdPosix_Fdatasync(int fildes)
int XrdPosix_Ftruncate(int fildes, long long offset)
long XrdPosix_Pathconf(const char *path, int name)
int XrdPosix_Unlink(const char *path)
struct dirent64 * XrdPosix_Readdir64(DIR *dirp)
size_t XrdPosix_Fread(void *ptr, size_t size, size_t nitems, FILE *stream)
int XrdPosix_Fseeko(FILE *stream, long long offset, int whence)
int XrdPosix_Access(const char *path, int amode)
#define getxattr(a, b, c, d)
#define fgetxattr(a, b, c, d)
#define fread(b, s, n, f)
#define statx(d, p, f, m, b)
#define readdir64_r(a, b, c)
#define lgetxattr(a, b, c, d)
#define fwrite(b, s, n, f)