1 #ifndef _XRDPOSIXLINKAGE_H_
2 #define _XRDPOSIXLINKAGE_H_
33 #include <sys/types.h>
35 #include <sys/statvfs.h>
56 #define Symb_Access UNIX_PFX "access"
57 #define Retv_Access int
58 #define Args_Access const char *path, int amode
60 #define Symb_Acl UNIX_PFX "acl"
62 #define Args_Acl const char *, int, int, void *
64 #define Symb_Chdir UNIX_PFX "chdir"
65 #define Retv_Chdir int
66 #define Args_Chdir const char *path
68 #define Symb_Close UNIX_PFX "close"
69 #define Retv_Close int
70 #define Args_Close int
72 #define Symb_Closedir UNIX_PFX "closedir"
73 #define Retv_Closedir int
74 #define Args_Closedir DIR *
76 #define Symb_Fclose UNIX_PFX "fclose"
77 #define Retv_Fclose int
78 #define Args_Fclose FILE *
80 #define Symb_Fcntl UNIX_PFX "fcntl"
81 #define Retv_Fcntl int
82 #define Args_Fcntl int, int, ...
85 #define Symb_Fcntl64 UNIX_PFX "fcntl"
86 #define Retv_Fcntl64 int
87 #define Args_Fcntl64 int, int, ...
89 #define Symb_Fcntl64 UNIX_PFX "fcntl64"
90 #define Retv_Fcntl64 int
91 #define Args_Fcntl64 int, int, ...
94 #define Symb_Fdatasync UNIX_PFX "fdatasync"
95 #define Retv_Fdatasync int
96 #define Args_Fdatasync int
98 #define Symb_Fflush UNIX_PFX "fflush"
99 #define Retv_Fflush int
100 #define Args_Fflush FILE *
102 #define Symb_Fopen UNIX_PFX "fopen"
103 #define Retv_Fopen FILE *
104 #define Args_Fopen const char *, const char *
107 #define Symb_Fopen64 UNIX_PFX "fopen"
108 #define Retv_Fopen64 FILE *
109 #define Args_Fopen64 const char *, const char *
111 #define Symb_Fopen64 UNIX_PFX "fopen64"
112 #define Retv_Fopen64 FILE *
113 #define Args_Fopen64 const char *, const char *
116 #define Symb_Fread UNIX_PFX "fread"
117 #define Retv_Fread size_t
118 #define Args_Fread void *, size_t, size_t, FILE *
120 #define Symb_Fseek UNIX_PFX "fseek"
121 #define Retv_Fseek int
122 #define Args_Fseek FILE *, long, int
124 #define Symb_Fseeko UNIX_PFX "fseeko"
125 #define Retv_Fseeko int
126 #define Args_Fseeko FILE *, off_t, int
129 #define Symb_Fseeko64 UNIX_PFX "fseeko"
130 #define Retv_Fseeko64 int
131 #define Args_Fseeko64 FILE *, off64_t, int
133 #define Symb_Fseeko64 UNIX_PFX "fseeko64"
134 #define Retv_Fseeko64 int
135 #define Args_Fseeko64 FILE *, off64_t, int
138 #if defined(__linux__) and defined(_STAT_VER)
139 #define Symb_Fstat UNIX_PFX "__fxstat"
140 #define Retv_Fstat int
141 #define Args_Fstat int, int, struct stat *
143 #define Symb_Fstat UNIX_PFX "fstat"
144 #define Retv_Fstat int
145 #define Args_Fstat int, struct stat *
148 #if defined(__linux__) and defined(_STAT_VER)
149 #define Symb_Fstat64 UNIX_PFX "__fxstat64"
150 #define Retv_Fstat64 int
151 #define Args_Fstat64 int, int, struct stat64 *
154 #define Symb_Fstat64 UNIX_PFX "fstat"
155 #define Retv_Fstat64 int
156 #define Args_Fstat64 int, struct stat64 *
158 #define Symb_Fstat64 UNIX_PFX "fstat64"
159 #define Retv_Fstat64 int
160 #define Args_Fstat64 int, struct stat64 *
164 #define Symb_Fsync UNIX_PFX "fsync"
165 #define Retv_Fsync int
166 #define Args_Fsync int
168 #define Symb_Ftell UNIX_PFX "ftell"
169 #define Retv_Ftell long
170 #define Args_Ftell FILE *
172 #define Symb_Ftello UNIX_PFX "ftello"
173 #define Retv_Ftello off_t
174 #define Args_Ftello FILE *
177 #define Symb_Ftello64 UNIX_PFX "ftello"
178 #define Retv_Ftello64 off64_t
179 #define Args_Ftello64 FILE *
181 #define Symb_Ftello64 UNIX_PFX "ftello64"
182 #define Retv_Ftello64 off64_t
183 #define Args_Ftello64 FILE *
186 #define Symb_Ftruncate UNIX_PFX "ftruncate"
187 #define Retv_Ftruncate int
188 #define Args_Ftruncate int, off_t
191 #define Symb_Ftruncate64 UNIX_PFX "ftruncate"
192 #define Retv_Ftruncate64 int
193 #define Args_Ftruncate64 int, off64_t
195 #define Symb_Ftruncate64 UNIX_PFX "ftruncate64"
196 #define Retv_Ftruncate64 int
197 #define Args_Ftruncate64 int, off64_t
200 #define Symb_Fwrite UNIX_PFX "fwrite"
201 #define Retv_Fwrite int
202 #define Args_Fwrite const void *, size_t, size_t, FILE *
204 #define Symb_Fgetxattr UNIX_PFX "fgetxattr"
205 #define Retv_Fgetxattr ssize_t
206 #define Args_Fgetxattr int, const char *, const void *, size_t
208 #define Symb_Getxattr UNIX_PFX "getxattr"
209 #define Retv_Getxattr ssize_t
210 #define Args_Getxattr const char *, const char *, const void *, size_t
212 #define Symb_Lgetxattr UNIX_PFX "lgetxattr"
213 #define Retv_Lgetxattr ssize_t
214 #define Args_Lgetxattr const char *, const char *, const void *, size_t
216 #define Symb_Lseek UNIX_PFX "lseek"
217 #define Retv_Lseek off_t
218 #define Args_Lseek int, off_t, int
221 #define Symb_Lseek64 UNIX_PFX "lseek"
222 #define Retv_Lseek64 off64_t
223 #define Args_Lseek64 int, off64_t, int
225 #define Symb_Lseek64 UNIX_PFX "lseek64"
226 #define Retv_Lseek64 off64_t
227 #define Args_Lseek64 int, off64_t, int
230 #if defined(__linux__) and defined(_STAT_VER)
231 #define Symb_Lstat UNIX_PFX "__lxstat"
232 #define Retv_Lstat int
233 #define Args_Lstat int, const char *, struct stat *
235 #define Symb_Lstat UNIX_PFX "lstat"
236 #define Retv_Lstat int
237 #define Args_Lstat const char *, struct stat *
240 #if defined(__linux__) and defined(_STAT_VER)
241 #define Symb_Lstat64 UNIX_PFX "__lxstat64"
242 #define Retv_Lstat64 int
243 #define Args_Lstat64 int, const char *, struct stat64 *
246 #define Symb_Lstat64 UNIX_PFX "lstat"
247 #define Retv_Lstat64 int
248 #define Args_Lstat64 const char *, struct stat64 *
250 #define Symb_Lstat64 UNIX_PFX "lstat64"
251 #define Retv_Lstat64 int
252 #define Args_Lstat64 const char *, struct stat64 *
256 #define Symb_Mkdir UNIX_PFX "mkdir"
257 #define Retv_Mkdir int
258 #define Args_Mkdir const char *, mode_t
260 #define Symb_Open UNIX_PFX "open"
261 #define Retv_Open int
262 #define Args_Open const char *, int, ...
265 #define Symb_Open64 UNIX_PFX "open"
266 #define Retv_Open64 int
267 #define Args_Open64 const char *, int, ...
269 #define Symb_Open64 UNIX_PFX "open64"
270 #define Retv_Open64 int
271 #define Args_Open64 const char *, int, ...
274 #define Symb_Opendir UNIX_PFX "opendir"
275 #define Retv_Opendir DIR *
276 #define Args_Opendir const char *
278 #define Symb_Pathconf UNIX_PFX "pathconf"
279 #define Retv_Pathconf long
280 #define Args_Pathconf const char *, int
282 #define Symb_Pread UNIX_PFX "pread"
283 #define Retv_Pread ssize_t
284 #define Args_Pread int, void *, size_t, off_t
287 #define Symb_Pread64 UNIX_PFX "pread"
288 #define Retv_Pread64 ssize_t
289 #define Args_Pread64 int, void *, size_t, off64_t
291 #define Symb_Pread64 UNIX_PFX "pread64"
292 #define Retv_Pread64 ssize_t
293 #define Args_Pread64 int, void *, size_t, off64_t
296 #define Symb_Pwrite UNIX_PFX "pwrite"
297 #define Retv_Pwrite ssize_t
298 #define Args_Pwrite int, const void *, size_t, off_t
301 #define Symb_Pwrite64 UNIX_PFX "pwrite"
302 #define Retv_Pwrite64 ssize_t
303 #define Args_Pwrite64 int, const void *, size_t, off64_t
305 #define Symb_Pwrite64 UNIX_PFX "pwrite64"
306 #define Retv_Pwrite64 ssize_t
307 #define Args_Pwrite64 int, const void *, size_t, off64_t
310 #define Symb_Read UNIX_PFX "read"
311 #define Retv_Read ssize_t
312 #define Args_Read int, void *, size_t
314 #define Symb_Readv UNIX_PFX "readv"
315 #define Retv_Readv ssize_t
316 #define Args_Readv int, const struct iovec *, int
318 #define Symb_Readdir UNIX_PFX "readdir"
319 #define Retv_Readdir struct dirent *
320 #define Args_Readdir DIR *
323 #define Symb_Readdir64 UNIX_PFX "readdir"
324 #define Retv_Readdir64 struct dirent *
325 #define Args_Readdir64 DIR *
327 #define Symb_Readdir64 UNIX_PFX "readdir64"
328 #define Retv_Readdir64 struct dirent64 *
329 #define Args_Readdir64 DIR *
332 #define Symb_Readdir_r UNIX_PFX "readdir_r"
333 #define Retv_Readdir_r int
334 #define Args_Readdir_r DIR *, struct dirent *, struct dirent **
337 #define Symb_Readdir64_r UNIX_PFX "readdir_r"
338 #define Retv_Readdir64_r int
339 #define Args_Readdir64_r DIR *, struct dirent64 *, struct dirent64 **
341 #define Symb_Readdir64_r UNIX_PFX "readdir64_r"
342 #define Retv_Readdir64_r int
343 #define Args_Readdir64_r DIR *, struct dirent64 *, struct dirent64 **
346 #define Symb_Rename UNIX_PFX "rename"
347 #define Retv_Rename int
348 #define Args_Rename const char *, const char *
350 #define Symb_Rewinddir UNIX_PFX "rewinddir"
351 #define Retv_Rewinddir void
352 #define Args_Rewinddir DIR *
354 #define Symb_Rmdir UNIX_PFX "rmdir"
355 #define Retv_Rmdir int
356 #define Args_Rmdir const char *
358 #define Symb_Seekdir UNIX_PFX "seekdir"
359 #define Retv_Seekdir void
360 #define Args_Seekdir DIR *, long
363 #define Symb_Stat UNIX_PFX "__xstat"
364 #define Retv_Stat int
365 #define Args_Stat int, const char *, struct stat *
367 #define Symb_Stat UNIX_PFX "stat"
368 #define Retv_Stat int
369 #define Args_Stat const char *, struct stat *
372 #if defined(__linux__) and defined(_STAT_VER)
373 #define Symb_Stat64 UNIX_PFX "__xstat64"
374 #define Retv_Stat64 int
375 #define Args_Stat64 int, const char *, struct stat64 *
378 #define Symb_Stat64 UNIX_PFX "stat"
379 #define Retv_Stat64 int
380 #define Args_Stat64 const char *, struct stat64 *
382 #define Symb_Stat64 UNIX_PFX "stat64"
383 #define Retv_Stat64 int
384 #define Args_Stat64 const char *, struct stat64 *
388 #define Symb_Statfs UNIX_PFX "statfs"
389 #define Retv_Statfs int
390 #define Args_Statfs const char *, struct statfs *
393 #define Symb_Statfs64 UNIX_PFX "statfs"
394 #define Retv_Statfs64 int
395 #define Args_Statfs64 const char *, struct statfs64 *
397 #define Symb_Statfs64 UNIX_PFX "statfs64"
398 #define Retv_Statfs64 int
399 #define Args_Statfs64 const char *, struct statfs64 *
402 #define Symb_Statvfs UNIX_PFX "statvfs"
403 #define Retv_Statvfs int
404 #define Args_Statvfs const char *, struct statvfs *
407 #define Symb_Statvfs64 UNIX_PFX "statvfs"
408 #define Retv_Statvfs64 int
409 #define Args_Statvfs64 const char *, struct statvfs64 *
411 #define Symb_Statvfs64 UNIX_PFX "statvfs64"
412 #define Retv_Statvfs64 int
413 #define Args_Statvfs64 const char *, struct statvfs64 *
416 #define Symb_Telldir UNIX_PFX "telldir"
417 #define Retv_Telldir long
418 #define Args_Telldir DIR *
420 #define Symb_Truncate UNIX_PFX "truncate"
421 #define Retv_Truncate int
422 #define Args_Truncate const char *, off_t
425 #define Symb_Truncate64 UNIX_PFX "truncate"
426 #define Retv_Truncate64 int
427 #define Args_Truncate64 const char *, off64_t
429 #define Symb_Truncate64 UNIX_PFX "truncate64"
430 #define Retv_Truncate64 int
431 #define Args_Truncate64 const char *, off64_t
434 #define Symb_Unlink UNIX_PFX "unlink"
435 #define Retv_Unlink int
436 #define Args_Unlink const char *
438 #define Symb_Write UNIX_PFX "write"
439 #define Retv_Write ssize_t
440 #define Args_Write int, const void *, size_t
442 #define Symb_Writev UNIX_PFX "writev"
443 #define Retv_Writev ssize_t
444 #define Args_Writev int, const struct iovec *, int
452 int Init(
int *X=0) {
if (!Done) Done = Resolve();
return 0;}
518 int Load_Error(
const char *epname,
int retv=-1);
525 void 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_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_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_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_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_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)