From: Chris Metcalf <cmetcalf@tilera.com>
To: linux-kernel@vger.kernel.org
Cc: linux-arch@vger.kernel.org, torvalds@linux-foundation.org
Subject: [PATCH 1/8] Fix up the "generic" unistd.h ABI to be more useful.
Date: Fri, 28 May 2010 23:01:00 -0400 [thread overview]
Message-ID: <201005290333.o4T3XoVB029926@farm-0002.internal.tilera.com> (raw)
In-Reply-To: <201005200543.o4K5hFRF006079@farm-0002.internal.tilera.com>
Reserve 16 "architecture-specific" syscall numbers starting at 244.
Allow use of the sys_sync_file_range2() API with the generic unistd.h
by specifying __ARCH_WANT_SYNC_FILE_RANGE2 before including it.
Allow using the generic unistd.h to create the "compat" syscall table
by specifying __SYSCALL_COMPAT before including it.
Use sys_fadvise64_64 for __NR3264_fadvise64 in both 32- and 64-bit mode.
Request the appropriate __ARCH_WANT_COMPAT_SYS_xxx values when
some deprecated syscall modes are selected.
As part of this change to fix up the syscalls, also provide a couple
of missing signal-related syscall prototypes in <linux/syscalls.h>.
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
---
include/asm-generic/unistd.h | 26 ++++++++++++++++++++------
include/linux/syscalls.h | 4 ++++
2 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/include/asm-generic/unistd.h b/include/asm-generic/unistd.h
index 6a0b30f..30218b4 100644
--- a/include/asm-generic/unistd.h
+++ b/include/asm-generic/unistd.h
@@ -18,7 +18,7 @@
#define __SYSCALL(x, y)
#endif
-#if __BITS_PER_LONG == 32
+#if __BITS_PER_LONG == 32 || defined(__SYSCALL_COMPAT)
#define __SC_3264(_nr, _32, _64) __SYSCALL(_nr, _32)
#else
#define __SC_3264(_nr, _32, _64) __SYSCALL(_nr, _64)
@@ -241,8 +241,13 @@ __SYSCALL(__NR_sync, sys_sync)
__SYSCALL(__NR_fsync, sys_fsync)
#define __NR_fdatasync 83
__SYSCALL(__NR_fdatasync, sys_fdatasync)
+#ifdef __ARCH_WANT_SYNC_FILE_RANGE2
+#define __NR_sync_file_range2 84
+__SYSCALL(__NR_sync_file_range2, sys_sync_file_range2)
+#else
#define __NR_sync_file_range 84
-__SYSCALL(__NR_sync_file_range, sys_sync_file_range) /* .long sys_sync_file_range2, */
+__SYSCALL(__NR_sync_file_range, sys_sync_file_range)
+#endif
/* fs/timerfd.c */
#define __NR_timerfd_create 85
@@ -580,7 +585,7 @@ __SYSCALL(__NR_execve, sys_execve) /* .long sys_execve_wrapper */
__SC_3264(__NR3264_mmap, sys_mmap2, sys_mmap)
/* mm/fadvise.c */
#define __NR3264_fadvise64 223
-__SC_3264(__NR3264_fadvise64, sys_fadvise64_64, sys_fadvise64)
+__SYSCALL(__NR3264_fadvise64, sys_fadvise64_64)
/* mm/, CONFIG_MMU only */
#ifndef __ARCH_NOMMU
@@ -627,8 +632,14 @@ __SYSCALL(__NR_accept4, sys_accept4)
#define __NR_recvmmsg 243
__SYSCALL(__NR_recvmmsg, sys_recvmmsg)
+/*
+ * Architectures may provide up to 16 syscalls of their own
+ * starting with this value.
+ */
+#define __NR_arch_specific_syscall 244
+
#undef __NR_syscalls
-#define __NR_syscalls 244
+#define __NR_syscalls 260
/*
* All syscalls below here should go away really,
@@ -694,7 +705,8 @@ __SYSCALL(__NR_signalfd, sys_signalfd)
#define __NR_syscalls (__NR_signalfd+1)
#endif /* __ARCH_WANT_SYSCALL_NO_FLAGS */
-#if __BITS_PER_LONG == 32 && defined(__ARCH_WANT_SYSCALL_OFF_T)
+#if (__BITS_PER_LONG == 32 || defined(__SYSCALL_COMPAT)) && \
+ defined(__ARCH_WANT_SYSCALL_OFF_T)
#define __NR_sendfile 1046
__SYSCALL(__NR_sendfile, sys_sendfile)
#define __NR_ftruncate 1047
@@ -740,6 +752,7 @@ __SYSCALL(__NR_getpgrp, sys_getpgrp)
__SYSCALL(__NR_pause, sys_pause)
#define __NR_time 1062
#define __ARCH_WANT_SYS_TIME
+#define __ARCH_WANT_COMPAT_SYS_TIME
__SYSCALL(__NR_time, sys_time)
#define __NR_utime 1063
#define __ARCH_WANT_SYS_UTIME
@@ -801,7 +814,7 @@ __SYSCALL(__NR_fork, sys_ni_syscall)
* Here we map the numbers so that both versions
* use the same syscall table layout.
*/
-#if __BITS_PER_LONG == 64
+#if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
#define __NR_fcntl __NR3264_fcntl
#define __NR_statfs __NR3264_statfs
#define __NR_fstatfs __NR3264_fstatfs
@@ -848,6 +861,7 @@ __SYSCALL(__NR_fork, sys_ni_syscall)
#endif
#define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
+#define __ARCH_WANT_COMPAT_SYS_RT_SIGSUSPEND
/*
* "Conditional" syscalls
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 057929b..d39ddb3 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -387,9 +387,13 @@ asmlinkage long sys_init_module(void __user *umod, unsigned long len,
asmlinkage long sys_delete_module(const char __user *name_user,
unsigned int flags);
+asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act,
+ struct sigaction __user *oact,
+ size_t sigsetsize);
asmlinkage long sys_rt_sigprocmask(int how, sigset_t __user *set,
sigset_t __user *oset, size_t sigsetsize);
asmlinkage long sys_rt_sigpending(sigset_t __user *set, size_t sigsetsize);
+asmlinkage long sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize);
asmlinkage long sys_rt_sigtimedwait(const sigset_t __user *uthese,
siginfo_t __user *uinfo,
const struct timespec __user *uts,
--
1.6.5.2
next prev parent reply other threads:[~2010-05-29 3:34 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-20 5:43 [PATCH] arch/tile: new multi-core architecture for Linux Chris Metcalf
2010-05-20 8:04 ` Barry Song
2010-05-20 14:32 ` Linus Torvalds
2010-05-20 19:10 ` Chris Metcalf
2010-05-21 4:52 ` Barry Song
2010-05-21 15:13 ` Chris Metcalf
2010-05-20 19:12 ` [PATCH] generic: make lowmem_page_address() use PFN_PHYS() for improved portability Chris Metcalf
2010-05-22 4:05 ` [PATCH] arch/tile: new multi-core architecture for Linux Chris Metcalf
2010-05-23 22:08 ` Arnd Bergmann
2010-05-24 15:29 ` Chris Metcalf
2010-05-24 18:53 ` Arnd Bergmann
2010-05-24 21:29 ` Chris Metcalf
2010-05-25 13:54 ` Chris Metcalf
2010-05-25 15:03 ` Arnd Bergmann
2010-05-25 15:13 ` Chris Metcalf
2010-05-25 15:30 ` Arnd Bergmann
2010-05-26 2:44 ` liqin.chen
2010-05-26 13:45 ` Chris Metcalf
[not found] ` <4BFBE005.2070500@tilera.com>
[not found] ` <201005251721.23782.arnd@arndb.de>
2010-05-26 23:05 ` Chris Metcalf
2010-05-26 5:02 ` Paul Mundt
2010-05-25 21:45 ` Arnd Bergmann
2010-05-27 0:58 ` Chris Metcalf
2010-05-27 8:41 ` Arnd Bergmann
2010-05-27 13:30 ` Chris Metcalf
2010-05-27 13:41 ` Geert Uytterhoeven
2010-05-27 13:48 ` Paul Mundt
2010-05-27 14:11 ` Arnd Bergmann
2010-05-27 14:35 ` Chris Metcalf
2010-05-27 15:02 ` Arnd Bergmann
2010-05-27 15:04 ` Chris Metcalf
2010-05-27 15:20 ` Arnd Bergmann
2010-05-27 14:52 ` Marc Gauthier
2010-05-28 17:58 ` Chris Metcalf
2010-05-27 15:03 ` Chris Metcalf
2010-05-27 20:34 ` Jamie Lokier
2010-05-27 20:53 ` Arnd Bergmann
2010-05-28 16:45 ` Chris Metcalf
2010-05-28 17:16 ` Arnd Bergmann
2010-05-28 17:28 ` Chris Metcalf
2011-05-16 18:23 ` [PATCH] arch/tile: support signal "exception-trace" hook Chris Metcalf
2011-05-18 18:14 ` Chris Metcalf
2011-05-17 20:26 ` [PATCH] arch/tile: add /proc/tile, /proc/sys/tile, and a sysfs cpu attribute Chris Metcalf
2011-05-19 13:41 ` Arnd Bergmann
2011-05-19 15:12 ` Chris Metcalf
2011-05-19 15:22 ` Arnd Bergmann
2011-05-20 14:26 ` Chris Metcalf
2011-05-20 14:37 ` Arnd Bergmann
2011-05-20 15:00 ` Chris Metcalf
2011-05-20 15:13 ` Arnd Bergmann
2011-05-20 19:59 ` Arnd Bergmann
2011-05-25 19:18 ` Chris Metcalf
2011-05-25 20:20 ` Arnd Bergmann
2011-05-25 20:31 ` Chris Metcalf
2011-05-25 20:34 ` Arnd Bergmann
2011-05-26 16:40 ` [PATCH v2] arch/tile: more /proc and /sys file support Chris Metcalf
2011-05-27 14:23 ` Arnd Bergmann
2011-05-24 15:38 ` [PATCH] arch/tile: add /proc/tile, /proc/sys/tile, and a sysfs cpu attribute Arnd Bergmann
2010-05-24 20:22 ` [PATCH] arch/tile: new multi-core architecture for Linux Sam Ravnborg
2010-05-24 21:30 ` Chris Metcalf
2010-05-25 5:02 ` Sam Ravnborg
2010-05-25 20:12 ` Thomas Gleixner
2010-05-26 1:57 ` Chris Metcalf
2010-05-26 16:22 ` Chris Metcalf
2010-05-26 17:09 ` Arnd Bergmann
2010-05-29 3:01 ` Chris Metcalf [this message]
2010-05-29 3:09 ` [PATCH 2/8] arch/tile: infrastructure and configuration-related files Chris Metcalf
2010-05-31 7:47 ` Paul Mundt
2010-06-03 17:54 ` Chris Metcalf
2010-05-29 3:10 ` [PATCH 3/8] arch/tile: header files for the Tile architecture Chris Metcalf
2010-05-31 2:58 ` FUJITA Tomonori
2010-06-03 21:32 ` [PATCH] arch/tile: respond to reviews of the second code submission Chris Metcalf
2010-06-04 0:50 ` Paul Mundt
2010-06-04 1:31 ` FUJITA Tomonori
2010-06-07 5:25 ` FUJITA Tomonori
2010-05-29 3:10 ` [PATCH 4/8] arch/tile: core kernel/ code Chris Metcalf
2010-05-31 2:58 ` FUJITA Tomonori
2010-05-29 3:11 ` [PATCH 5/8] arch/tile: the kernel/tile-desc_32.c file Chris Metcalf
2010-05-29 3:13 ` [PATCH 6/8] arch/tile: the mm/ directory Chris Metcalf
2010-05-29 3:16 ` [PATCH 7/8] arch/tile: lib/ directory Chris Metcalf
2010-05-29 3:17 ` [PATCH 8/8] arch/tile: hypervisor console driver Chris Metcalf
2010-05-29 3:20 ` [PATCH 0/8] revised patch for arch/tile/ support Chris Metcalf
2010-05-29 11:29 ` Arnd Bergmann
2010-06-03 20:40 ` Arnd Bergmann
2010-06-03 21:48 ` Chris Metcalf
2010-06-04 21:32 ` Chris Metcalf
2010-06-05 12:56 ` Stephen Rothwell
2010-06-05 13:30 ` Chris Metcalf
2010-06-05 14:10 ` Stephen Rothwell
[not found] ` <dVZMmBu$KHA.5388@exchange1.tad.internal.tilera.com>
2010-05-29 3:20 ` Chris Metcalf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201005290333.o4T3XoVB029926@farm-0002.internal.tilera.com \
--to=cmetcalf@tilera.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®