Correct proper nouns in the Linuxulator
- Capitalize Linux - Spell FreeBSD out in full - Address some style(9) on changed lines Sponsored by: Turing Robotic Industries Inc.
This commit is contained in:
parent
6619d9fb70
commit
eae594f7d5
@ -44,15 +44,15 @@ __FBSDID("$FreeBSD$");
|
||||
LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
|
||||
|
||||
UNIMPLEMENTED(afs_syscall);
|
||||
UNIMPLEMENTED(create_module); /* added in linux 1.0 removed in 2.6 */
|
||||
UNIMPLEMENTED(create_module); /* Added in Linux 1.0 removed in 2.6. */
|
||||
UNIMPLEMENTED(epoll_ctl_old);
|
||||
UNIMPLEMENTED(epoll_wait_old);
|
||||
UNIMPLEMENTED(get_kernel_syms); /* added in linux 1.0 removed in 2.6 */
|
||||
UNIMPLEMENTED(get_kernel_syms); /* Added in Linux 1.0 removed in 2.6. */
|
||||
UNIMPLEMENTED(get_thread_area);
|
||||
UNIMPLEMENTED(getpmsg);
|
||||
UNIMPLEMENTED(nfsservctl); /* added in linux 2.2 removed in 3.1 */
|
||||
UNIMPLEMENTED(nfsservctl); /* Added in Linux 2.2 removed in 3.1. */
|
||||
UNIMPLEMENTED(putpmsg);
|
||||
UNIMPLEMENTED(query_module); /* added in linux 2.2 removed in 2.6 */
|
||||
UNIMPLEMENTED(query_module); /* Added in Linux 2.2 removed in 2.6. */
|
||||
UNIMPLEMENTED(security);
|
||||
UNIMPLEMENTED(set_thread_area);
|
||||
UNIMPLEMENTED(tuxcall);
|
||||
@ -84,74 +84,74 @@ DUMMY(mq_timedreceive);
|
||||
DUMMY(mq_notify);
|
||||
DUMMY(mq_getsetattr);
|
||||
DUMMY(kexec_load);
|
||||
/* linux 2.6.11: */
|
||||
/* Linux 2.6.11: */
|
||||
DUMMY(add_key);
|
||||
DUMMY(request_key);
|
||||
DUMMY(keyctl);
|
||||
/* linux 2.6.13: */
|
||||
/* Linux 2.6.13: */
|
||||
DUMMY(ioprio_set);
|
||||
DUMMY(ioprio_get);
|
||||
DUMMY(inotify_init);
|
||||
DUMMY(inotify_add_watch);
|
||||
DUMMY(inotify_rm_watch);
|
||||
/* linux 2.6.16: */
|
||||
/* Linux 2.6.16: */
|
||||
DUMMY(migrate_pages);
|
||||
DUMMY(unshare);
|
||||
/* linux 2.6.17: */
|
||||
/* Linux 2.6.17: */
|
||||
DUMMY(splice);
|
||||
DUMMY(tee);
|
||||
DUMMY(sync_file_range);
|
||||
DUMMY(vmsplice);
|
||||
/* linux 2.6.18: */
|
||||
/* Linux 2.6.18: */
|
||||
DUMMY(move_pages);
|
||||
/* linux 2.6.22: */
|
||||
/* Linux 2.6.22: */
|
||||
DUMMY(signalfd);
|
||||
/* linux 2.6.27: */
|
||||
/* Linux 2.6.27: */
|
||||
DUMMY(signalfd4);
|
||||
DUMMY(inotify_init1);
|
||||
/* linux 2.6.31: */
|
||||
/* Linux 2.6.31: */
|
||||
DUMMY(perf_event_open);
|
||||
/* linux 2.6.38: */
|
||||
/* Linux 2.6.38: */
|
||||
DUMMY(fanotify_init);
|
||||
DUMMY(fanotify_mark);
|
||||
/* linux 2.6.39: */
|
||||
/* Linux 2.6.39: */
|
||||
DUMMY(name_to_handle_at);
|
||||
DUMMY(open_by_handle_at);
|
||||
DUMMY(clock_adjtime);
|
||||
/* linux 3.0: */
|
||||
/* Linux 3.0: */
|
||||
DUMMY(setns);
|
||||
DUMMY(getcpu);
|
||||
/* linux 3.2: */
|
||||
/* Linux 3.2: */
|
||||
DUMMY(process_vm_readv);
|
||||
DUMMY(process_vm_writev);
|
||||
/* linux 3.5: */
|
||||
/* Linux 3.5: */
|
||||
DUMMY(kcmp);
|
||||
/* linux 3.8: */
|
||||
/* Linux 3.8: */
|
||||
DUMMY(finit_module);
|
||||
DUMMY(sched_setattr);
|
||||
DUMMY(sched_getattr);
|
||||
/* linux 3.14: */
|
||||
/* Linux 3.14: */
|
||||
DUMMY(renameat2);
|
||||
/* linux 3.15: */
|
||||
/* Linux 3.15: */
|
||||
DUMMY(seccomp);
|
||||
DUMMY(memfd_create);
|
||||
DUMMY(kexec_file_load);
|
||||
/* linux 3.18: */
|
||||
/* Linux 3.18: */
|
||||
DUMMY(bpf);
|
||||
/* linux 3.19: */
|
||||
/* Linux 3.19: */
|
||||
DUMMY(execveat);
|
||||
/* linux 4.2: */
|
||||
/* Linux 4.2: */
|
||||
DUMMY(userfaultfd);
|
||||
/* linux 4.3: */
|
||||
/* Linux 4.3: */
|
||||
DUMMY(membarrier);
|
||||
/* linux 4.4: */
|
||||
/* Linux 4.4: */
|
||||
DUMMY(mlock2);
|
||||
/* linux 4.5: */
|
||||
/* Linux 4.5: */
|
||||
DUMMY(copy_file_range);
|
||||
/* linux 4.6: */
|
||||
/* Linux 4.6: */
|
||||
DUMMY(preadv2);
|
||||
DUMMY(pwritev2);
|
||||
/* linux 4.8: */
|
||||
/* Linux 4.8: */
|
||||
DUMMY(pkey_mprotect);
|
||||
DUMMY(pkey_alloc);
|
||||
DUMMY(pkey_free);
|
||||
|
@ -705,9 +705,9 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
|
||||
}
|
||||
|
||||
/*
|
||||
* If a linux binary is exec'ing something, try this image activator
|
||||
* If a Linux binary is exec'ing something, try this image activator
|
||||
* first. We override standard shell script execution in order to
|
||||
* be able to modify the interpreter path. We only do this if a linux
|
||||
* be able to modify the interpreter path. We only do this if a Linux
|
||||
* binary is doing the exec, so we do not create an EXEC module for it.
|
||||
*/
|
||||
static int exec_linux_imgact_try(struct image_params *iparams);
|
||||
@ -720,9 +720,9 @@ exec_linux_imgact_try(struct image_params *imgp)
|
||||
int error = -1;
|
||||
|
||||
/*
|
||||
* The interpreter for shell scripts run from a linux binary needs
|
||||
* The interpreter for shell scripts run from a Linux binary needs
|
||||
* to be located in /compat/linux if possible in order to recursively
|
||||
* maintain linux path emulation.
|
||||
* maintain Linux path emulation.
|
||||
*/
|
||||
if (((const short *)head)[0] == SHELLMAGIC) {
|
||||
/*
|
||||
@ -881,7 +881,7 @@ linux_trans_osrel(const Elf_Note *note, int32_t *osrel)
|
||||
return (FALSE);
|
||||
|
||||
/*
|
||||
* For linux we encode osrel as follows (see linux_mib.c):
|
||||
* For Linux we encode osrel as follows (see linux_mib.c):
|
||||
* VVVMMMIII (version, major, minor), see linux_mib.c.
|
||||
*/
|
||||
*osrel = desc[1] * 1000000 + desc[2] * 1000 + desc[3];
|
||||
|
@ -487,7 +487,7 @@
|
||||
struct l_itimerspec *old_value); }
|
||||
288 AUE_ACCEPT STD { int linux_accept4(l_int s, l_uintptr_t addr, \
|
||||
l_uintptr_t namelen, int flags); }
|
||||
; linux 2.6.27:
|
||||
; Linux 2.6.27:
|
||||
289 AUE_NULL STD { int linux_signalfd4(void); }
|
||||
290 AUE_NULL STD { int linux_eventfd2(l_uint initval, l_int flags); }
|
||||
291 AUE_NULL STD { int linux_epoll_create1(l_int flags); }
|
||||
@ -495,41 +495,41 @@
|
||||
l_int newfd, l_int flags); }
|
||||
293 AUE_NULL STD { int linux_pipe2(l_int *pipefds, l_int flags); }
|
||||
294 AUE_NULL STD { int linux_inotify_init1(l_int flags); }
|
||||
; linux 2.6.30:
|
||||
; Linux 2.6.30:
|
||||
295 AUE_NULL STD { int linux_preadv(l_ulong fd, \
|
||||
struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h); }
|
||||
296 AUE_NULL STD { int linux_pwritev(l_ulong fd, \
|
||||
struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h); }
|
||||
; linux 2.6.31:
|
||||
; Linux 2.6.31:
|
||||
297 AUE_NULL STD { int linux_rt_tgsigqueueinfo(l_pid_t tgid, \
|
||||
l_pid_t tid, l_int sig, l_siginfo_t *uinfo); }
|
||||
298 AUE_NULL STD { int linux_perf_event_open(void); }
|
||||
; linux 2.6.33:
|
||||
; Linux 2.6.33:
|
||||
299 AUE_NULL STD { int linux_recvmmsg(l_int s, \
|
||||
struct l_mmsghdr *msg, l_uint vlen, \
|
||||
l_uint flags, struct l_timespec *timeout); }
|
||||
; linux 2.6.37:
|
||||
; Linux 2.6.37:
|
||||
300 AUE_NULL STD { int linux_fanotify_init(void); }
|
||||
301 AUE_NULL STD { int linux_fanotify_mark(void); }
|
||||
; linux 2.6.36:
|
||||
; Linux 2.6.36:
|
||||
302 AUE_NULL STD { int linux_prlimit64(l_pid_t pid, l_uint resource, \
|
||||
struct rlimit *new, struct rlimit *old); }
|
||||
; linux 2.6.39 (glibc 2.14):
|
||||
; Linux 2.6.39 (glibc 2.14):
|
||||
303 AUE_NULL STD { int linux_name_to_handle_at(void); }
|
||||
304 AUE_NULL STD { int linux_open_by_handle_at(void); }
|
||||
305 AUE_NULL STD { int linux_clock_adjtime(void); }
|
||||
306 AUE_SYNC STD { int linux_syncfs(l_int fd); }
|
||||
; linux 3.0 (glibc 2.14):
|
||||
; Linux 3.0 (glibc 2.14):
|
||||
307 AUE_NULL STD { int linux_sendmmsg(l_int s, \
|
||||
struct l_mmsghdr *msg, l_uint vlen, \
|
||||
l_uint flags); }
|
||||
308 AUE_NULL STD { int linux_setns(l_int fd, l_int nstype); }
|
||||
; linux 2.6.19 (no glibc wrapper):
|
||||
; Linux 2.6.19 (no glibc wrapper):
|
||||
309 AUE_NULL STD { int linux_getcpu(l_uint *cpu, l_uint *node, \
|
||||
void *cache); }
|
||||
; linux 3.2 (glibc 2.15):
|
||||
; Linux 3.2 (glibc 2.15):
|
||||
310 AUE_NULL STD { int linux_process_vm_readv(l_pid_t pid, \
|
||||
const struct iovec *lvec, l_ulong liovcnt, \
|
||||
const struct iovec *rvec, l_ulong riovcnt, \
|
||||
@ -538,22 +538,22 @@
|
||||
const struct iovec *lvec, l_ulong liovcnt, \
|
||||
const struct iovec *rvec, l_ulong riovcnt, \
|
||||
l_ulong flags); }
|
||||
; linux 3.5 (no glibc wrapper):
|
||||
; Linux 3.5 (no glibc wrapper):
|
||||
312 AUE_NULL STD { int linux_kcmp(l_pid_t pid1, l_pid_t pid2, \
|
||||
l_int type, l_ulong idx1, l_ulong idx); }
|
||||
; linux 3.8 (no glibc wrapper):
|
||||
; Linux 3.8 (no glibc wrapper):
|
||||
313 AUE_NULL STD { int linux_finit_module(l_int fd, \
|
||||
const char *uargs, l_int flags); }
|
||||
; linux 3.14:
|
||||
; Linux 3.14:
|
||||
314 AUE_NULL STD { int linux_sched_setattr(l_pid_t pid, \
|
||||
void *attr, l_uint flags); }
|
||||
315 AUE_NULL STD { int linux_sched_getattr(l_pid_t pid, \
|
||||
void *attr, l_uint size, l_uint flags); }
|
||||
; linux 3.15:
|
||||
; Linux 3.15:
|
||||
316 AUE_NULL STD { int linux_renameat2(l_int oldfd, \
|
||||
const char *oldname, l_int newfd, \
|
||||
const char *newname, unsigned int flags); }
|
||||
; linux 3.17:
|
||||
; Linux 3.17:
|
||||
317 AUE_NULL STD { int linux_seccomp(l_uint op, l_uint flags, \
|
||||
const char *uargs); }
|
||||
318 AUE_NULL STD { int linux_getrandom(char *buf, \
|
||||
@ -563,33 +563,33 @@
|
||||
320 AUE_NULL STD { int linux_kexec_file_load(l_int kernel_fd, \
|
||||
l_int initrd_fd, l_ulong cmdline_len, \
|
||||
const char *cmdline_ptr, l_ulong flags); }
|
||||
; linux 3.18:
|
||||
; Linux 3.18:
|
||||
321 AUE_NULL STD { int linux_bpf(l_int cmd, void *attr, \
|
||||
l_uint size); }
|
||||
; linux 3.19:
|
||||
; Linux 3.19:
|
||||
322 AUE_NULL STD { int linux_execveat(l_int dfd, \
|
||||
const char *filename, const char **argv, \
|
||||
const char **envp, l_int flags); }
|
||||
; linux 4.2:
|
||||
; Linux 4.2:
|
||||
323 AUE_NULL STD { int linux_userfaultfd(l_int flags); }
|
||||
; linux 4.3:
|
||||
; Linux 4.3:
|
||||
324 AUE_NULL STD { int linux_membarrier(l_int cmd, l_int flags); }
|
||||
; linux 4.4:
|
||||
; Linux 4.4:
|
||||
325 AUE_NULL STD { int linux_mlock2(l_ulong start, l_size_t len, \
|
||||
l_int flags); }
|
||||
; linux 4.5:
|
||||
; Linux 4.5:
|
||||
326 AUE_NULL STD { int linux_copy_file_range(l_int fd_in, \
|
||||
l_loff_t *off_in, l_int fd_out, \
|
||||
l_loff_t *off_out, l_size_t len, \
|
||||
l_uint flags); }
|
||||
; linux 4.6:
|
||||
; Linux 4.6:
|
||||
327 AUE_NULL STD { int linux_preadv2(l_ulong fd, \
|
||||
const struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h, l_int flags); }
|
||||
328 AUE_NULL STD { int linux_pwritev2(l_ulong fd, \
|
||||
const struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h, l_int flags); }
|
||||
; linux 4.8:
|
||||
; Linux 4.8:
|
||||
329 AUE_NULL STD { int linux_pkey_mprotect(l_ulong start, \
|
||||
l_size_t len, l_ulong prot, l_int pkey); }
|
||||
330 AUE_NULL STD { int linux_pkey_alloc(l_ulong flags, \
|
||||
|
@ -1,3 +1,4 @@
|
||||
sys/sys/sysent.2
|
||||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
@ -47,19 +48,19 @@ LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
|
||||
|
||||
UNIMPLEMENTED(afs_syscall);
|
||||
UNIMPLEMENTED(break);
|
||||
UNIMPLEMENTED(create_module); /* added in linux 1.0 removed in 2.6 */
|
||||
UNIMPLEMENTED(create_module); /* Added in Linux 1.0 removed in 2.6. */
|
||||
UNIMPLEMENTED(ftime);
|
||||
UNIMPLEMENTED(get_kernel_syms); /* added in linux 1.0 removed in 2.6 */
|
||||
UNIMPLEMENTED(get_kernel_syms); /* Added in Linux 1.0 removed in 2.6. */
|
||||
UNIMPLEMENTED(getpmsg);
|
||||
UNIMPLEMENTED(gtty);
|
||||
UNIMPLEMENTED(stty);
|
||||
UNIMPLEMENTED(lock);
|
||||
UNIMPLEMENTED(mpx);
|
||||
UNIMPLEMENTED(nfsservctl); /* added in linux 2.2 removed in 3.1 */
|
||||
UNIMPLEMENTED(nfsservctl); /* Added in Linux 2.2 removed in 3.1. */
|
||||
UNIMPLEMENTED(prof);
|
||||
UNIMPLEMENTED(profil);
|
||||
UNIMPLEMENTED(putpmsg);
|
||||
UNIMPLEMENTED(query_module); /* added in linux 2.2 removed in 2.6 */
|
||||
UNIMPLEMENTED(query_module); /* Added in Linux 2.2 removed in 2.6. */
|
||||
UNIMPLEMENTED(ulimit);
|
||||
UNIMPLEMENTED(vserver);
|
||||
|
||||
@ -92,74 +93,74 @@ DUMMY(mq_timedreceive);
|
||||
DUMMY(mq_notify);
|
||||
DUMMY(mq_getsetattr);
|
||||
DUMMY(kexec_load);
|
||||
/* linux 2.6.11: */
|
||||
/* Linux 2.6.11: */
|
||||
DUMMY(add_key);
|
||||
DUMMY(request_key);
|
||||
DUMMY(keyctl);
|
||||
/* linux 2.6.13: */
|
||||
/* Linux 2.6.13: */
|
||||
DUMMY(ioprio_set);
|
||||
DUMMY(ioprio_get);
|
||||
DUMMY(inotify_init);
|
||||
DUMMY(inotify_add_watch);
|
||||
DUMMY(inotify_rm_watch);
|
||||
/* linux 2.6.16: */
|
||||
/* Linux 2.6.16: */
|
||||
DUMMY(migrate_pages);
|
||||
DUMMY(unshare);
|
||||
/* linux 2.6.17: */
|
||||
/* Linux 2.6.17: */
|
||||
DUMMY(splice);
|
||||
DUMMY(sync_file_range);
|
||||
DUMMY(tee);
|
||||
DUMMY(vmsplice);
|
||||
/* linux 2.6.18: */
|
||||
/* Linux 2.6.18: */
|
||||
DUMMY(move_pages);
|
||||
/* linux 2.6.19: */
|
||||
/* Linux 2.6.19: */
|
||||
DUMMY(getcpu);
|
||||
/* linux 2.6.22: */
|
||||
/* Linux 2.6.22: */
|
||||
DUMMY(signalfd);
|
||||
/* linux 2.6.27: */
|
||||
/* Linux 2.6.27: */
|
||||
DUMMY(signalfd4);
|
||||
DUMMY(inotify_init1);
|
||||
/* linux 2.6.31: */
|
||||
/* Linux 2.6.31: */
|
||||
DUMMY(perf_event_open);
|
||||
/* linux 2.6.33: */
|
||||
/* Linux 2.6.33: */
|
||||
DUMMY(fanotify_init);
|
||||
DUMMY(fanotify_mark);
|
||||
/* linux 2.6.39: */
|
||||
/* Linux 2.6.39: */
|
||||
DUMMY(name_to_handle_at);
|
||||
DUMMY(open_by_handle_at);
|
||||
DUMMY(clock_adjtime);
|
||||
/* linux 3.0: */
|
||||
/* Linux 3.0: */
|
||||
DUMMY(setns);
|
||||
/* linux 3.2: */
|
||||
/* Linux 3.2: */
|
||||
DUMMY(process_vm_readv);
|
||||
DUMMY(process_vm_writev);
|
||||
/* linux 3.5: */
|
||||
/* Linux 3.5: */
|
||||
DUMMY(kcmp);
|
||||
/* linux 3.8: */
|
||||
/* Linux 3.8: */
|
||||
DUMMY(finit_module);
|
||||
DUMMY(sched_setattr);
|
||||
DUMMY(sched_getattr);
|
||||
/* linux 3.14: */
|
||||
/* Linux 3.14: */
|
||||
DUMMY(renameat2);
|
||||
/* linux 3.15: */
|
||||
/* Linux 3.15: */
|
||||
DUMMY(seccomp);
|
||||
DUMMY(memfd_create);
|
||||
/* linux 3.18: */
|
||||
/* Linux 3.18: */
|
||||
DUMMY(bpf);
|
||||
/* linux 3.19: */
|
||||
/* Linux 3.19: */
|
||||
DUMMY(execveat);
|
||||
/* linux 4.2: */
|
||||
/* Linux 4.2: */
|
||||
DUMMY(userfaultfd);
|
||||
/* linux 4.3: */
|
||||
/* Linux 4.3: */
|
||||
DUMMY(membarrier);
|
||||
/* linux 4.4: */
|
||||
/* Linux 4.4: */
|
||||
DUMMY(mlock2);
|
||||
/* linux 4.5: */
|
||||
/* Linux 4.5: */
|
||||
DUMMY(copy_file_range);
|
||||
/* linux 4.6: */
|
||||
/* Linux 4.6: */
|
||||
DUMMY(preadv2);
|
||||
DUMMY(pwritev2);
|
||||
/* linux 4.8: */
|
||||
/* Linux 4.8: */
|
||||
DUMMY(pkey_mprotect);
|
||||
DUMMY(pkey_alloc);
|
||||
DUMMY(pkey_free);
|
||||
|
@ -759,9 +759,9 @@ linux32_fetch_syscall_args(struct thread *td)
|
||||
}
|
||||
|
||||
/*
|
||||
* If a linux binary is exec'ing something, try this image activator
|
||||
* If a Linux binary is exec'ing something, try this image activator
|
||||
* first. We override standard shell script execution in order to
|
||||
* be able to modify the interpreter path. We only do this if a linux
|
||||
* be able to modify the interpreter path. We only do this if a Linux
|
||||
* binary is doing the exec, so we do not create an EXEC module for it.
|
||||
*/
|
||||
static int exec_linux_imgact_try(struct image_params *iparams);
|
||||
@ -774,9 +774,9 @@ exec_linux_imgact_try(struct image_params *imgp)
|
||||
int error = -1;
|
||||
|
||||
/*
|
||||
* The interpreter for shell scripts run from a linux binary needs
|
||||
* The interpreter for shell scripts run from a Linux binary needs
|
||||
* to be located in /compat/linux if possible in order to recursively
|
||||
* maintain linux path emulation.
|
||||
* maintain Linux path emulation.
|
||||
*/
|
||||
if (((const short *)head)[0] == SHELLMAGIC) {
|
||||
/*
|
||||
@ -1096,7 +1096,7 @@ linux32_trans_osrel(const Elf_Note *note, int32_t *osrel)
|
||||
return (FALSE);
|
||||
|
||||
/*
|
||||
* For linux we encode osrel as follows (see linux_mib.c):
|
||||
* For Linux we encode osrel as follows (see linux_mib.c):
|
||||
* VVVMMMIII (version, major, minor), see linux_mib.c.
|
||||
*/
|
||||
*osrel = desc[1] * 1000000 + desc[2] * 1000 + desc[3];
|
||||
|
@ -463,7 +463,7 @@
|
||||
274 AUE_NULL STD { int linux_mbind(void); }
|
||||
275 AUE_NULL STD { int linux_get_mempolicy(void); }
|
||||
276 AUE_NULL STD { int linux_set_mempolicy(void); }
|
||||
; linux 2.6.6:
|
||||
; Linux 2.6.6:
|
||||
277 AUE_NULL STD { int linux_mq_open(void); }
|
||||
278 AUE_NULL STD { int linux_mq_unlink(void); }
|
||||
279 AUE_NULL STD { int linux_mq_timedsend(void); }
|
||||
@ -475,17 +475,17 @@
|
||||
l_siginfo_t *info, int options, \
|
||||
struct l_rusage *rusage); }
|
||||
285 AUE_NULL UNIMPL
|
||||
; linux 2.6.11:
|
||||
; Linux 2.6.11:
|
||||
286 AUE_NULL STD { int linux_add_key(void); }
|
||||
287 AUE_NULL STD { int linux_request_key(void); }
|
||||
288 AUE_NULL STD { int linux_keyctl(void); }
|
||||
; linux 2.6.13:
|
||||
; Linux 2.6.13:
|
||||
289 AUE_NULL STD { int linux_ioprio_set(void); }
|
||||
290 AUE_NULL STD { int linux_ioprio_get(void); }
|
||||
291 AUE_NULL STD { int linux_inotify_init(void); }
|
||||
292 AUE_NULL STD { int linux_inotify_add_watch(void); }
|
||||
293 AUE_NULL STD { int linux_inotify_rm_watch(void); }
|
||||
; linux 2.6.16:
|
||||
; Linux 2.6.16:
|
||||
294 AUE_NULL STD { int linux_migrate_pages(void); }
|
||||
295 AUE_OPEN_RWTC STD { int linux_openat(l_int dfd, const char *filename, \
|
||||
l_int flags, l_int mode); }
|
||||
@ -519,7 +519,7 @@
|
||||
309 AUE_POLL STD { int linux_ppoll(struct pollfd *fds, uint32_t nfds, \
|
||||
struct l_timespec *tsp, l_sigset_t *sset, l_size_t ssize); }
|
||||
310 AUE_NULL STD { int linux_unshare(void); }
|
||||
; linux 2.6.17:
|
||||
; Linux 2.6.17:
|
||||
311 AUE_NULL STD { int linux_set_robust_list(struct linux_robust_list_head *head, \
|
||||
l_size_t len); }
|
||||
312 AUE_NULL STD { int linux_get_robust_list(l_int pid, \
|
||||
@ -528,29 +528,29 @@
|
||||
314 AUE_NULL STD { int linux_sync_file_range(void); }
|
||||
315 AUE_NULL STD { int linux_tee(void); }
|
||||
316 AUE_NULL STD { int linux_vmsplice(void); }
|
||||
; linux 2.6.18:
|
||||
; Linux 2.6.18:
|
||||
317 AUE_NULL STD { int linux_move_pages(void); }
|
||||
; linux 2.6.19:
|
||||
; Linux 2.6.19:
|
||||
318 AUE_NULL STD { int linux_getcpu(void); }
|
||||
319 AUE_NULL STD { int linux_epoll_pwait(l_int epfd, struct epoll_event *events, \
|
||||
l_int maxevents, l_int timeout, l_sigset_t *mask, \
|
||||
l_size_t sigsetsize); }
|
||||
; linux 2.6.22:
|
||||
; Linux 2.6.22:
|
||||
320 AUE_FUTIMESAT STD { int linux_utimensat(l_int dfd, const char *pathname, \
|
||||
const struct l_timespec *times, l_int flags); }
|
||||
321 AUE_NULL STD { int linux_signalfd(void); }
|
||||
322 AUE_NULL STD { int linux_timerfd_create(l_int clockid, l_int flags); }
|
||||
323 AUE_NULL STD { int linux_eventfd(l_uint initval); }
|
||||
; linux 2.6.23:
|
||||
; Linux 2.6.23:
|
||||
324 AUE_NULL STD { int linux_fallocate(l_int fd, l_int mode, \
|
||||
l_loff_t offset, l_loff_t len); }
|
||||
; linux 2.6.25:
|
||||
; Linux 2.6.25:
|
||||
325 AUE_NULL STD { int linux_timerfd_settime(l_int fd, l_int flags, \
|
||||
const struct l_itimerspec *new_value, \
|
||||
struct l_itimerspec *old_value); }
|
||||
326 AUE_NULL STD { int linux_timerfd_gettime(l_int fd, \
|
||||
struct l_itimerspec *old_value); }
|
||||
; linux 2.6.27:
|
||||
; Linux 2.6.27:
|
||||
327 AUE_NULL STD { int linux_signalfd4(void); }
|
||||
328 AUE_NULL STD { int linux_eventfd2(l_uint initval, l_int flags); }
|
||||
329 AUE_NULL STD { int linux_epoll_create1(l_int flags); }
|
||||
@ -558,39 +558,39 @@
|
||||
l_int newfd, l_int flags); }
|
||||
331 AUE_NULL STD { int linux_pipe2(l_int *pipefds, l_int flags); }
|
||||
332 AUE_NULL STD { int linux_inotify_init1(void); }
|
||||
; linux 2.6.30:
|
||||
; Linux 2.6.30:
|
||||
333 AUE_NULL STD { int linux_preadv(l_ulong fd, \
|
||||
struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h); }
|
||||
334 AUE_NULL STD { int linux_pwritev(l_ulong fd, \
|
||||
struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h); }
|
||||
; linux 2.6.31:
|
||||
; Linux 2.6.31:
|
||||
335 AUE_NULL STD { int linux_rt_tgsigqueueinfo(l_pid_t tgid, \
|
||||
l_pid_t tid, l_int sig, l_siginfo_t *uinfo); }
|
||||
336 AUE_NULL STD { int linux_perf_event_open(void); }
|
||||
; linux 2.6.33:
|
||||
; Linux 2.6.33:
|
||||
337 AUE_NULL STD { int linux_recvmmsg(l_int s, \
|
||||
struct l_mmsghdr *msg, l_uint vlen, \
|
||||
l_uint flags, struct l_timespec *timeout); }
|
||||
338 AUE_NULL STD { int linux_fanotify_init(void); }
|
||||
339 AUE_NULL STD { int linux_fanotify_mark(void); }
|
||||
; linux 2.6.36:
|
||||
; Linux 2.6.36:
|
||||
340 AUE_NULL STD { int linux_prlimit64(l_pid_t pid, \
|
||||
l_uint resource, \
|
||||
struct rlimit *new, \
|
||||
struct rlimit *old); }
|
||||
; linux 2.6.39:
|
||||
; Linux 2.6.39:
|
||||
341 AUE_NULL STD { int linux_name_to_handle_at(void); }
|
||||
342 AUE_NULL STD { int linux_open_by_handle_at(void); }
|
||||
343 AUE_NULL STD { int linux_clock_adjtime(void); }
|
||||
344 AUE_SYNC STD { int linux_syncfs(l_int fd); }
|
||||
; linux 3.0:
|
||||
; Linux 3.0:
|
||||
345 AUE_NULL STD { int linux_sendmmsg(l_int s, \
|
||||
struct l_mmsghdr *msg, l_uint vlen, \
|
||||
l_uint flags); }
|
||||
346 AUE_NULL STD { int linux_setns(void); }
|
||||
; linux 3.2 (glibc 2.15):
|
||||
; Linux 3.2 (glibc 2.15):
|
||||
347 AUE_NULL STD { int linux_process_vm_readv(l_pid_t pid, \
|
||||
const struct iovec *lvec, l_ulong liovcnt, \
|
||||
const struct iovec *rvec, l_ulong riovcnt, \
|
||||
@ -599,36 +599,36 @@
|
||||
const struct iovec *lvec, l_ulong liovcnt, \
|
||||
const struct iovec *rvec, l_ulong riovcnt, \
|
||||
l_ulong flags); }
|
||||
; linux 3.5 (no glibc wrapper):
|
||||
; Linux 3.5 (no glibc wrapper):
|
||||
349 AUE_NULL STD { int linux_kcmp(l_pid_t pid1, l_pid_t pid2, \
|
||||
l_int type, l_ulong idx1, l_ulong idx); }
|
||||
; linux 3.8 (no glibc wrapper):
|
||||
; Linux 3.8 (no glibc wrapper):
|
||||
350 AUE_NULL STD { int linux_finit_module(l_int fd, \
|
||||
const char *uargs, l_int flags); }
|
||||
; linux 3.14:
|
||||
; Linux 3.14:
|
||||
351 AUE_NULL STD { int linux_sched_setattr(l_pid_t pid, \
|
||||
void *attr, l_uint flags); }
|
||||
352 AUE_NULL STD { int linux_sched_getattr(l_pid_t pid, \
|
||||
void *attr, l_uint size, l_uint flags); }
|
||||
; linux 3.15:
|
||||
; Linux 3.15:
|
||||
353 AUE_NULL STD { int linux_renameat2(l_int oldfd, \
|
||||
const char *oldname, l_int newfd, \
|
||||
const char *newname, unsigned int flags); }
|
||||
; linux 3.17:
|
||||
; Linux 3.17:
|
||||
354 AUE_NULL STD { int linux_seccomp(l_uint op, l_uint flags, \
|
||||
const char *uargs); }
|
||||
355 AUE_NULL STD { int linux_getrandom(char *buf, \
|
||||
l_size_t count, l_uint flags); }
|
||||
356 AUE_NULL STD { int linux_memfd_create(const char *uname_ptr, \
|
||||
l_uint flags); }
|
||||
; linux 3.18:
|
||||
; Linux 3.18:
|
||||
357 AUE_NULL STD { int linux_bpf(l_int cmd, void *attr, \
|
||||
l_uint size); }
|
||||
; linux 3.19:
|
||||
; Linux 3.19:
|
||||
358 AUE_NULL STD { int linux_execveat(l_int dfd, \
|
||||
const char *filename, const char **argv, \
|
||||
const char **envp, l_int flags); }
|
||||
; linux 4.3: sockets now direct system calls:
|
||||
; Linux 4.3: sockets now direct system calls:
|
||||
359 AUE_SOCKET STD { int linux_socket(l_int domain, l_int type, \
|
||||
l_int protocol); }
|
||||
360 AUE_SOCKETPAIR STD { int linux_socketpair(l_int domain, \
|
||||
@ -662,26 +662,26 @@
|
||||
l_int flags); }
|
||||
373 AUE_NULL STD { int linux_shutdown(l_int s, l_int how); }
|
||||
;
|
||||
; linux 4.2:
|
||||
; Linux 4.2:
|
||||
374 AUE_NULL STD { int linux_userfaultfd(l_int flags); }
|
||||
; linux 4.3:
|
||||
; Linux 4.3:
|
||||
375 AUE_NULL STD { int linux_membarrier(l_int cmd, l_int flags); }
|
||||
; linux 4.4:
|
||||
; Linux 4.4:
|
||||
376 AUE_NULL STD { int linux_mlock2(l_ulong start, l_size_t len, \
|
||||
l_int flags); }
|
||||
; linux 4.5:
|
||||
; Linux 4.5:
|
||||
377 AUE_NULL STD { int linux_copy_file_range(l_int fd_in, \
|
||||
l_loff_t *off_in, l_int fd_out, \
|
||||
l_loff_t *off_out, l_size_t len, \
|
||||
l_uint flags); }
|
||||
; linux 4.6:
|
||||
; Linux 4.6:
|
||||
378 AUE_NULL STD { int linux_preadv2(l_ulong fd, \
|
||||
const struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h, l_int flags); }
|
||||
379 AUE_NULL STD { int linux_pwritev2(l_ulong fd, \
|
||||
const struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h, l_int flags); }
|
||||
; linux 4.8:
|
||||
; Linux 4.8:
|
||||
380 AUE_NULL STD { int linux_pkey_mprotect(l_ulong start, \
|
||||
l_size_t len, l_ulong prot, l_int pkey); }
|
||||
381 AUE_NULL STD { int linux_pkey_alloc(l_ulong flags, \
|
||||
|
@ -193,7 +193,7 @@ linux_common_execve(struct thread *td, struct image_args *eargs)
|
||||
|
||||
/*
|
||||
* In a case of transition from Linux binary execing to
|
||||
* FreeBSD binary we destroy linux emuldata thread & proc entries.
|
||||
* FreeBSD binary we destroy Linux emuldata thread & proc entries.
|
||||
*/
|
||||
if (SV_CURPROC_ABI() != SV_ABI_LINUX) {
|
||||
PROC_LOCK(p);
|
||||
@ -228,7 +228,7 @@ linux_proc_exec(void *arg __unused, struct proc *p, struct image_params *imgp)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* In a case of execing from linux binary properly detach
|
||||
* In a case of execing from Linux binary properly detach
|
||||
* other threads from the user space.
|
||||
*/
|
||||
if (__predict_false(SV_PROC_ABI(p) == SV_ABI_LINUX)) {
|
||||
@ -239,7 +239,7 @@ linux_proc_exec(void *arg __unused, struct proc *p, struct image_params *imgp)
|
||||
}
|
||||
|
||||
/*
|
||||
* In a case of execing to linux binary we create linux
|
||||
* In a case of execing to Linux binary we create Linux
|
||||
* emuldata thread entry.
|
||||
*/
|
||||
if (__predict_false((imgp->sysent->sv_flags & SV_ABI_MASK) ==
|
||||
|
@ -525,7 +525,7 @@ linux_access(struct thread *td, struct linux_access_args *args)
|
||||
char *path;
|
||||
int error;
|
||||
|
||||
/* linux convention */
|
||||
/* Linux convention. */
|
||||
if (args->amode & ~(F_OK | X_OK | W_OK | R_OK))
|
||||
return (EINVAL);
|
||||
|
||||
@ -548,7 +548,7 @@ linux_faccessat(struct thread *td, struct linux_faccessat_args *args)
|
||||
char *path;
|
||||
int error, dfd;
|
||||
|
||||
/* linux convention */
|
||||
/* Linux convention. */
|
||||
if (args->amode & ~(F_OK | X_OK | W_OK | R_OK))
|
||||
return (EINVAL);
|
||||
|
||||
@ -991,7 +991,7 @@ linux_pread(struct thread *td, struct linux_pread_args *uap)
|
||||
|
||||
error = kern_pread(td, uap->fd, uap->buf, uap->nbyte, uap->offset);
|
||||
if (error == 0) {
|
||||
/* This seems to violate POSIX but linux does it */
|
||||
/* This seems to violate POSIX but Linux does it. */
|
||||
error = fgetvp(td, uap->fd,
|
||||
cap_rights_init(&rights, CAP_PREAD), &vp);
|
||||
if (error != 0)
|
||||
|
@ -171,7 +171,7 @@ struct handler_element
|
||||
static TAILQ_HEAD(, handler_element) handlers =
|
||||
TAILQ_HEAD_INITIALIZER(handlers);
|
||||
static struct sx linux_ioctl_sx;
|
||||
SX_SYSINIT(linux_ioctl, &linux_ioctl_sx, "linux ioctl handlers");
|
||||
SX_SYSINIT(linux_ioctl, &linux_ioctl_sx, "Linux ioctl handlers");
|
||||
|
||||
/*
|
||||
* hdio related ioctls for VMWare support
|
||||
@ -1340,7 +1340,7 @@ bsd_to_linux_dvd_struct(struct dvd_struct *bp, l_dvd_struct *lp)
|
||||
lp->manufact.len = bp->length;
|
||||
memcpy(lp->manufact.value, bp->data,
|
||||
sizeof(lp->manufact.value));
|
||||
/* lp->manufact.layer_num is unused in linux (redhat 7.0) */
|
||||
/* lp->manufact.layer_num is unused in Linux (redhat 7.0). */
|
||||
break;
|
||||
default:
|
||||
return (EINVAL);
|
||||
@ -2902,7 +2902,7 @@ linux_v4l_clip_copy(void *lvc, struct video_clip **ppvc)
|
||||
linux_to_bsd_v4l_clip(&l_vclip, &vclip);
|
||||
/* XXX: If there can be no concurrency: s/M_NOWAIT/M_WAITOK/ */
|
||||
if ((*ppvc = malloc(sizeof(**ppvc), M_LINUX, M_NOWAIT)) == NULL)
|
||||
return (ENOMEM); /* XXX: linux has no ENOMEM here */
|
||||
return (ENOMEM); /* XXX: Linux has no ENOMEM here. */
|
||||
memcpy(*ppvc, &vclip, sizeof(vclip));
|
||||
(*ppvc)->next = NULL;
|
||||
return (0);
|
||||
|
@ -434,7 +434,7 @@ linux_osd_jail_register(void)
|
||||
|
||||
linux_osd_jail_slot =
|
||||
osd_jail_register(linux_prison_destructor, methods);
|
||||
/* Copy the system linux info to any current prisons. */
|
||||
/* Copy the system Linux info to any current prisons. */
|
||||
sx_slock(&allprison_lock);
|
||||
TAILQ_FOREACH(pr, &allprison, pr_list)
|
||||
linux_alloc_prison(pr, NULL);
|
||||
|
@ -1997,7 +1997,7 @@ linux_prctl(struct thread *td, struct linux_prctl_args *args)
|
||||
case LINUX_PR_SET_NAME:
|
||||
/*
|
||||
* To be on the safe side we need to make sure to not
|
||||
* overflow the size a linux program expects. We already
|
||||
* overflow the size a Linux program expects. We already
|
||||
* do this here in the copyin, so that we don't need to
|
||||
* check on copyout.
|
||||
*/
|
||||
|
@ -83,7 +83,7 @@ static int linux_recvmsg_common(struct thread *, l_int, struct l_msghdr *,
|
||||
static int linux_set_socket_flags(int, int *);
|
||||
|
||||
/*
|
||||
* Reads a linux sockaddr and does any necessary translation.
|
||||
* Reads a Linux sockaddr and does any necessary translation.
|
||||
* Linux sockaddrs don't have a length field, only a family.
|
||||
* Copy the osockaddr structure pointed to by osa to kernel, adjust
|
||||
* family and convert to sockaddr.
|
||||
|
@ -235,5 +235,5 @@ fail:
|
||||
/*
|
||||
* Tell kern_execve.c about it, with a little help from the linker.
|
||||
*/
|
||||
static struct execsw linux_execsw = { exec_linux_imgact, "linux a.out" };
|
||||
static struct execsw linux_execsw = { exec_linux_imgact, "Linux a.out" };
|
||||
EXEC_SET(linuxaout, linux_execsw);
|
||||
|
@ -47,19 +47,19 @@ LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
|
||||
|
||||
UNIMPLEMENTED(afs_syscall);
|
||||
UNIMPLEMENTED(break);
|
||||
UNIMPLEMENTED(create_module); /* added in linux 1.0 removed in 2.6 */
|
||||
UNIMPLEMENTED(create_module); /* Added in Linux 1.0 removed in 2.6. */
|
||||
UNIMPLEMENTED(ftime);
|
||||
UNIMPLEMENTED(get_kernel_syms); /* added in linux 1.0 removed in 2.6 */
|
||||
UNIMPLEMENTED(get_kernel_syms); /* Added in Linux 1.0 removed in 2.6. */
|
||||
UNIMPLEMENTED(getpmsg);
|
||||
UNIMPLEMENTED(gtty);
|
||||
UNIMPLEMENTED(stty);
|
||||
UNIMPLEMENTED(lock);
|
||||
UNIMPLEMENTED(mpx);
|
||||
UNIMPLEMENTED(nfsservctl); /* added in linux 2.2 removed in 3.1 */
|
||||
UNIMPLEMENTED(nfsservctl); /* Added in Linux 2.2 removed in 3.1. */
|
||||
UNIMPLEMENTED(prof);
|
||||
UNIMPLEMENTED(profil);
|
||||
UNIMPLEMENTED(putpmsg);
|
||||
UNIMPLEMENTED(query_module); /* added in linux 2.2 removed in 2.6 */
|
||||
UNIMPLEMENTED(query_module); /* Added in Linux 2.2 removed in 2.6. */
|
||||
UNIMPLEMENTED(ulimit);
|
||||
UNIMPLEMENTED(vserver);
|
||||
|
||||
@ -88,74 +88,74 @@ DUMMY(mbind);
|
||||
DUMMY(get_mempolicy);
|
||||
DUMMY(set_mempolicy);
|
||||
DUMMY(kexec_load);
|
||||
/* linux 2.6.11: */
|
||||
/* Linux 2.6.11: */
|
||||
DUMMY(add_key);
|
||||
DUMMY(request_key);
|
||||
DUMMY(keyctl);
|
||||
/* linux 2.6.13: */
|
||||
/* Linux 2.6.13: */
|
||||
DUMMY(ioprio_set);
|
||||
DUMMY(ioprio_get);
|
||||
DUMMY(inotify_init);
|
||||
DUMMY(inotify_add_watch);
|
||||
DUMMY(inotify_rm_watch);
|
||||
/* linux 2.6.16: */
|
||||
/* Linux 2.6.16: */
|
||||
DUMMY(migrate_pages);
|
||||
DUMMY(unshare);
|
||||
/* linux 2.6.17: */
|
||||
/* Linux 2.6.17: */
|
||||
DUMMY(splice);
|
||||
DUMMY(sync_file_range);
|
||||
DUMMY(tee);
|
||||
DUMMY(vmsplice);
|
||||
/* linux 2.6.18: */
|
||||
/* Linux 2.6.18: */
|
||||
DUMMY(move_pages);
|
||||
/* linux 2.6.19: */
|
||||
/* Linux 2.6.19: */
|
||||
DUMMY(getcpu);
|
||||
/* linux 2.6.22: */
|
||||
/* Linux 2.6.22: */
|
||||
DUMMY(signalfd);
|
||||
/* linux 2.6.27: */
|
||||
/* Linux 2.6.27: */
|
||||
DUMMY(signalfd4);
|
||||
DUMMY(inotify_init1);
|
||||
/* linux 2.6.31: */
|
||||
/* Linux 2.6.31: */
|
||||
DUMMY(perf_event_open);
|
||||
/* linux 2.6.33: */
|
||||
/* Linux 2.6.33: */
|
||||
DUMMY(fanotify_init);
|
||||
DUMMY(fanotify_mark);
|
||||
/* linux 2.6.39: */
|
||||
/* Linux 2.6.39: */
|
||||
DUMMY(name_to_handle_at);
|
||||
DUMMY(open_by_handle_at);
|
||||
DUMMY(clock_adjtime);
|
||||
/* linux 3.0: */
|
||||
/* Linux 3.0: */
|
||||
DUMMY(setns);
|
||||
/* linux 3.2: */
|
||||
/* Linux 3.2: */
|
||||
DUMMY(process_vm_readv);
|
||||
DUMMY(process_vm_writev);
|
||||
/* linux 3.5: */
|
||||
/* Linux 3.5: */
|
||||
DUMMY(kcmp);
|
||||
/* linux 3.8: */
|
||||
/* Linux 3.8: */
|
||||
DUMMY(finit_module);
|
||||
DUMMY(sched_setattr);
|
||||
DUMMY(sched_getattr);
|
||||
/* linux 3.14: */
|
||||
/* Linux 3.14: */
|
||||
DUMMY(renameat2);
|
||||
/* linux 3.15: */
|
||||
/* Linux 3.15: */
|
||||
DUMMY(seccomp);
|
||||
DUMMY(memfd_create);
|
||||
/* linux 3.18: */
|
||||
/* Linux 3.18: */
|
||||
DUMMY(bpf);
|
||||
/* linux 3.19: */
|
||||
/* Linux 3.19: */
|
||||
DUMMY(execveat);
|
||||
/* linux 4.2: */
|
||||
/* Linux 4.2: */
|
||||
DUMMY(userfaultfd);
|
||||
/* linux 4.3: */
|
||||
/* Linux 4.3: */
|
||||
DUMMY(membarrier);
|
||||
/* linux 4.4: */
|
||||
/* Linux 4.4: */
|
||||
DUMMY(mlock2);
|
||||
/* linux 4.5: */
|
||||
/* Linux 4.5: */
|
||||
DUMMY(copy_file_range);
|
||||
/* linux 4.6: */
|
||||
/* Linux 4.6: */
|
||||
DUMMY(preadv2);
|
||||
DUMMY(pwritev2);
|
||||
/* linux 4.8: */
|
||||
/* Linux 4.8: */
|
||||
DUMMY(pkey_mprotect);
|
||||
DUMMY(pkey_alloc);
|
||||
DUMMY(pkey_free);
|
||||
|
@ -650,20 +650,20 @@ linux_set_thread_area(struct thread *td, struct linux_set_thread_area_args *args
|
||||
|
||||
idx = info.entry_number;
|
||||
/*
|
||||
* Semantics of linux version: every thread in the system has array of
|
||||
* Semantics of Linux version: every thread in the system has array of
|
||||
* 3 tls descriptors. 1st is GLIBC TLS, 2nd is WINE, 3rd unknown. This
|
||||
* syscall loads one of the selected tls decriptors with a value and
|
||||
* also loads GDT descriptors 6, 7 and 8 with the content of the
|
||||
* per-thread descriptors.
|
||||
*
|
||||
* Semantics of fbsd version: I think we can ignore that linux has 3
|
||||
* Semantics of FreeBSD version: I think we can ignore that Linux has 3
|
||||
* per-thread descriptors and use just the 1st one. The tls_array[]
|
||||
* is used only in set/get-thread_area() syscalls and for loading the
|
||||
* GDT descriptors. In fbsd we use just one GDT descriptor for TLS so
|
||||
* we will load just one.
|
||||
* GDT descriptors. In FreeBSD we use just one GDT descriptor for TLS
|
||||
* so we will load just one.
|
||||
*
|
||||
* XXX: this doesn't work when a user space process tries to use more
|
||||
* than 1 TLS segment. Comment in the linux sources says wine might do
|
||||
* than 1 TLS segment. Comment in the Linux sources says wine might do
|
||||
* this.
|
||||
*/
|
||||
|
||||
|
@ -412,7 +412,7 @@ linux_ptrace(struct thread *td, struct linux_ptrace_args *uap)
|
||||
if (uap->addr < 0 || uap->addr & (sizeof(l_int) - 1))
|
||||
break;
|
||||
/*
|
||||
* Allow linux programs to access register values in
|
||||
* Allow Linux programs to access register values in
|
||||
* user struct. We simulate this through PT_GET/SETREGS
|
||||
* as necessary.
|
||||
*/
|
||||
|
@ -880,9 +880,9 @@ linux_fetch_syscall_args(struct thread *td)
|
||||
}
|
||||
|
||||
/*
|
||||
* If a linux binary is exec'ing something, try this image activator
|
||||
* If a Linux binary is exec'ing something, try this image activator
|
||||
* first. We override standard shell script execution in order to
|
||||
* be able to modify the interpreter path. We only do this if a linux
|
||||
* be able to modify the interpreter path. We only do this if a Linux
|
||||
* binary is doing the exec, so we do not create an EXEC module for it.
|
||||
*/
|
||||
static int exec_linux_imgact_try(struct image_params *iparams);
|
||||
@ -895,9 +895,9 @@ exec_linux_imgact_try(struct image_params *imgp)
|
||||
int error = -1;
|
||||
|
||||
/*
|
||||
* The interpreter for shell scripts run from a linux binary needs
|
||||
* The interpreter for shell scripts run from a Linux binary needs
|
||||
* to be located in /compat/linux if possible in order to recursively
|
||||
* maintain linux path emulation.
|
||||
* maintain Linux path emulation.
|
||||
*/
|
||||
if (((const short *)head)[0] == SHELLMAGIC) {
|
||||
/*
|
||||
@ -1077,7 +1077,7 @@ linux_trans_osrel(const Elf_Note *note, int32_t *osrel)
|
||||
return (FALSE);
|
||||
|
||||
/*
|
||||
* For linux we encode osrel as follows (see linux_mib.c):
|
||||
* For Linux we encode osrel as follows (see linux_mib.c):
|
||||
* VVVMMMIII (version, major, minor), see linux_mib.c.
|
||||
*/
|
||||
*osrel = desc[1] * 1000000 + desc[2] * 1000 + desc[3];
|
||||
|
@ -465,7 +465,7 @@
|
||||
274 AUE_NULL STD { int linux_mbind(void); }
|
||||
275 AUE_NULL STD { int linux_get_mempolicy(void); }
|
||||
276 AUE_NULL STD { int linux_set_mempolicy(void); }
|
||||
; linux 2.6.6:
|
||||
; Linux 2.6.6:
|
||||
277 AUE_NULL STD { int linux_mq_open(const char *name, int oflag, mode_t mode, \
|
||||
struct mq_attr *attr); }
|
||||
278 AUE_NULL STD { int linux_mq_unlink(const char *name); }
|
||||
@ -483,17 +483,17 @@
|
||||
l_siginfo_t *info, int options, \
|
||||
void *rusage); }
|
||||
285 AUE_NULL UNIMPL
|
||||
; linux 2.6.11:
|
||||
; Linux 2.6.11:
|
||||
286 AUE_NULL STD { int linux_add_key(void); }
|
||||
287 AUE_NULL STD { int linux_request_key(void); }
|
||||
288 AUE_NULL STD { int linux_keyctl(void); }
|
||||
; linux 2.6.13:
|
||||
; Linux 2.6.13:
|
||||
289 AUE_NULL STD { int linux_ioprio_set(void); }
|
||||
290 AUE_NULL STD { int linux_ioprio_get(void); }
|
||||
291 AUE_NULL STD { int linux_inotify_init(void); }
|
||||
292 AUE_NULL STD { int linux_inotify_add_watch(void); }
|
||||
293 AUE_NULL STD { int linux_inotify_rm_watch(void); }
|
||||
; linux 2.6.16:
|
||||
; Linux 2.6.16:
|
||||
294 AUE_NULL STD { int linux_migrate_pages(void); }
|
||||
295 AUE_OPEN_RWTC STD { int linux_openat(l_int dfd, const char *filename, \
|
||||
l_int flags, l_int mode); }
|
||||
@ -527,7 +527,7 @@
|
||||
309 AUE_POLL STD { int linux_ppoll(struct pollfd *fds, uint32_t nfds, \
|
||||
struct l_timespec *tsp, l_sigset_t *sset, l_size_t ssize); }
|
||||
310 AUE_NULL STD { int linux_unshare(void); }
|
||||
; linux 2.6.17:
|
||||
; Linux 2.6.17:
|
||||
311 AUE_NULL STD { int linux_set_robust_list(struct linux_robust_list_head *head, \
|
||||
l_size_t len); }
|
||||
312 AUE_NULL STD { int linux_get_robust_list(l_int pid, \
|
||||
@ -536,29 +536,29 @@
|
||||
314 AUE_NULL STD { int linux_sync_file_range(void); }
|
||||
315 AUE_NULL STD { int linux_tee(void); }
|
||||
316 AUE_NULL STD { int linux_vmsplice(void); }
|
||||
; linux 2.6.18:
|
||||
; Linux 2.6.18:
|
||||
317 AUE_NULL STD { int linux_move_pages(void); }
|
||||
; linux 2.6.19:
|
||||
; Linux 2.6.19:
|
||||
318 AUE_NULL STD { int linux_getcpu(void); }
|
||||
319 AUE_NULL STD { int linux_epoll_pwait(l_int epfd, struct epoll_event *events, \
|
||||
l_int maxevents, l_int timeout, l_sigset_t *mask, \
|
||||
l_size_t sigsetsize); }
|
||||
; linux 2.6.22:
|
||||
; Linux 2.6.22:
|
||||
320 AUE_FUTIMESAT STD { int linux_utimensat(l_int dfd, const char *pathname, \
|
||||
const struct l_timespec *times, l_int flags); }
|
||||
321 AUE_NULL STD { int linux_signalfd(void); }
|
||||
322 AUE_NULL STD { int linux_timerfd_create(l_int clockid, l_int flags); }
|
||||
323 AUE_NULL STD { int linux_eventfd(l_uint initval); }
|
||||
; linux 2.6.23:
|
||||
; Linux 2.6.23:
|
||||
324 AUE_NULL STD { int linux_fallocate(l_int fd, l_int mode, \
|
||||
l_loff_t offset, l_loff_t len); }
|
||||
; linux 2.6.25:
|
||||
; Linux 2.6.25:
|
||||
325 AUE_NULL STD { int linux_timerfd_settime(l_int fd, l_int flags, \
|
||||
const struct l_itimerspec *new_value, \
|
||||
struct l_itimerspec *old_value); }
|
||||
326 AUE_NULL STD { int linux_timerfd_gettime(l_int fd, \
|
||||
struct l_itimerspec *old_value); }
|
||||
; linux 2.6.27:
|
||||
; Linux 2.6.27:
|
||||
327 AUE_NULL STD { int linux_signalfd4(void); }
|
||||
328 AUE_NULL STD { int linux_eventfd2(l_uint initval, l_int flags); }
|
||||
329 AUE_NULL STD { int linux_epoll_create1(l_int flags); }
|
||||
@ -566,39 +566,39 @@
|
||||
l_int newfd, l_int flags); }
|
||||
331 AUE_NULL STD { int linux_pipe2(l_int *pipefds, l_int flags); }
|
||||
332 AUE_NULL STD { int linux_inotify_init1(void); }
|
||||
; linux 2.6.30:
|
||||
; Linux 2.6.30:
|
||||
333 AUE_NULL STD { int linux_preadv(l_ulong fd, \
|
||||
struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h); }
|
||||
334 AUE_NULL STD { int linux_pwritev(l_ulong fd, \
|
||||
struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h); }
|
||||
; linux 2.6.31:
|
||||
; Linux 2.6.31:
|
||||
335 AUE_NULL STD { int linux_rt_tgsigqueueinfo(l_pid_t tgid, \
|
||||
l_pid_t tid, l_int sig, l_siginfo_t *uinfo); }
|
||||
336 AUE_NULL STD { int linux_perf_event_open(void); }
|
||||
; linux 2.6.33:
|
||||
; Linux 2.6.33:
|
||||
337 AUE_NULL STD { int linux_recvmmsg(l_int s, \
|
||||
struct l_mmsghdr *msg, l_uint vlen, \
|
||||
l_uint flags, struct l_timespec *timeout); }
|
||||
338 AUE_NULL STD { int linux_fanotify_init(void); }
|
||||
339 AUE_NULL STD { int linux_fanotify_mark(void); }
|
||||
; linux 2.6.36:
|
||||
; Linux 2.6.36:
|
||||
340 AUE_NULL STD { int linux_prlimit64(l_pid_t pid, \
|
||||
l_uint resource, \
|
||||
struct rlimit *new, \
|
||||
struct rlimit *old); }
|
||||
; linux 2.6.39:
|
||||
; Linux 2.6.39:
|
||||
341 AUE_NULL STD { int linux_name_to_handle_at(void); }
|
||||
342 AUE_NULL STD { int linux_open_by_handle_at(void); }
|
||||
343 AUE_NULL STD { int linux_clock_adjtime(void); }
|
||||
344 AUE_SYNC STD { int linux_syncfs(l_int fd); }
|
||||
; linux 3.0:
|
||||
; Linux 3.0:
|
||||
345 AUE_NULL STD { int linux_sendmmsg(l_int s, \
|
||||
struct l_mmsghdr *msg, l_uint vlen, \
|
||||
l_uint flags); }
|
||||
346 AUE_NULL STD { int linux_setns(void); }
|
||||
; linux 3.2 (glibc 2.15):
|
||||
; Linux 3.2 (glibc 2.15):
|
||||
347 AUE_NULL STD { int linux_process_vm_readv(l_pid_t pid, \
|
||||
const struct iovec *lvec, l_ulong liovcnt, \
|
||||
const struct iovec *rvec, l_ulong riovcnt, \
|
||||
@ -607,36 +607,36 @@
|
||||
const struct iovec *lvec, l_ulong liovcnt, \
|
||||
const struct iovec *rvec, l_ulong riovcnt, \
|
||||
l_ulong flags); }
|
||||
; linux 3.5 (no glibc wrapper):
|
||||
; Linux 3.5 (no glibc wrapper):
|
||||
349 AUE_NULL STD { int linux_kcmp(l_pid_t pid1, l_pid_t pid2, \
|
||||
l_int type, l_ulong idx1, l_ulong idx); }
|
||||
; linux 3.8 (no glibc wrapper):
|
||||
; Linux 3.8 (no glibc wrapper):
|
||||
350 AUE_NULL STD { int linux_finit_module(l_int fd, \
|
||||
const char *uargs, l_int flags); }
|
||||
; linux 3.14:
|
||||
; Linux 3.14:
|
||||
351 AUE_NULL STD { int linux_sched_setattr(l_pid_t pid, \
|
||||
void *attr, l_uint flags); }
|
||||
352 AUE_NULL STD { int linux_sched_getattr(l_pid_t pid, \
|
||||
void *attr, l_uint size, l_uint flags); }
|
||||
; linux 3.15:
|
||||
; Linux 3.15:
|
||||
353 AUE_NULL STD { int linux_renameat2(l_int oldfd, \
|
||||
const char *oldname, l_int newfd, \
|
||||
const char *newname, unsigned int flags); }
|
||||
; linux 3.17:
|
||||
; Linux 3.17:
|
||||
354 AUE_NULL STD { int linux_seccomp(l_uint op, l_uint flags, \
|
||||
const char *uargs); }
|
||||
355 AUE_NULL STD { int linux_getrandom(char *buf, \
|
||||
l_size_t count, l_uint flags); }
|
||||
356 AUE_NULL STD { int linux_memfd_create(const char *uname_ptr, \
|
||||
l_uint flags); }
|
||||
; linux 3.18:
|
||||
; Linux 3.18:
|
||||
357 AUE_NULL STD { int linux_bpf(l_int cmd, void *attr, \
|
||||
l_uint size); }
|
||||
; linux 3.19:
|
||||
; Linux 3.19:
|
||||
358 AUE_NULL STD { int linux_execveat(l_int dfd, \
|
||||
const char *filename, const char **argv, \
|
||||
const char **envp, l_int flags); }
|
||||
; linux 4.3: sockets now direct system calls:
|
||||
; Linux 4.3: sockets now direct system calls:
|
||||
359 AUE_SOCKET STD { int linux_socket(l_int domain, l_int type, \
|
||||
l_int protocol); }
|
||||
360 AUE_SOCKETPAIR STD { int linux_socketpair(l_int domain, \
|
||||
@ -669,26 +669,26 @@
|
||||
372 AUE_RECVMSG STD { int linux_recvmsg(l_int s, l_uintptr_t msg, \
|
||||
l_int flags); }
|
||||
373 AUE_NULL STD { int linux_shutdown(l_int s, l_int how); }
|
||||
; linux 4.2:
|
||||
; Linux 4.2:
|
||||
374 AUE_NULL STD { int linux_userfaultfd(l_int flags); }
|
||||
; linux 4.3:
|
||||
; Linux 4.3:
|
||||
375 AUE_NULL STD { int linux_membarrier(l_int cmd, l_int flags); }
|
||||
; linux 4.4:
|
||||
; Linux 4.4:
|
||||
376 AUE_NULL STD { int linux_mlock2(l_ulong start, l_size_t len, \
|
||||
l_int flags); }
|
||||
; linux 4.5:
|
||||
; Linux 4.5:
|
||||
377 AUE_NULL STD { int linux_copy_file_range(l_int fd_in, \
|
||||
l_loff_t *off_in, l_int fd_out, \
|
||||
l_loff_t *off_out, l_size_t len, \
|
||||
l_uint flags); }
|
||||
; linux 4.6:
|
||||
; Linux 4.6:
|
||||
378 AUE_NULL STD { int linux_preadv2(l_ulong fd, \
|
||||
const struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h, l_int flags); }
|
||||
379 AUE_NULL STD { int linux_pwritev2(l_ulong fd, \
|
||||
const struct iovec *vec, l_ulong vlen, \
|
||||
l_ulong pos_l, l_ulong pos_h, l_int flags); }
|
||||
; linux 4.8:
|
||||
; Linux 4.8:
|
||||
380 AUE_NULL STD { int linux_pkey_mprotect(l_ulong start, \
|
||||
l_size_t len, l_ulong prot, l_int pkey); }
|
||||
381 AUE_NULL STD { int linux_pkey_alloc(l_ulong flags, \
|
||||
|
Loading…
x
Reference in New Issue
Block a user