diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/alpha')
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/lxstat64.c (renamed from sysdeps/unix/sysv/linux/alpha/lxstat.c) | 48 |
1 files changed, 20 insertions, 28 deletions
diff --git a/sysdeps/unix/sysv/linux/alpha/lxstat.c b/sysdeps/unix/sysv/linux/alpha/lxstat64.c index eb03a5fbfe..90dc0c7ce7 100644 --- a/sysdeps/unix/sysv/linux/alpha/lxstat.c +++ b/sysdeps/unix/sysv/linux/alpha/lxstat64.c @@ -16,42 +16,34 @@ License along with the GNU C Library. If not, see <https://www.gnu.org/licenses/>. */ -#define __lxstat64 __lxstat64_disable - -#include <errno.h> -#include <stddef.h> +#define __lxstat __redirect___lxstat #include <sys/stat.h> +#undef __lxstat +#include <fcntl.h> #include <kernel_stat.h> #include <sysdep.h> -#include <sys/syscall.h> #include <xstatconv.h> -#undef __lxstat64 - - /* Get information about the file NAME in BUF. */ int -__lxstat (int vers, const char *name, struct stat *buf) +__lxstat64 (int vers, const char *name, struct stat64 *buf) { - int result; - struct kernel_stat kbuf; - - if (vers == _STAT_VER_KERNEL64) + switch (vers) { - result = INTERNAL_SYSCALL_CALL (lstat64, name, buf); - if (__glibc_likely (!INTERNAL_SYSCALL_ERROR_P (result))) - return result; - __set_errno (INTERNAL_SYSCALL_ERRNO (result)); - return -1; + case _STAT_VER_KERNEL64: + return INLINE_SYSCALL_CALL (lstat64, name, buf); + + default: + { + struct kernel_stat kbuf; + int r = INTERNAL_SYSCALL_CALL (lstat, name, &kbuf); + if (r == 0) + return __xstat_conv (vers, &kbuf, buf); + return INLINE_SYSCALL_ERROR_RETURN_VALUE (-r); + } } - - result = INTERNAL_SYSCALL_CALL (lstat, name, &kbuf); - if (__glibc_likely (!INTERNAL_SYSCALL_ERROR_P (result))) - return __xstat_conv (vers, &kbuf, buf); - __set_errno (INTERNAL_SYSCALL_ERRNO (result)); - return -1; } -hidden_def (__lxstat) -weak_alias (__lxstat, _lxstat); -strong_alias (__lxstat, __lxstat64); -hidden_ver (__lxstat, __lxstat64) +weak_alias (__lxstat64, __lxstat); +weak_alias (__lxstat64, __GI___lxstat); + +hidden_def (__lxstat64) |