Cygwin: mmap: allow remapping part of an existing anonymous mapping
[newlib-cygwin.git] / newlib / libc / reent / stat64r.c
blob160d08e33212a5796f06b7cfc3bf8e6b3162b6f2
1 /* Reentrant versions of stat64 system call. This implementation just
2 calls the stat64 system call. */
4 #include <reent.h>
5 #include <unistd.h>
6 #include <sys/stat.h>
7 #include <_syslist.h>
9 /* Some targets provides their own versions of these functions. Those
10 targets should define REENTRANT_SYSCALLS_PROVIDED in
11 TARGET_CFLAGS. */
13 #ifdef _REENT_ONLY
14 #ifndef REENTRANT_SYSCALLS_PROVIDED
15 #define REENTRANT_SYSCALLS_PROVIDED
16 #endif
17 #endif
19 #ifdef REENTRANT_SYSCALLS_PROVIDED
21 int _dummy_stat64_syscalls = 1;
23 #else
25 /* We use the errno variable used by the system dependent layer. */
26 #undef errno
27 extern int errno;
30 FUNCTION
31 <<_stat64_r>>---Reentrant version of stat64
33 INDEX
34 _stat64_r
36 SYNOPSIS
37 #include <reent.h>
38 int _stat64_r(struct _reent *<[ptr]>,
39 const char *<[file]>, struct stat64 *<[pstat]>);
41 DESCRIPTION
42 This is a reentrant version of <<stat64>>. It
43 takes a pointer to the global data block, which holds
44 <<errno>>.
47 int
48 _stat64_r (struct _reent *ptr,
49 const char *file,
50 struct stat64 *pstat)
52 int ret;
54 errno = 0;
55 if ((ret = _stat64 (file, pstat)) == -1 && errno != 0)
56 _REENT_ERRNO(ptr) = errno;
57 return ret;
60 #endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */