Annotation of /trunk/mkinitrd-magellan/klibc/usr/klibc/SYSCALLS.def
Parent Directory | Revision Log
Revision 1122 -
(hide annotations)
(download)
Wed Aug 18 21:11:40 2010 UTC (13 years, 9 months ago) by niro
File size: 9650 byte(s)
Wed Aug 18 21:11:40 2010 UTC (13 years, 9 months ago) by niro
File size: 9650 byte(s)
-updated to klibc-1.5.19
1 | niro | 532 | /* -*- c -*- |
2 | * | ||
3 | * This is a list of system calls we invoke "directly". These | ||
4 | * are generated into syscall stubs in their own files, so the | ||
5 | * linker can do its job properly. | ||
6 | * | ||
7 | * The full description of a line is: | ||
8 | * [<[?][!]arch,...>] type [sysname,...][@systype][::funcname](args); | ||
9 | * | ||
10 | * ? means only instantiate this system call if present in asm/unistd.h | ||
11 | */ | ||
12 | |||
13 | #include <asm/unistd.h> | ||
14 | #include <klibc/sysconfig.h> | ||
15 | #include <bitsize.h> | ||
16 | |||
17 | /* | ||
18 | * Process-related syscalls | ||
19 | */ | ||
20 | void _exit,exit::_exit(int); | ||
21 | <?!ia64> pid_t clone::__clone(unsigned long, void *); | ||
22 | <?ia64> pid_t clone::__clone2(unsigned long, void *, void *); | ||
23 | # if ! _KLIBC_NO_MMU | ||
24 | <!sparc,sparc64,ia64> pid_t fork(); | ||
25 | <sparc,sparc64> pid_t fork@forkish(); | ||
26 | #endif | ||
27 | #if _KLIBC_REAL_VFORK | ||
28 | /* | ||
29 | * A lot of architectures need architecture-specific vfork | ||
30 | * stubs, due to the no-stack requirement. These are the | ||
31 | * architectures which do not. | ||
32 | */ | ||
33 | <alpha,m32r,ppc,ppc64,sh,s390,s390x> pid_t vfork(); | ||
34 | <sparc,sparc64> pid_t vfork@forkish(); | ||
35 | #endif | ||
36 | <!alpha> pid_t getpid(); | ||
37 | <alpha> pid_t getxpid@dual0::getpid(); | ||
38 | int setpgid(pid_t, pid_t); | ||
39 | pid_t getpgid(pid_t); | ||
40 | <!alpha> pid_t getppid(); | ||
41 | <alpha> pid_t getxpid@dual1::getppid(); | ||
42 | pid_t setsid(); | ||
43 | pid_t getsid(pid_t); | ||
44 | pid_t wait4(pid_t, int *, int, struct rusage *); | ||
45 | int execve(const char *, char * const *, char * const *); | ||
46 | <?> int nice(int); | ||
47 | <alpha,ia64> int getpriority(int, int); | ||
48 | <!alpha,ia64> int getpriority::__getpriority(int, int); | ||
49 | int setpriority(int, int, int); | ||
50 | niro | 1122 | int getrusage(int, struct rusage *); |
51 | niro | 532 | int sched_setscheduler(pid_t, int, const struct sched_param *); |
52 | int sched_yield(); | ||
53 | <i386> int prctl@varadic(int, unsigned long, unsigned long, unsigned long, unsigned long); | ||
54 | <!i386> int prctl(int, unsigned long, unsigned long, unsigned long, unsigned long); | ||
55 | |||
56 | /* | ||
57 | * User and group IDs | ||
58 | */ | ||
59 | int setuid32,setuid::setuid(uid_t); | ||
60 | int setgid32,setgid::setgid(gid_t); | ||
61 | <!alpha> uid_t getuid32,getuid::getuid(); | ||
62 | <alpha> uid_t getxuid@dual0::getuid(); | ||
63 | <!alpha> gid_t getgid32,getgid::getgid(); | ||
64 | <alpha> gid_t getxgid@dual0::getgid(); | ||
65 | <!alpha> uid_t geteuid32,geteuid::geteuid(); | ||
66 | <alpha> uid_t getxuid@dual1::geteuid(); | ||
67 | <!alpha> gid_t getegid32,getegid::getegid(); | ||
68 | <alpha> gid_t getxgid@dual1::getegid(); | ||
69 | int getgroups32,getgroups::getgroups(int, gid_t *); | ||
70 | int setgroups32,setgroups::setgroups(size_t, const gid_t *); | ||
71 | int setreuid32,setreuid::setreuid(uid_t, uid_t); | ||
72 | int setregid32,setregid::setregid(gid_t, gid_t); | ||
73 | int setfsuid32,setfsuid::setfsuid(uid_t); | ||
74 | int setfsgid32,setfsgid::setfsgid(gid_t); | ||
75 | int setresuid32,setresuid::setresuid(int, uid_t, uid_t, uid_t); | ||
76 | |||
77 | /* | ||
78 | * Filesystem-related system calls | ||
79 | */ | ||
80 | int mount(const char *, const char *, const char *, unsigned long, const void *); | ||
81 | <!alpha,ia64> int umount2(const char *, int); | ||
82 | <alpha,ia64> int umount::umount2(const char *, int); | ||
83 | <?> int pivot_root(const char *, const char *); | ||
84 | int sync(); | ||
85 | #ifdef __NR_statfs64 | ||
86 | int statfs64::__statfs64(const char *, size_t, struct statfs *); | ||
87 | #else | ||
88 | int statfs(const char *, struct statfs *); | ||
89 | #endif | ||
90 | #ifdef __NR_fstatfs64 | ||
91 | int fstatfs64::__fstatfs64(int, size_t, struct statfs *); | ||
92 | #else | ||
93 | int fstatfs(int, struct statfs *); | ||
94 | #endif | ||
95 | int swapon(const char *, int); | ||
96 | int swapoff(const char *); | ||
97 | |||
98 | /* | ||
99 | * Inode-related system calls | ||
100 | */ | ||
101 | int access(const char *, int); | ||
102 | int link(const char *, const char *); | ||
103 | <?> int linkat(int, const char *, int, const char *); | ||
104 | int unlink(const char *); | ||
105 | <?> int unlinkat(int, const char *); | ||
106 | int chdir(const char *); | ||
107 | int fchdir(int); | ||
108 | int rename(const char *, const char *); | ||
109 | <?> int renameat(int, const char *, int, const char *); | ||
110 | int mknod(const char *, mode_t, dev_t); | ||
111 | <?> int mknodat(int, const char *, const char *, mode_t, dev_t); | ||
112 | int chmod(const char *, mode_t); | ||
113 | int fchmod(int, mode_t); | ||
114 | <?> int fchmodat(int, const char *, mode_t); | ||
115 | int mkdir(const char *, mode_t); | ||
116 | <?> int mkdirat(int, const char *, const char *, mode_t); | ||
117 | int rmdir(const char *); | ||
118 | niro | 1122 | <!alpha,ia64,mips,mips64,sh,sparc,sparc64> int pipe(int *); |
119 | niro | 532 | mode_t umask(mode_t); |
120 | int chroot(const char *); | ||
121 | int symlink(const char *, const char *); | ||
122 | <?> int symlinkat(const char *, int, const char *); | ||
123 | int readlink(const char *, char *, size_t); | ||
124 | <?> int readlinkat(int, const char *, char *, int); | ||
125 | <!ppc64> int stat64,stat::stat(const char *, struct stat *); | ||
126 | <!ppc64> int lstat64,lstat::lstat(const char *, struct stat *); | ||
127 | <!ppc64> int fstat64,fstat::fstat(int, struct stat *); | ||
128 | <ppc64> int stat::stat(const char *, struct stat *); | ||
129 | <ppc64> int lstat::lstat(const char *, struct stat *); | ||
130 | <ppc64> int fstat::fstat(int, struct stat *); | ||
131 | /* XXX: Is this right?! */ | ||
132 | <?> int fstatat64,newstatat,fstatat::fstatat(int, const char *, struct stat *, int); | ||
133 | int getdents64,getdents::getdents(unsigned int, struct dirent *, unsigned int); | ||
134 | int chown32,chown::chown(const char *, uid_t, gid_t); | ||
135 | int fchown32,fchown::fchown(int, uid_t, gid_t); | ||
136 | <?> int fchownat(int, const char *, uid_t, gid_t, int); | ||
137 | int lchown32,lchown::lchown(const char *, uid_t, gid_t); | ||
138 | int getcwd::__getcwd(char *, size_t); | ||
139 | <?> int utime(const char *, const struct utimbuf *); | ||
140 | <?> int utimes(const char *, const struct timeval *); | ||
141 | <?> int futimesat(int, const char *, const struct timeval *); | ||
142 | <?> int inotify_init(); | ||
143 | <?> int inotify_add_watch(int, const char *, __u32); | ||
144 | <?> int inotify_rm_watch(int, __u32); | ||
145 | |||
146 | /* | ||
147 | * I/O operations | ||
148 | */ | ||
149 | <!i386,64> int open::__open(const char *, int, mode_t); | ||
150 | <?!i386,64> int openat::__openat(int, const char *, int, mode_t); | ||
151 | <64> int open(const char *, int, mode_t); | ||
152 | ssize_t read(int, void *, size_t); | ||
153 | ssize_t write(int, const void *, size_t); | ||
154 | int close(int); | ||
155 | <64> off_t lseek(int, off_t, int); | ||
156 | <32> int _llseek::__llseek(int, unsigned long, unsigned long, off_t *, int); | ||
157 | int dup(int); | ||
158 | int dup2(int, int); | ||
159 | <i386> int fcntl64@varadic::fcntl(int, int, unsigned long); | ||
160 | <ppc64> int fcntl(int, int, unsigned long); | ||
161 | <!i386,ppc64> int fcntl64,fcntl::fcntl(int, int, unsigned long); | ||
162 | int ioctl(int, int, void *); | ||
163 | int flock(int, int); | ||
164 | int _newselect,select::select(int, fd_set *, fd_set *, fd_set *, struct timeval *); | ||
165 | #if defined(__NR_pselect) && !_KLIBC_USE_RT_SIG | ||
166 | int pselect(int, fd_set *, fd_set *, fd_set *, const struct timespec *, const sigset_t *); | ||
167 | #elif defined(__NR_pselect7) | ||
168 | int pselect7::__pselect7(int, fd_set *, fd_set *, fd_set *, struct timespec *, const sigset_t *, size_t); | ||
169 | #elif defined(__NR_pselect6) | ||
170 | int pselect6::__pselect6(int, fd_set *, fd_set *, fd_set *, struct timespec *, const struct __pselect6 *); | ||
171 | #endif | ||
172 | int poll(struct pollfd *, nfds_t, long); | ||
173 | <?> int ppoll::__ppoll(struct pollfd *, nfds_t, struct timespec *, const sigset_t *, size_t); | ||
174 | int fsync(int); | ||
175 | int fdatasync,fsync::fdatasync(int); | ||
176 | int readv(int, const struct iovec *, int); | ||
177 | int writev(int, const struct iovec *, int); | ||
178 | int ftruncate64,ftruncate::ftruncate(int, off_t); | ||
179 | ssize_t pread64,pread::pread(int, void *, size_t, off_t); | ||
180 | ssize_t pwrite64,pwrite::pwrite(int, void *, size_t, off_t); | ||
181 | int sync_file_range,fdatasync,fsync::sync_file_range(int, off_t, off_t, unsigned int); | ||
182 | <?> int splice(int, off_t *, int, off_t *, size_t, unsigned int); | ||
183 | <?> int tee(int, int, size_t, unsigned int); | ||
184 | ssize_t sendfile64,sendfile::sendfile(int, int, off_t *, size_t, off_t); | ||
185 | |||
186 | /* | ||
187 | * Signal operations | ||
188 | * | ||
189 | * We really should get rid of the non-rt_* of these, but that takes | ||
190 | * sanitizing <signal.h> for all architectures, sigh. See <klibc/config.h>. | ||
191 | */ | ||
192 | #if _KLIBC_USE_RT_SIG | ||
193 | <!sparc,sparc64> int rt_sigaction::__rt_sigaction(int, const struct sigaction *, struct sigaction *, size_t); | ||
194 | <sparc,sparc64> int rt_sigaction::__rt_sigaction(int, const struct sigaction *, struct sigaction *, void *, size_t); | ||
195 | int rt_sigsuspend::__rt_sigsuspend(const sigset_t *, size_t); | ||
196 | int rt_sigpending::__rt_sigpending(sigset_t *, size_t); | ||
197 | int rt_sigprocmask::__rt_sigprocmask(int, const sigset_t *, sigset_t *, size_t); | ||
198 | <sparc64> void rt_sigreturn::__sigreturn(); | ||
199 | #else | ||
200 | int sigaction::__sigaction(int, const struct sigaction *, struct sigaction *); | ||
201 | int sigsuspend(const sigset_t *); | ||
202 | int sigpending(sigset_t *); | ||
203 | int sigprocmask(int, const sigset_t *, sigset_t *); | ||
204 | #endif | ||
205 | int kill(pid_t, int); | ||
206 | <?> unsigned int alarm(unsigned int); | ||
207 | int getitimer(int, struct itimerval *); | ||
208 | int setitimer(int, const struct itimerval *, struct itimerval *); | ||
209 | |||
210 | /* | ||
211 | * Time-related system calls | ||
212 | */ | ||
213 | <?> time_t time(time_t *); | ||
214 | clock_t times(struct tms *); | ||
215 | int gettimeofday(struct timeval *, struct timezone *); | ||
216 | int settimeofday(const struct timeval *, const struct timezone *); | ||
217 | int nanosleep(const struct timespec *, struct timespec *); | ||
218 | <?> int pause(); | ||
219 | |||
220 | /* | ||
221 | * Memory | ||
222 | */ | ||
223 | <?> void * brk::__brk(void *); | ||
224 | int munmap(void *, size_t); | ||
225 | void * mremap(void *, size_t, size_t, unsigned long); | ||
226 | int msync(const void *, size_t, int); | ||
227 | int mprotect(const void *, size_t, int); | ||
228 | # if _KLIBC_USE_MMAP2 | ||
229 | <!s390> void * mmap2::__mmap2(void *, size_t, int, int, int, long); | ||
230 | # else | ||
231 | <!s390x> void * mmap(void *, size_t, int, int, int, long); | ||
232 | int mlockall(int); | ||
233 | int munlockall(); | ||
234 | int mlock(const void *, size_t); | ||
235 | int munlock(const void *, size_t); | ||
236 | #endif | ||
237 | |||
238 | /* | ||
239 | * System stuff | ||
240 | */ | ||
241 | int uname(struct utsname *); | ||
242 | int setdomainname(const char *, size_t); | ||
243 | int sethostname(const char *, size_t); | ||
244 | long init_module(void *, unsigned long, const char *); | ||
245 | long delete_module(const char *, unsigned int); | ||
246 | int reboot::__reboot(int, int, int, void *); | ||
247 | int syslog::klogctl(int, char *, int); | ||
248 | int sysinfo(struct sysinfo *); | ||
249 | |||
250 | /* | ||
251 | * Low-level I/O (generally architecture-specific); | ||
252 | */ | ||
253 | <i386,x86_64> int iopl(int); | ||
254 | <i386,x86_64> int ioperm(unsigned long, unsigned long, int); | ||
255 | <i386> int vm86(struct vm86_struct *); | ||
256 | |||
257 | /* | ||
258 | * Most architectures have the socket interfaces using regular | ||
259 | * system calls. | ||
260 | */ | ||
261 | <?!i386> long socketcall::__socketcall(int, const unsigned long *); | ||
262 | niro | 1122 | #if ! _KLIBC_SYS_SOCKETCALL |
263 | niro | 532 | #include "SOCKETCALLS.def" |
264 | niro | 1122 | #endif |