34#include <sys/isa_defs.h>
35#if defined(_ILP32) && (_FILE_OFFSET_BITS != 32)
36#undef _FILE_OFFSET_BITS
37#define _FILE_OFFSET_BITS 32
38#undef _LARGEFILE_SOURCE
43#if !defined(__APPLE__) && !defined(__CYGWIN__)
63#define LOOKUP_UNIX(symb) symb = (Retv_ ## symb (*)(Args_ ## symb)) \
64 dlsym(RTLD_NEXT, Symb_ ## symb); \
65 if (!symb) {symb = Xrd_U_ ## symb; \
66 Missing(Symb_ ## symb);}
74#if !defined(__APPLE__) && !defined(__linux__)
204 int flags,
unsigned int mask,
207 int rc =
stat(path, &buf);
209 XrdSysStatxHelpers::Stat2Statx(buf, *stxbuf);
230int XrdPosixLinkage::Resolve()
233#if !defined(__APPLE__) && !defined(__linux__)
305 if (getenv(
"XRDPOSIX_REPORT")) Missing(0);
316 std::cerr <<
"PosixPreload: Unable to resolve Unix '" <<epname <<
"()'" <<std::endl;
325void XrdPosixLinkage::Missing(
const char *epname)
328 {
struct Missing *Next;
331 Missing(Missing *Prev,
const char *That)
332 : Next(Prev), What(That) {}
336 static Missing *epList = 0;
338 if (epname) epList =
new Missing(epList, epname);
340 Missing *np = epList;
342 fprintf(stderr,
"PosixPreload: Unable to resolve Unix '%s()\n", np->What);
Retv_Lstat64 Xrd_U_Lstat64(Args_Lstat64)
Retv_Readdir_r Xrd_U_Readdir_r(Args_Readdir_r)
Retv_Read Xrd_U_Read(Args_Read)
Retv_Fopen64 Xrd_U_Fopen64(Args_Fopen64)
Retv_Readdir64 Xrd_U_Readdir64(Args_Readdir64)
Retv_Fopen Xrd_U_Fopen(Args_Fopen)
Retv_Fread Xrd_U_Fread(Args_Fread)
Retv_Fgetxattr Xrd_U_Fgetxattr(Args_Fgetxattr)
Retv_Statfs Xrd_U_Statfs(Args_Statfs)
Retv_Readdir64_r Xrd_U_Readdir64_r(Args_Readdir64_r)
Retv_Stat64 Xrd_U_Stat64(Args_Stat64)
Retv_Ftello64 Xrd_U_Ftello64(Args_Ftello64)
Retv_Fwrite Xrd_U_Fwrite(Args_Fwrite)
Retv_Ftell Xrd_U_Ftell(Args_Ftell)
Retv_Fclose Xrd_U_Fclose(Args_Fclose)
Retv_Truncate Xrd_U_Truncate(Args_Truncate)
Retv_Readdir Xrd_U_Readdir(Args_Readdir)
Retv_Lseek Xrd_U_Lseek(Args_Lseek)
Retv_Chdir Xrd_U_Chdir(Args_Chdir)
Retv_Rename Xrd_U_Rename(Args_Rename)
Retv_Lstat Xrd_U_Lstat(Args_Lstat)
Retv_Truncate64 Xrd_U_Truncate64(Args_Truncate64)
Retv_Mkdir Xrd_U_Mkdir(Args_Mkdir)
Retv_Statvfs Xrd_U_Statvfs(Args_Statvfs)
Retv_Statfs64 Xrd_U_Statfs64(Args_Statfs64)
Retv_Acl Xrd_U_Acl(Args_Acl)
Retv_Readv Xrd_U_Readv(Args_Readv)
Retv_Fseek Xrd_U_Fseek(Args_Fseek)
Retv_Fdatasync Xrd_U_Fdatasync(Args_Fdatasync)
Retv_Lgetxattr Xrd_U_Lgetxattr(Args_Lgetxattr)
Retv_Ftello Xrd_U_Ftello(Args_Ftello)
Retv_Pread Xrd_U_Pread(Args_Pread)
Retv_Fseeko Xrd_U_Fseeko(Args_Fseeko)
Retv_Pathconf Xrd_U_Pathconf(Args_Pathconf)
Retv_Seekdir Xrd_U_Seekdir(Args_Seekdir)
Retv_Getxattr Xrd_U_Getxattr(Args_Getxattr)
Retv_Fseeko64 Xrd_U_Fseeko64(Args_Fseeko64)
Retv_Fcntl64 Xrd_U_Fcntl64(Args_Fcntl64)
Retv_Ftruncate Xrd_U_Ftruncate(Args_Ftruncate)
Retv_Unlink Xrd_U_Unlink(Args_Unlink)
Retv_Writev Xrd_U_Writev(Args_Writev)
Retv_Openat Xrd_U_Openat(Args_Openat)
Retv_Fstatat Xrd_U_Fstatat(Args_Fstatat)
Retv_Fcntl Xrd_U_Fcntl(Args_Fcntl)
Retv_Fstat Xrd_U_Fstat(Args_Fstat)
Retv_Pwrite64 Xrd_U_Pwrite64(Args_Pwrite64)
Retv_Statx Xrd_U_Statx(int dirfd, const char *path, int flags, unsigned int mask, XrdSysStatx *stxbuf)
Retv_Fflush Xrd_U_Fflush(Args_Fflush)
Retv_Rmdir Xrd_U_Rmdir(Args_Rmdir)
Retv_Write Xrd_U_Write(Args_Write)
Retv_Stat Xrd_U_Stat(Args_Stat)
Retv_Closedir Xrd_U_Closedir(Args_Closedir)
Retv_Open64 Xrd_U_Open64(Args_Open64)
Retv_Fstatat64 Xrd_U_Fstatat64(Args_Fstatat64)
Retv_Pwrite Xrd_U_Pwrite(Args_Pwrite)
Retv_Fstat64 Xrd_U_Fstat64(Args_Fstat64)
Retv_Rewinddir Xrd_U_Rewinddir(Args_Rewinddir)
Retv_Opendir Xrd_U_Opendir(Args_Opendir)
Retv_Fsync Xrd_U_Fsync(Args_Fsync)
Retv_Openat64 Xrd_U_Openat64(Args_Openat64)
Retv_Pread64 Xrd_U_Pread64(Args_Pread64)
Retv_Lseek64 Xrd_U_Lseek64(Args_Lseek64)
Retv_Access Xrd_U_Access(Args_Access)
Retv_Ftruncate64 Xrd_U_Ftruncate64(Args_Ftruncate64)
Retv_Statvfs64 Xrd_U_Statvfs64(Args_Statvfs64)
Retv_Open Xrd_U_Open(Args_Open)
Retv_Close Xrd_U_Close(Args_Close)
Retv_Telldir Xrd_U_Telldir(Args_Telldir)
#define LOOKUP_UNIX(symb)
Retv_Write(*) Write(Args_Write)
Retv_Close(*) Close(Args_Close)
Retv_Statfs64(*) Statfs64(Args_Statfs64)
Retv_Readv(*) Readv(Args_Readv)
Retv_Read(*) Read(Args_Read)
Retv_Getxattr(*) Getxattr(Args_Getxattr)
Retv_Lseek(*) Lseek(Args_Lseek)
Retv_Fclose(*) Fclose(Args_Fclose)
Retv_Writev(*) Writev(Args_Writev)
Retv_Rmdir(*) Rmdir(Args_Rmdir)
Retv_Unlink(*) Unlink(Args_Unlink)
Retv_Readdir(*) Readdir(Args_Readdir)
Retv_Ftell(*) Ftell(Args_Ftell)
Retv_Fseeko64(*) Fseeko64(Args_Fseeko64)
Retv_Seekdir(*) Seekdir(Args_Seekdir)
Retv_Telldir(*) Telldir(Args_Telldir)
Retv_Lstat(*) Lstat(Args_Lstat)
Retv_Truncate64(*) Truncate64(Args_Truncate64)
Retv_Lseek64(*) Lseek64(Args_Lseek64)
Retv_Statfs(*) Statfs(Args_Statfs)
Retv_Truncate(*) Truncate(Args_Truncate)
Retv_Pathconf(*) Pathconf(Args_Pathconf)
Retv_Rename(*) Rename(Args_Rename)
Retv_Fstat64(*) Fstat64(Args_Fstat64)
Retv_Open64(*) Open64(Args_Open64)
Retv_Fcntl(*) Fcntl(Args_Fcntl)
Retv_Mkdir(*) Mkdir(Args_Mkdir)
Retv_Opendir(*) Opendir(Args_Opendir)
Retv_Ftruncate64(*) Ftruncate64(Args_Ftruncate64)
Retv_Ftello(*) Ftello(Args_Ftello)
Retv_Fseek(*) Fseek(Args_Fseek)
Retv_Readdir_r(*) Readdir_r(Args_Readdir_r)
Retv_Fstat(*) Fstat(Args_Fstat)
Retv_Fgetxattr(*) Fgetxattr(Args_Fgetxattr)
Retv_Lgetxattr(*) Lgetxattr(Args_Lgetxattr)
Retv_Ftello64(*) Ftello64(Args_Ftello64)
Retv_Lstat64(*) Lstat64(Args_Lstat64)
Retv_Fcntl64(*) Fcntl64(Args_Fcntl64)
Retv_Fdatasync(*) Fdatasync(Args_Fdatasync)
Retv_Pwrite64(*) Pwrite64(Args_Pwrite64)
Retv_Fopen64(*) Fopen64(Args_Fopen64)
Retv_Pread64(*) Pread64(Args_Pread64)
Retv_Pread(*) Pread(Args_Pread)
Retv_Readdir64(*) Readdir64(Args_Readdir64)
Retv_Ftruncate(*) Ftruncate(Args_Ftruncate)
Retv_Pwrite(*) Pwrite(Args_Pwrite)
Retv_Fseeko(*) Fseeko(Args_Fseeko)
Retv_Statx(*) Statx(Args_Statx)
Retv_Closedir(*) Closedir(Args_Closedir)
Retv_Fwrite(*) Fwrite(Args_Fwrite)
Retv_Open(*) Open(Args_Open)
Retv_Readdir64_r(*) Readdir64_r(Args_Readdir64_r)
Retv_Statvfs64(*) Statvfs64(Args_Statvfs64)
Retv_Stat(*) Stat(Args_Stat)
Retv_Fread(*) Fread(Args_Fread)
Retv_Fflush(*) Fflush(Args_Fflush)
Retv_Fopen(*) Fopen(Args_Fopen)
Retv_Rewinddir(*) Rewinddir(Args_Rewinddir)
Retv_Chdir(*) Chdir(Args_Chdir)
Retv_Fsync(*) Fsync(Args_Fsync)
Retv_Acl(*) Acl(Args_Acl)
Retv_Access(*) Access(Args_Access)
Retv_Stat64(*) Stat64(Args_Stat64)
Retv_Statvfs(*) Statvfs(Args_Statvfs)
int Load_Error(const char *epname, int retv=-1)