mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Remove __ASSUME_STAT64_SYSCALL.
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/* fxstat64 using old-style Unix fstat system call.
|
||||
Copyright (C) 1997-2002, 2003, 2006 Free Software Foundation, Inc.
|
||||
/* fxstat64 using Linux fstat64 system call.
|
||||
Copyright (C) 1997-2012 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -27,57 +27,18 @@
|
||||
|
||||
#include <kernel-features.h>
|
||||
|
||||
#if __ASSUME_STAT64_SYSCALL == 0
|
||||
# include <xstatconv.h>
|
||||
#endif
|
||||
|
||||
#ifdef __NR_fstat64
|
||||
# if __ASSUME_STAT64_SYSCALL == 0
|
||||
/* The variable is shared between all wrappers around *stat64 calls. */
|
||||
extern int __have_no_stat64;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Get information about the file FD in BUF. */
|
||||
|
||||
int
|
||||
___fxstat64 (int vers, int fd, struct stat64 *buf)
|
||||
{
|
||||
int result;
|
||||
#if __ASSUME_STAT64_SYSCALL > 0
|
||||
result = INLINE_SYSCALL (fstat64, 2, fd, CHECK_1 (buf));
|
||||
# if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
|
||||
#if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
|
||||
if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino)
|
||||
buf->st_ino = buf->__st_ino;
|
||||
# endif
|
||||
return result;
|
||||
#else
|
||||
struct kernel_stat kbuf;
|
||||
# if defined __NR_fstat64
|
||||
if (! __have_no_stat64)
|
||||
{
|
||||
int saved_errno = errno;
|
||||
result = INLINE_SYSCALL (fstat64, 2, fd, CHECK_1 (buf));
|
||||
|
||||
if (result != -1 || errno != ENOSYS)
|
||||
{
|
||||
# if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0
|
||||
if (!result && buf->__st_ino != (__ino_t)buf->st_ino)
|
||||
buf->st_ino = buf->__st_ino;
|
||||
# endif
|
||||
return result;
|
||||
}
|
||||
|
||||
__set_errno (saved_errno);
|
||||
__have_no_stat64 = 1;
|
||||
}
|
||||
# endif
|
||||
result = INLINE_SYSCALL (fstat, 2, fd, __ptrvalue (&kbuf));
|
||||
if (result == 0)
|
||||
result = __xstat64_conv (vers, &kbuf, buf);
|
||||
|
||||
return result;
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
|
||||
#include <shlib-compat.h>
|
||||
|
Reference in New Issue
Block a user