diff options
Diffstat (limited to 'libc/sysdeps/linux/common')
| -rw-r--r-- | libc/sysdeps/linux/common/getdents64.c | 13 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/syscalls.c | 27 | 
2 files changed, 29 insertions, 11 deletions
| diff --git a/libc/sysdeps/linux/common/getdents64.c b/libc/sysdeps/linux/common/getdents64.c index 0fb7336f3..53e57b351 100644 --- a/libc/sysdeps/linux/common/getdents64.c +++ b/libc/sysdeps/linux/common/getdents64.c @@ -17,9 +17,6 @@     02111-1307 USA.  */  #include <features.h> - -#ifdef __UCLIBC_HAS_LFS__ -  #include <alloca.h>  #include <assert.h>  #include <errno.h> @@ -28,11 +25,13 @@  #include <stdint.h>  #include <string.h>  #include <unistd.h> +#include <sysdep.h>  #include <sys/param.h>  #include <sys/types.h> -#include <sysdep.h>  #include <sys/syscall.h> +#if defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64  +  #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) @@ -104,5 +103,11 @@ ssize_t __getdents64 (int fd, char *buf, size_t nbytes)      }      return (char *) dp - buf;  } +#else +ssize_t __getdents (int fd, char *buf, size_t nbytes); +ssize_t __getdents64 (int fd, char *buf, size_t nbytes) +{ +    return(__getdents(fd, buf, nbytes)); +}  #endif /* __UCLIBC_HAS_LFS__ */ diff --git a/libc/sysdeps/linux/common/syscalls.c b/libc/sysdeps/linux/common/syscalls.c index 2e047f129..76ba1d874 100644 --- a/libc/sysdeps/linux/common/syscalls.c +++ b/libc/sysdeps/linux/common/syscalls.c @@ -969,7 +969,8 @@ _syscall2(int, getitimer, __itimer_which_t, which, struct itimerval *, value);  #ifdef L___syscall_stat  #define __NR___syscall_stat __NR_stat  #include <unistd.h> -#include <sys/stat.h> +#define _SYS_STAT_H +#include <bits/stat.h>  #include "xstatconv.h"  _syscall2(int, __syscall_stat, const char *, file_name, struct kernel_stat *, buf);  int stat(const char * file_name, struct stat * buf) @@ -991,7 +992,8 @@ weak_alias(stat, stat64);  #ifdef L___syscall_lstat  #define __NR___syscall_lstat __NR_lstat  #include <unistd.h> -#include <sys/stat.h> +#define _SYS_STAT_H +#include <bits/stat.h>  #include <bits/kernel_stat.h>  #include "xstatconv.h"  _syscall2(int, __syscall_lstat, const char *, file_name, struct kernel_stat *, buf); @@ -1014,7 +1016,8 @@ weak_alias(lstat, lstat64);  #ifdef L___syscall_fstat  #define __NR___syscall_fstat __NR_fstat  #include <unistd.h> -#include <sys/stat.h> +#define _SYS_STAT_H +#include <bits/stat.h>  #include <bits/kernel_stat.h>  #include "xstatconv.h"  _syscall2(int, __syscall_fstat, int, fd, struct kernel_stat *, buf); @@ -1767,10 +1770,10 @@ _syscall2(int, pivot_root, const char *, new_root, const char *, put_old);  //#define __NR_fcntl64		221  #ifdef L__fcntl64  #ifdef __UCLIBC_HAS_LFS__ -#ifdef __NR_fcntl64 -#define __NR__fcntl64 __NR_fcntl64  #include <stdarg.h>  #include <fcntl.h> +#ifdef __NR_fcntl64 +#define __NR__fcntl64 __NR_fcntl64  extern int _fcntl64(int fd, int cmd, long arg);  _syscall3(int, _fcntl64, int, fd, int, cmd, long, arg); @@ -1787,8 +1790,18 @@ int fcntl64(int fd, int command, ...)  	return _fcntl64(fd, command, arg);  }  #else -extern int __libc_fcntl(int fd, int command, ...); -weak_alias(__libc_fcntl, fcntl64) +extern int _fcntl(int fd, int cmd, long arg); +int fcntl64(int fd, int command, ...) +{ +	long arg; +	va_list list; + +	va_start(list, command); +	arg = va_arg(list, long); + +	va_end(list); +	return _fcntl(fd, command, arg); +}  #endif  #endif  #endif | 
