summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/frv
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/frv')
-rw-r--r--libc/sysdeps/linux/frv/bits/fcntl.h9
-rw-r--r--libc/sysdeps/linux/frv/bits/kernel_stat.h4
-rw-r--r--libc/sysdeps/linux/frv/bits/stat.h20
-rw-r--r--libc/sysdeps/linux/frv/bits/uClibc_arch_features.h3
-rw-r--r--libc/sysdeps/linux/frv/sysdep.c2
5 files changed, 23 insertions, 15 deletions
diff --git a/libc/sysdeps/linux/frv/bits/fcntl.h b/libc/sysdeps/linux/frv/bits/fcntl.h
index b5fe0b588..81a1bcd99 100644
--- a/libc/sysdeps/linux/frv/bits/fcntl.h
+++ b/libc/sysdeps/linux/frv/bits/fcntl.h
@@ -53,6 +53,7 @@
# define O_DIRECT 040000 /* Direct disk access. */
# define O_NOATIME 01000000 /* don't set atime */
# define O_PATH 010000000 /* Resolve pathname but do not open file. */
+# define O_TMPFILE 020200000 /* Atomically create nameless file. */
#endif
/* For now Linux has synchronisity options for data and read operations.
@@ -100,11 +101,13 @@
# define F_SETLEASE 1024 /* Set a lease. */
# define F_GETLEASE 1025 /* Enquire what lease is active. */
# define F_NOTIFY 1026 /* Request notfications on a directory. */
-# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
- close-on-exit set on new fd. */
# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */
# define F_GETPIPE_SZ 1032 /* Get pipe page size array. */
#endif
+#if defined __USE_XOPEN2K8 || defined __USE_GNU
+# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
+ close-on-exit set on new fd. */
+#endif
/* For F_[GET|SET]FL. */
#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
@@ -223,3 +226,5 @@ extern ssize_t tee (int __fdin, int __fdout, size_t __len,
#endif
__END_DECLS
+/* Include generic Linux declarations. */
+#include <bits/fcntl-linux.h>
diff --git a/libc/sysdeps/linux/frv/bits/kernel_stat.h b/libc/sysdeps/linux/frv/bits/kernel_stat.h
index 1cf521044..cda016ce4 100644
--- a/libc/sysdeps/linux/frv/bits/kernel_stat.h
+++ b/libc/sysdeps/linux/frv/bits/kernel_stat.h
@@ -38,7 +38,7 @@ struct kernel_stat {
struct timespec st_mtim;
struct timespec st_ctim;
- unsigned long long __unused4;
+ unsigned long long __uclibc_unused4;
};
struct kernel_stat64 {
@@ -68,7 +68,7 @@ struct kernel_stat64 {
struct timespec st_mtim;
struct timespec st_ctim;
- unsigned long long __unused4;
+ unsigned long long __uclibc_unused4;
};
#endif /* _BITS_STAT_STRUCT_H */
diff --git a/libc/sysdeps/linux/frv/bits/stat.h b/libc/sysdeps/linux/frv/bits/stat.h
index e6a1944bb..18321c080 100644
--- a/libc/sysdeps/linux/frv/bits/stat.h
+++ b/libc/sysdeps/linux/frv/bits/stat.h
@@ -70,7 +70,7 @@ struct stat
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
#endif
-#ifdef __USE_MISC
+#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
/* Nanosecond resolution timestamps are stored in a format
equivalent to 'struct timespec'. This is the type used
whenever possible but the Unix namespace rules do not allow the
@@ -84,16 +84,16 @@ struct stat
# define st_mtime st_mtim.tv_sec
# define st_ctime st_ctim.tv_sec
#else
- unsigned long int __unused1;
+ unsigned long int __uclibc_unused1;
__time_t st_atime; /* Time of last access. */
- unsigned long int __unused2;
+ unsigned long int __uclibc_unused2;
__time_t st_mtime; /* Time of last modification. */
- unsigned long int __unused3;
+ unsigned long int __uclibc_unused3;
__time_t st_ctime; /* Time of last status change. */
#endif
- unsigned long long __unused4;
+ unsigned long long __uclibc_unused4;
};
#ifdef __USE_LARGEFILE64
@@ -117,7 +117,7 @@ struct stat64
__blksize_t st_blksize; /* Optimal block size for I/O. */
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
-#ifdef __USE_MISC
+#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
/* Nanosecond resolution timestamps are stored in a format
equivalent to 'struct timespec'. This is the type used
whenever possible but the Unix namespace rules do not allow the
@@ -131,16 +131,16 @@ struct stat64
# define st_mtime st_mtim.tv_sec
# define st_ctime st_ctim.tv_sec
#else
- unsigned long int __unused1;
+ unsigned long int __uclibc_unused1;
__time_t st_atime; /* Time of last access. */
- unsigned long int __unused2;
+ unsigned long int __uclibc_unused2;
__time_t st_mtime; /* Time of last modification. */
- unsigned long int __unused3;
+ unsigned long int __uclibc_unused3;
__time_t st_ctime; /* Time of last status change. */
#endif
- unsigned long long __unused4;
+ unsigned long long __uclibc_unused4;
};
#endif
diff --git a/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h b/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h
index f660fd223..916b1e28d 100644
--- a/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h
+++ b/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h
@@ -12,6 +12,9 @@
/* can your target use syscall6() for mmap ? */
#undef __UCLIBC_MMAP_HAS_6_ARGS__
+/* does your target use statx */
+#undef __UCLIBC_HAVE_STATX__
+
/* does your target align 64bit values in register pairs ? (32bit arches only) */
#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
diff --git a/libc/sysdeps/linux/frv/sysdep.c b/libc/sysdeps/linux/frv/sysdep.c
index bfae12100..28beb418f 100644
--- a/libc/sysdeps/linux/frv/sysdep.c
+++ b/libc/sysdeps/linux/frv/sysdep.c
@@ -19,7 +19,7 @@
/* This routine is jumped to by all the syscall handlers, to stash
an error number into errno. */
-int __syscall_error (int err_no)
+long __syscall_error (int err_no)
{
__set_errno (-err_no);
return -1;