1#ifndef _XRDPOSIXLINKAGE_H_
2#define _XRDPOSIXLINKAGE_H_
35#include <sys/statvfs.h>
57#define Symb_Access UNIX_PFX "access"
58#define Retv_Access int
59#define Args_Access const char *path, int amode
61#define Symb_Acl UNIX_PFX "acl"
63#define Args_Acl const char *, int, int, void *
65#define Symb_Chdir UNIX_PFX "chdir"
67#define Args_Chdir const char *path
69#define Symb_Close UNIX_PFX "close"
73#define Symb_Closedir UNIX_PFX "closedir"
74#define Retv_Closedir int
75#define Args_Closedir DIR *
77#define Symb_Fclose UNIX_PFX "fclose"
78#define Retv_Fclose int
79#define Args_Fclose FILE *
81#define Symb_Fcntl UNIX_PFX "fcntl"
83#define Args_Fcntl int, int, ...
86#define Symb_Fcntl64 UNIX_PFX "fcntl"
87#define Retv_Fcntl64 int
88#define Args_Fcntl64 int, int, ...
90#define Symb_Fcntl64 UNIX_PFX "fcntl64"
91#define Retv_Fcntl64 int
92#define Args_Fcntl64 int, int, ...
95#define Symb_Fdatasync UNIX_PFX "fdatasync"
96#define Retv_Fdatasync int
97#define Args_Fdatasync int
99#define Symb_Fflush UNIX_PFX "fflush"
100#define Retv_Fflush int
101#define Args_Fflush FILE *
103#define Symb_Fopen UNIX_PFX "fopen"
104#define Retv_Fopen FILE *
105#define Args_Fopen const char *, const char *
108#define Symb_Fopen64 UNIX_PFX "fopen"
109#define Retv_Fopen64 FILE *
110#define Args_Fopen64 const char *, const char *
112#define Symb_Fopen64 UNIX_PFX "fopen64"
113#define Retv_Fopen64 FILE *
114#define Args_Fopen64 const char *, const char *
117#define Symb_Fread UNIX_PFX "fread"
118#define Retv_Fread size_t
119#define Args_Fread void *, size_t, size_t, FILE *
121#define Symb_Fseek UNIX_PFX "fseek"
122#define Retv_Fseek int
123#define Args_Fseek FILE *, long, int
125#define Symb_Fseeko UNIX_PFX "fseeko"
126#define Retv_Fseeko int
127#define Args_Fseeko FILE *, off_t, int
130#define Symb_Fseeko64 UNIX_PFX "fseeko"
131#define Retv_Fseeko64 int
132#define Args_Fseeko64 FILE *, off64_t, int
134#define Symb_Fseeko64 UNIX_PFX "fseeko64"
135#define Retv_Fseeko64 int
136#define Args_Fseeko64 FILE *, off64_t, int
139#if defined(__linux__) && defined(_STAT_VER)
140#define Symb_Fstat UNIX_PFX "__fxstat"
141#define Retv_Fstat int
142#define Args_Fstat int, int, struct stat *
144#define Symb_Fstat UNIX_PFX "fstat"
145#define Retv_Fstat int
146#define Args_Fstat int, struct stat *
149#if defined(__linux__) && defined(_STAT_VER)
150#define Symb_Fstat64 UNIX_PFX "__fxstat64"
151#define Retv_Fstat64 int
152#define Args_Fstat64 int, int, struct stat64 *
155#define Symb_Fstat64 UNIX_PFX "fstat"
156#define Retv_Fstat64 int
157#define Args_Fstat64 int, struct stat64 *
159#define Symb_Fstat64 UNIX_PFX "fstat64"
160#define Retv_Fstat64 int
161#define Args_Fstat64 int, struct stat64 *
165#define Symb_Fstatat UNIX_PFX "fstatat"
166#define Retv_Fstatat int
167#define Args_Fstatat int, const char*, struct stat *, int
169#define Symb_Fstatat64 UNIX_PFX "fstatat64"
170#define Retv_Fstatat64 int
171#define Args_Fstatat64 int, const char*, struct stat64 *, int
173#define Symb_Fsync UNIX_PFX "fsync"
174#define Retv_Fsync int
175#define Args_Fsync int
177#define Symb_Ftell UNIX_PFX "ftell"
178#define Retv_Ftell long
179#define Args_Ftell FILE *
181#define Symb_Ftello UNIX_PFX "ftello"
182#define Retv_Ftello off_t
183#define Args_Ftello FILE *
186#define Symb_Ftello64 UNIX_PFX "ftello"
187#define Retv_Ftello64 off64_t
188#define Args_Ftello64 FILE *
190#define Symb_Ftello64 UNIX_PFX "ftello64"
191#define Retv_Ftello64 off64_t
192#define Args_Ftello64 FILE *
195#define Symb_Ftruncate UNIX_PFX "ftruncate"
196#define Retv_Ftruncate int
197#define Args_Ftruncate int, off_t
200#define Symb_Ftruncate64 UNIX_PFX "ftruncate"
201#define Retv_Ftruncate64 int
202#define Args_Ftruncate64 int, off64_t
204#define Symb_Ftruncate64 UNIX_PFX "ftruncate64"
205#define Retv_Ftruncate64 int
206#define Args_Ftruncate64 int, off64_t
209#define Symb_Fwrite UNIX_PFX "fwrite"
210#define Retv_Fwrite int
211#define Args_Fwrite const void *, size_t, size_t, FILE *
213#define Symb_Fgetxattr UNIX_PFX "fgetxattr"
214#define Retv_Fgetxattr ssize_t
215#define Args_Fgetxattr int, const char *, const void *, size_t
217#define Symb_Getxattr UNIX_PFX "getxattr"
218#define Retv_Getxattr ssize_t
219#define Args_Getxattr const char *, const char *, const void *, size_t
221#define Symb_Lgetxattr UNIX_PFX "lgetxattr"
222#define Retv_Lgetxattr ssize_t
223#define Args_Lgetxattr const char *, const char *, const void *, size_t
225#define Symb_Lseek UNIX_PFX "lseek"
226#define Retv_Lseek off_t
227#define Args_Lseek int, off_t, int
230#define Symb_Lseek64 UNIX_PFX "lseek"
231#define Retv_Lseek64 off64_t
232#define Args_Lseek64 int, off64_t, int
234#define Symb_Lseek64 UNIX_PFX "lseek64"
235#define Retv_Lseek64 off64_t
236#define Args_Lseek64 int, off64_t, int
239#if defined(__linux__) && defined(_STAT_VER)
240#define Symb_Lstat UNIX_PFX "__lxstat"
241#define Retv_Lstat int
242#define Args_Lstat int, const char *, struct stat *
244#define Symb_Lstat UNIX_PFX "lstat"
245#define Retv_Lstat int
246#define Args_Lstat const char *, struct stat *
249#if defined(__linux__) && defined(_STAT_VER)
250#define Symb_Lstat64 UNIX_PFX "__lxstat64"
251#define Retv_Lstat64 int
252#define Args_Lstat64 int, const char *, struct stat64 *
255#define Symb_Lstat64 UNIX_PFX "lstat"
256#define Retv_Lstat64 int
257#define Args_Lstat64 const char *, struct stat64 *
259#define Symb_Lstat64 UNIX_PFX "lstat64"
260#define Retv_Lstat64 int
261#define Args_Lstat64 const char *, struct stat64 *
265#define Symb_Mkdir UNIX_PFX "mkdir"
266#define Retv_Mkdir int
267#define Args_Mkdir const char *, mode_t
269#define Symb_Open UNIX_PFX "open"
271#define Args_Open const char *, int, ...
273#define Symb_Openat UNIX_PFX "openat"
274#define Retv_Openat int
275#define Args_Openat const char *, int, ...
277#define Symb_Openat64 UNIX_PFX "openat64"
278#define Retv_Openat64 int
279#define Args_Openat64 const char *, int, ...
282#define Symb_Open64 UNIX_PFX "open"
283#define Retv_Open64 int
284#define Args_Open64 const char *, int, ...
286#define Symb_Open64 UNIX_PFX "open64"
287#define Retv_Open64 int
288#define Args_Open64 const char *, int, ...
291#define Symb_Opendir UNIX_PFX "opendir"
292#define Retv_Opendir DIR *
293#define Args_Opendir const char *
295#define Symb_Pathconf UNIX_PFX "pathconf"
296#define Retv_Pathconf long
297#define Args_Pathconf const char *, int
299#define Symb_Pread UNIX_PFX "pread"
300#define Retv_Pread ssize_t
301#define Args_Pread int, void *, size_t, off_t
304#define Symb_Pread64 UNIX_PFX "pread"
305#define Retv_Pread64 ssize_t
306#define Args_Pread64 int, void *, size_t, off64_t
308#define Symb_Pread64 UNIX_PFX "pread64"
309#define Retv_Pread64 ssize_t
310#define Args_Pread64 int, void *, size_t, off64_t
313#define Symb_Pwrite UNIX_PFX "pwrite"
314#define Retv_Pwrite ssize_t
315#define Args_Pwrite int, const void *, size_t, off_t
318#define Symb_Pwrite64 UNIX_PFX "pwrite"
319#define Retv_Pwrite64 ssize_t
320#define Args_Pwrite64 int, const void *, size_t, off64_t
322#define Symb_Pwrite64 UNIX_PFX "pwrite64"
323#define Retv_Pwrite64 ssize_t
324#define Args_Pwrite64 int, const void *, size_t, off64_t
327#define Symb_Read UNIX_PFX "read"
328#define Retv_Read ssize_t
329#define Args_Read int, void *, size_t
331#define Symb_Readv UNIX_PFX "readv"
332#define Retv_Readv ssize_t
333#define Args_Readv int, const struct iovec *, int
335#define Symb_Readdir UNIX_PFX "readdir"
336#define Retv_Readdir struct dirent *
337#define Args_Readdir DIR *
340#define Symb_Readdir64 UNIX_PFX "readdir"
341#define Retv_Readdir64 struct dirent *
342#define Args_Readdir64 DIR *
344#define Symb_Readdir64 UNIX_PFX "readdir64"
345#define Retv_Readdir64 struct dirent64 *
346#define Args_Readdir64 DIR *
349#define Symb_Readdir_r UNIX_PFX "readdir_r"
350#define Retv_Readdir_r int
351#define Args_Readdir_r DIR *, struct dirent *, struct dirent **
354#define Symb_Readdir64_r UNIX_PFX "readdir_r"
355#define Retv_Readdir64_r int
356#define Args_Readdir64_r DIR *, struct dirent64 *, struct dirent64 **
358#define Symb_Readdir64_r UNIX_PFX "readdir64_r"
359#define Retv_Readdir64_r int
360#define Args_Readdir64_r DIR *, struct dirent64 *, struct dirent64 **
363#define Symb_Rename UNIX_PFX "rename"
364#define Retv_Rename int
365#define Args_Rename const char *, const char *
367#define Symb_Rewinddir UNIX_PFX "rewinddir"
368#define Retv_Rewinddir void
369#define Args_Rewinddir DIR *
371#define Symb_Rmdir UNIX_PFX "rmdir"
372#define Retv_Rmdir int
373#define Args_Rmdir const char *
375#define Symb_Seekdir UNIX_PFX "seekdir"
376#define Retv_Seekdir void
377#define Args_Seekdir DIR *, long
380#define Symb_Stat UNIX_PFX "__xstat"
382#define Args_Stat int, const char *, struct stat *
384#define Symb_Stat UNIX_PFX "stat"
386#define Args_Stat const char *, struct stat *
389#if defined(__linux__) && defined(_STAT_VER)
390#define Symb_Stat64 UNIX_PFX "__xstat64"
391#define Retv_Stat64 int
392#define Args_Stat64 int, const char *, struct stat64 *
395#define Symb_Stat64 UNIX_PFX "stat"
396#define Retv_Stat64 int
397#define Args_Stat64 const char *, struct stat64 *
399#define Symb_Stat64 UNIX_PFX "stat64"
400#define Retv_Stat64 int
401#define Args_Stat64 const char *, struct stat64 *
405#define Symb_Statfs UNIX_PFX "statfs"
406#define Retv_Statfs int
407#define Args_Statfs const char *, struct statfs *
410#define Symb_Statfs64 UNIX_PFX "statfs"
411#define Retv_Statfs64 int
412#define Args_Statfs64 const char *, struct statfs64 *
414#define Symb_Statfs64 UNIX_PFX "statfs64"
415#define Retv_Statfs64 int
416#define Args_Statfs64 const char *, struct statfs64 *
419#define Symb_Statvfs UNIX_PFX "statvfs"
420#define Retv_Statvfs int
421#define Args_Statvfs const char *, struct statvfs *
424#define Symb_Statvfs64 UNIX_PFX "statvfs"
425#define Retv_Statvfs64 int
426#define Args_Statvfs64 const char *, struct statvfs64 *
428#define Symb_Statvfs64 UNIX_PFX "statvfs64"
429#define Retv_Statvfs64 int
430#define Args_Statvfs64 const char *, struct statvfs64 *
433#define Symb_Statx UNIX_PFX "statx"
434#define Retv_Statx int
435#define Args_Statx int, const char *, int, unsigned int, XrdSysStatx *
437#define Symb_Telldir UNIX_PFX "telldir"
438#define Retv_Telldir long
439#define Args_Telldir DIR *
441#define Symb_Truncate UNIX_PFX "truncate"
442#define Retv_Truncate int
443#define Args_Truncate const char *, off_t
446#define Symb_Truncate64 UNIX_PFX "truncate"
447#define Retv_Truncate64 int
448#define Args_Truncate64 const char *, off64_t
450#define Symb_Truncate64 UNIX_PFX "truncate64"
451#define Retv_Truncate64 int
452#define Args_Truncate64 const char *, off64_t
455#define Symb_Unlink UNIX_PFX "unlink"
456#define Retv_Unlink int
457#define Args_Unlink const char *
459#define Symb_Write UNIX_PFX "write"
460#define Retv_Write ssize_t
461#define Args_Write int, const void *, size_t
463#define Symb_Writev UNIX_PFX "writev"
464#define Retv_Writev ssize_t
465#define Args_Writev int, const struct iovec *, int
473 int Init(
int *X=0) {
if (!Done) Done = Resolve();
return 0;}
544 int Load_Error(
const char *epname,
int retv=-1);
551void Missing(
const char *);
Retv_Opendir(* Opendir)(Args_Opendir)
Retv_Mkdir(* Mkdir)(Args_Mkdir)
Retv_Fcntl(* Fcntl)(Args_Fcntl)
Retv_Readdir64(* Readdir64)(Args_Readdir64)
Retv_Fflush(* Fflush)(Args_Fflush)
Retv_Fstat64(* Fstat64)(Args_Fstat64)
Retv_Fclose(* Fclose)(Args_Fclose)
Retv_Fseek(* Fseek)(Args_Fseek)
Retv_Fdatasync(* Fdatasync)(Args_Fdatasync)
Retv_Fwrite(* Fwrite)(Args_Fwrite)
Retv_Acl(* Acl)(Args_Acl)
Retv_Statx(* Statx)(Args_Statx)
Retv_Writev(* Writev)(Args_Writev)
Retv_Read(* Read)(Args_Read)
Retv_Stat(* Stat)(Args_Stat)
Retv_Fseeko(* Fseeko)(Args_Fseeko)
Retv_Fsync(* Fsync)(Args_Fsync)
Retv_Rename(* Rename)(Args_Rename)
Retv_Close(* Close)(Args_Close)
Retv_Statfs64(* Statfs64)(Args_Statfs64)
Retv_Statvfs(* Statvfs)(Args_Statvfs)
Retv_Lgetxattr(* Lgetxattr)(Args_Lgetxattr)
Retv_Ftruncate64(* Ftruncate64)(Args_Ftruncate64)
Retv_Lseek(* Lseek)(Args_Lseek)
Retv_Ftello(* Ftello)(Args_Ftello)
Retv_Pread(* Pread)(Args_Pread)
Retv_Rewinddir(* Rewinddir)(Args_Rewinddir)
Retv_Readdir(* Readdir)(Args_Readdir)
Retv_Lseek64(* Lseek64)(Args_Lseek64)
Retv_Statvfs64(* Statvfs64)(Args_Statvfs64)
Retv_Truncate64(* Truncate64)(Args_Truncate64)
Retv_Truncate(* Truncate)(Args_Truncate)
Retv_Ftell(* Ftell)(Args_Ftell)
Retv_Fread(* Fread)(Args_Fread)
Retv_Fstatat64(* Fstatat64)(Args_Fstatat64)
Retv_Open64(* Open64)(Args_Open64)
Retv_Fopen64(* Fopen64)(Args_Fopen64)
Retv_Fopen(* Fopen)(Args_Fopen)
Retv_Telldir(* Telldir)(Args_Telldir)
Retv_Fseeko64(* Fseeko64)(Args_Fseeko64)
Retv_Readv(* Readv)(Args_Readv)
Retv_Stat64(* Stat64)(Args_Stat64)
Retv_Fstatat(* Fstatat)(Args_Fstatat)
Retv_Statfs(* Statfs)(Args_Statfs)
Retv_Pwrite(* Pwrite)(Args_Pwrite)
Retv_Pread64(* Pread64)(Args_Pread64)
Retv_Readdir64_r(* Readdir64_r)(Args_Readdir64_r)
Retv_Fcntl64(* Fcntl64)(Args_Fcntl64)
Retv_Seekdir(* Seekdir)(Args_Seekdir)
Retv_Lstat64(* Lstat64)(Args_Lstat64)
Retv_Chdir(* Chdir)(Args_Chdir)
Retv_Getxattr(* Getxattr)(Args_Getxattr)
Retv_Open(* Open)(Args_Open)
Retv_Access(* Access)(Args_Access)
Retv_Ftruncate(* Ftruncate)(Args_Ftruncate)
Retv_Openat64(* Openat64)(Args_Openat64)
Retv_Closedir(* Closedir)(Args_Closedir)
Retv_Pathconf(* Pathconf)(Args_Pathconf)
Retv_Lstat(* Lstat)(Args_Lstat)
Retv_Write(* Write)(Args_Write)
Retv_Readdir_r(* Readdir_r)(Args_Readdir_r)
Retv_Openat(* Openat)(Args_Openat)
Retv_Rmdir(* Rmdir)(Args_Rmdir)
Retv_Fgetxattr(* Fgetxattr)(Args_Fgetxattr)
Retv_Fstat(* Fstat)(Args_Fstat)
Retv_Unlink(* Unlink)(Args_Unlink)
Retv_Pwrite64(* Pwrite64)(Args_Pwrite64)
int Load_Error(const char *epname, int retv=-1)
Retv_Ftello64(* Ftello64)(Args_Ftello64)