aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2009-05-13 18:56:28 -0400
committerArnd Bergmann <arnd@klappe2.(none)>2009-06-11 15:02:16 -0400
commite64a1617eca39d62b248a11699de9c1195369661 (patch)
tree41e9b99b647b66256ed9e72c183929b57ead91a0 /scripts
parent6103ec56c65c33774c7c38652c8204120c3c7519 (diff)
asm-generic: add a generic unistd.h
A new architecture should only define a minimal set of system calls while still providing the full functionality. This version of unistd.h has gone through intensive review to make sure that by default it only enables syscalls that do not already have a more featureful replacement. It is modeled after the x86-64 version of unistd.h, which unifies the syscall number definition and the actual system call table in a single file, in order to keep them synchronized much more easily. This first version still keeps legacy system call definitions around, guarded by various #ifdefs, and with numbers larger than 1024. The idea behind this is to make it easier for new architectures to transition from a full list to the reduced set. In particular, the new microblaze architecture that should migrate to using the generic ABI headers can at least use an existing uClibc source tree without major rewrites during the conversion. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/checksyscalls.sh92
1 files changed, 89 insertions, 3 deletions
diff --git a/scripts/checksyscalls.sh b/scripts/checksyscalls.sh
index 60d00d1c4eee..66ad375612f2 100755
--- a/scripts/checksyscalls.sh
+++ b/scripts/checksyscalls.sh
@@ -14,6 +14,57 @@ cat << EOF
14#include <asm/types.h> 14#include <asm/types.h>
15#include <asm/unistd.h> 15#include <asm/unistd.h>
16 16
17/* *at */
18#define __IGNORE_open /* openat */
19#define __IGNORE_link /* linkat */
20#define __IGNORE_unlink /* unlinkat */
21#define __IGNORE_mknod /* mknodat */
22#define __IGNORE_chmod /* fchmodat */
23#define __IGNORE_chown /* fchownat */
24#define __IGNORE_mkdir /* mkdirat */
25#define __IGNORE_rmdir /* unlinkat */
26#define __IGNORE_lchown /* fchownat */
27#define __IGNORE_access /* faccessat */
28#define __IGNORE_rename /* renameat */
29#define __IGNORE_readlink /* readlinkat */
30#define __IGNORE_symlink /* symlinkat */
31#define __IGNORE_utimes /* futimesat */
32#if BITS_PER_LONG == 64
33#define __IGNORE_stat /* fstatat */
34#define __IGNORE_lstat /* fstatat */
35#else
36#define __IGNORE_stat64 /* fstatat64 */
37#define __IGNORE_lstat64 /* fstatat64 */
38#endif
39
40/* CLOEXEC flag */
41#define __IGNORE_pipe /* pipe2 */
42#define __IGNORE_dup2 /* dup3 */
43#define __IGNORE_epoll_create /* epoll_create1 */
44#define __IGNORE_inotify_init /* inotify_init1 */
45#define __IGNORE_eventfd /* eventfd2 */
46#define __IGNORE_signalfd /* signalfd4 */
47
48/* MMU */
49#ifndef CONFIG_MMU
50#define __IGNORE_madvise
51#define __IGNORE_mbind
52#define __IGNORE_mincore
53#define __IGNORE_mlock
54#define __IGNORE_mlockall
55#define __IGNORE_munlock
56#define __IGNORE_munlockall
57#define __IGNORE_mprotect
58#define __IGNORE_msync
59#define __IGNORE_migrate_pages
60#define __IGNORE_move_pages
61#define __IGNORE_remap_file_pages
62#define __IGNORE_get_mempolicy
63#define __IGNORE_set_mempolicy
64#define __IGNORE_swapoff
65#define __IGNORE_swapon
66#endif
67
17/* System calls for 32-bit kernels only */ 68/* System calls for 32-bit kernels only */
18#if BITS_PER_LONG == 64 69#if BITS_PER_LONG == 64
19#define __IGNORE_sendfile64 70#define __IGNORE_sendfile64
@@ -27,6 +78,22 @@ cat << EOF
27#define __IGNORE_fstatat64 78#define __IGNORE_fstatat64
28#define __IGNORE_fstatfs64 79#define __IGNORE_fstatfs64
29#define __IGNORE_statfs64 80#define __IGNORE_statfs64
81#define __IGNORE_llseek
82#define __IGNORE_mmap2
83#else
84#define __IGNORE_sendfile
85#define __IGNORE_ftruncate
86#define __IGNORE_truncate
87#define __IGNORE_stat
88#define __IGNORE_lstat
89#define __IGNORE_fstat
90#define __IGNORE_fcntl
91#define __IGNORE_fadvise64
92#define __IGNORE_newfstatat
93#define __IGNORE_fstatfs
94#define __IGNORE_statfs
95#define __IGNORE_lseek
96#define __IGNORE_mmap
30#endif 97#endif
31 98
32/* i386-specific or historical system calls */ 99/* i386-specific or historical system calls */
@@ -44,7 +111,6 @@ cat << EOF
44#define __IGNORE_idle 111#define __IGNORE_idle
45#define __IGNORE_modify_ldt 112#define __IGNORE_modify_ldt
46#define __IGNORE_ugetrlimit 113#define __IGNORE_ugetrlimit
47#define __IGNORE_mmap2
48#define __IGNORE_vm86 114#define __IGNORE_vm86
49#define __IGNORE_vm86old 115#define __IGNORE_vm86old
50#define __IGNORE_set_thread_area 116#define __IGNORE_set_thread_area
@@ -55,7 +121,6 @@ cat << EOF
55#define __IGNORE_oldlstat 121#define __IGNORE_oldlstat
56#define __IGNORE_oldolduname 122#define __IGNORE_oldolduname
57#define __IGNORE_olduname 123#define __IGNORE_olduname
58#define __IGNORE_umount2
59#define __IGNORE_umount 124#define __IGNORE_umount
60#define __IGNORE_waitpid 125#define __IGNORE_waitpid
61#define __IGNORE_stime 126#define __IGNORE_stime
@@ -75,9 +140,12 @@ cat << EOF
75#define __IGNORE__llseek 140#define __IGNORE__llseek
76#define __IGNORE__newselect 141#define __IGNORE__newselect
77#define __IGNORE_create_module 142#define __IGNORE_create_module
78#define __IGNORE_delete_module
79#define __IGNORE_query_module 143#define __IGNORE_query_module
80#define __IGNORE_get_kernel_syms 144#define __IGNORE_get_kernel_syms
145#define __IGNORE_sysfs
146#define __IGNORE_uselib
147#define __IGNORE__sysctl
148
81/* ... including the "new" 32-bit uid syscalls */ 149/* ... including the "new" 32-bit uid syscalls */
82#define __IGNORE_lchown32 150#define __IGNORE_lchown32
83#define __IGNORE_getuid32 151#define __IGNORE_getuid32
@@ -99,6 +167,24 @@ cat << EOF
99#define __IGNORE_setfsuid32 167#define __IGNORE_setfsuid32
100#define __IGNORE_setfsgid32 168#define __IGNORE_setfsgid32
101 169
170/* these can be expressed using other calls */
171#define __IGNORE_alarm /* setitimer */
172#define __IGNORE_creat /* open */
173#define __IGNORE_fork /* clone */
174#define __IGNORE_futimesat /* utimensat */
175#define __IGNORE_getpgrp /* getpgid */
176#define __IGNORE_getdents /* getdents64 */
177#define __IGNORE_pause /* sigsuspend */
178#define __IGNORE_poll /* ppoll */
179#define __IGNORE_select /* pselect6 */
180#define __IGNORE_epoll_wait /* epoll_pwait */
181#define __IGNORE_time /* gettimeofday */
182#define __IGNORE_uname /* newuname */
183#define __IGNORE_ustat /* statfs */
184#define __IGNORE_utime /* utimes */
185#define __IGNORE_vfork /* clone */
186#define __IGNORE_wait4 /* waitid */
187
102/* sync_file_range had a stupid ABI. Allow sync_file_range2 instead */ 188/* sync_file_range had a stupid ABI. Allow sync_file_range2 instead */
103#ifdef __NR_sync_file_range2 189#ifdef __NR_sync_file_range2
104#define __IGNORE_sync_file_range 190#define __IGNORE_sync_file_range