2 Unix SMB/Netbios implementation.
4 defintions of syscall entries
5 Copyright (C) Andrew Tridgell 1998
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22 #if HAVE_SYS_SYSCALL_H
23 #include <sys/syscall.h>
29 /* amazingly, IRIX gets its own syscall numbers wrong! */
33 #define SYSVoffset 1000
38 /* this file is partly derived from zlibc by Alain Knaff */
40 #define real_access(fn, mode) (syscall(SYS_access, (fn), (mode)))
41 #define real_chdir(fn) (syscall(SYS_chdir, (fn)))
42 #define real_chmod(fn, mode) (syscall(SYS_chmod,(fn), (mode)))
43 #define real_chown(fn, owner, group) (syscall(SYS_chown,(fn),(owner),(group)))
46 #define real_getdents(fd, dirp, count) (syscall(SYS_getdents, (fd), (dirp), (count)))
49 #define real_link(fn1, fn2) (syscall(SYS_link, (fn1), (fn2)))
51 #define real_open(fn,flags,mode) (syscall(SYS_open, (fn), (flags), (mode)))
54 #define real_open64(fn,flags,mode) (syscall(SYS_open64, (fn), (flags), (mode)))
56 #define real_open64(fn,flags,mode) (_open64(fn,flags,mode))
57 #define NO_OPEN64_ALIAS
59 #define real_open64(fn,flags,mode) (__open64(fn,flags,mode))
60 #define NO_OPEN64_ALIAS
62 #error No open64() wrapper
66 #define real_fork() (_fork())
68 #define real_fork() (__fork())
70 #define real_fork() (syscall(SYS_fork))
72 #error No fork() wrapper
76 #define real_opendir(fn) (_opendir(fn))
78 #define real_opendir(fn) (syscall(SYS_opendir,(fn)))
80 #define real_opendir(fn) (__opendir(fn))
82 #error No opendir() wrapper
86 #define real_readdir(d) (_readdir(d))
88 #define real_readdir(d) (__readdir(d))
90 #define real_readdir(d) (syscall(SYS_readdir,(d)))
92 #error No readdir() wrapper
96 #define real_closedir(d) (_closedir(d))
98 #define real_closedir(d) (syscall(SYS_closedir,(d)))
100 #define real_closedir(d) (__closedir(d))
102 #error No closedir() wrapper
106 #define real_seekdir(d,l) (_seekdir(d,l))
108 #define real_seekdir(d,l) (syscall(SYS_seekdir,(d),(l)))
110 #define real_seekdir(d,l) (__seekdir(d,l))
112 #define NO_SEEKDIR_WRAPPER
113 #error No seekdir() wrapper
117 #define real_telldir(d) (_telldir(d))
119 #define real_telldir(d) (syscall(SYS_telldir,(d)))
121 #define real_telldir(d) (__telldir(d))
123 #error No telldir() wrapper
127 #define real_dup(d) (_dup(d))
129 #define real_dup(d) (syscall(SYS_dup,(d)))
131 #define real_dup(d) (__dup(d))
133 #error No dup() wrapper
137 #define real_dup2(d1,d2) (_dup2(d1,d2))
139 #define real_dup2(d1,d2) (syscall(SYS_dup2,(d1),(d2)))
141 #define real_dup2(d1,d2) (__dup2(d1,d2))
143 #error No dup2() wrapper
147 #define real_getcwd(b,s) ((char *)_getcwd(b,s))
149 #define real_getcwd(b,s) ((char *)syscall(SYS_getcwd,(b),(s)))
151 #define real_getcwd(b,s) ((char *)__getcwd(b,s))
153 #error No getcwd() wrapper
157 #define real_stat(fn,st) (_stat(fn,st))
159 #define real_stat(fn,st) (syscall(SYS_stat,(fn),(st)))
161 #define real_stat(fn,st) (__stat(fn,st))
163 #error No stat() wrapper
167 #define real_lstat(fn,st) (_lstat(fn,st))
169 #define real_lstat(fn,st) (syscall(SYS_lstat,(fn),(st)))
171 #define real_lstat(fn,st) (__lstat(fn,st))
173 #error No lstat() wrapper
177 #define real_fstat(fd,st) (_fstat(fd,st))
179 #define real_fstat(fd,st) (syscall(SYS_fstat,(fd),(st)))
181 #define real_fstat(fd,st) (__fstat(fd,st))
183 #error No fstat() wrapper
186 #if defined(HAVE_SYS_ACL_H) && defined(HAVE__ACL)
187 #define real_acl(fn,cmd,n,buf) (_acl(fn,cmd,n,buf))
189 #define real_acl(fn,cmd,n,buf) (syscall(SYS_acl,(fn),(cmd),(n),(buf)))
191 #define real_acl(fn,cmd,n,buf) (__acl(fn,cmd,n,buf))
193 #define NO_ACL_WRAPPER
197 #define real_facl(fd,cmd,n,buf) (_facl(fd,cmd,n,buf))
199 #define real_facl(fd,cmd,n,buf) (syscall(SYS_facl,(fd),(cmd),(n),(buf)))
201 #define real_facl(fd,cmd,n,buf) (__facl(fd,cmd,n,buf))
203 #define NO_FACL_WRAPPER
208 #define real_stat64(fn,st) (_stat64(fn,st))
210 #define real_stat64(fn,st) (__stat64(fn,st))
212 #error No stat64() wrapper
216 #define real_lstat64(fn,st) (_lstat64(fn,st))
218 #define real_lstat64(fn,st) (__lstat64(fn,st))
220 #error No lstat64() wrapper
224 #define real_fstat64(fd,st) (_fstat64(fd,st))
226 #define real_fstat64(fd,st) (__fstat64(fd,st))
228 #error No fstat64() wrapper
231 #ifdef HAVE__READDIR64
232 #define real_readdir64(d) (_readdir64(d))
233 #elif HAVE___READDIR64
234 #define real_readdir64(d) (__readdir64(d))
236 #error No readdir64() wrapper
240 #define real_llseek(fd,ofs,whence) (_llseek(fd,ofs,whence))
242 #define real_llseek(fd,ofs,whence) (__llseek(fd,ofs,whence))
243 #elif HAVE___SYS_LLSEEK
244 #define real_llseek(fd,ofs,whence) (__sys_llseek(fd,ofs,whence))
246 #error No llseek() wrapper
251 #define real_pread(fd,buf,size,ofs) (_pread(fd,buf,size,ofs))
253 #define real_pread(fd,buf,size,ofs) (__pread(fd,buf,size,ofs))
255 #error No pread() wrapper
259 #define real_pread64(fd,buf,size,ofs) (_pread64(fd,buf,size,ofs))
261 #define real_pread64(fd,buf,size,ofs) (__pread64(fd,buf,size,ofs))
263 #error No pread64() wrapper
267 #define real_pwrite(fd,buf,size,ofs) (_pwrite(fd,buf,size,ofs))
269 #define real_pwrite(fd,buf,size,ofs) (__pwrite(fd,buf,size,ofs))
271 #error No pwrite() wrapper
274 #ifdef HAVE__PWRITE64
275 #define real_pwrite64(fd,buf,size,ofs) (_pwrite64(fd,buf,size,ofs))
276 #elif HAVE___PWRITE64
277 #define real_pwrite64(fd,buf,size,ofs) (__pwrite64(fd,buf,size,ofs))
279 #error No pwrite64() wrapper
283 #define real_readlink(fn,buf,len) (syscall(SYS_readlink, (fn), (buf), (len)))
284 #define real_rename(fn1, fn2) (syscall(SYS_rename, (fn1), (fn2)))
285 #define real_symlink(fn1, fn2) (syscall(SYS_symlink, (fn1), (fn2)))
286 #define real_read(fd, buf, count ) (syscall(SYS_read, (fd), (buf), (count)))
287 #define real_lseek(fd, offset, whence) (syscall(SYS_lseek, (fd), (offset), (whence)))
288 #define real_write(fd, buf, count ) (syscall(SYS_write, (fd), (buf), (count)))
289 #define real_close(fd) (syscall(SYS_close, (fd)))
290 #define real_fchdir(fd) (syscall(SYS_fchdir, (fd)))
291 #define real_fcntl(fd,cmd,arg) (syscall(SYS_fcntl, (fd), (cmd), (arg)))
292 #define real_symlink(fn1, fn2) (syscall(SYS_symlink, (fn1), (fn2)))
293 #define real_unlink(fn) (syscall(SYS_unlink, (fn)))
294 #define real_rmdir(fn) (syscall(SYS_rmdir, (fn)))
295 #define real_mkdir(fn, mode) (syscall(SYS_mkdir, (fn), (mode)))
298 #define real_utime(fn, buf) (syscall(SYS_utime, (fn), (buf)))
300 #define REPLACE_UTIME 1
304 #define real_utimes(fn, buf) (syscall(SYS_utimes, (fn), (buf)))
306 #define REPLACE_UTIMES 1