Next Previous Contents

4. System Call Mapping

Lxrun emulates or maps most commonly-used system calls for which native equivalents exist. Unimplemented calls return an error indication and set ENOSYS.

The files doc/SysCallTable* list tables of supported, partially supported, and unsupported system calls. The SyscallScript utility run (against the source) will regenerate the text and HTML versions of this file. An on-line copy of the currently supported system calls is available at http://skunkware.dev/skunkware/emulators/SyscallTable.html.

4.1 Directly mapped system calls

The following system calls are mapped directly:

exit() fork() creat() link() unlink() chdir() time() mknod() chmod() chown() lseek() getpid() setuid() getuid() stime() alarm() pause() utime() access() nice() sync() rename() mkdir() rmdir() dup() times() setgid() getgid() geteuid() getegid() setpgid() umask() chroot() dup2() getppid() getpgrp() setsid() setreuid() setregid() sethostname() gettimeofday() settimeofday() symlink() readlink() truncate() ftruncate() fchmod() fchown() setitimer() getitimer() fsync() setdomainname() getpgid() fchdir() sysfs() getdents() readv() writev() getsid()

4.2 System calls with a non-stub emulation function

For the following system calls, lxrun either provides some remapping of arguments, return values, and error codes, or in cases where an analogous native call does not exist, emulates the call using native library functions.

nosys() read() write() open() close() waitpid() execve() oldstat() ptrace() oldfstat() kill() pipe() brk() signal() fcntl() olduname() sigaction() sgetmask() ssetmask() sigsuspend() sigpending() setrlimit() getrlimit() getgroups() setgroups() old_select() oldlstat() uselib() readdir() mmap() munmap() getpriority() setpriority() socketcall() syslog() stat() lstat() fstat() uname() iopl() wait4() sysinfo() ipc() sigreturn() newuname() mprotect() sigprocmask() personality() _llseek() select()

4.3 Partial implementations

The following system calls are partially emulated:

ioctl() ioperm() fdatasync()

4.4 Unimplemented system calls

The list of unimplemented system calls is as follows:

mount() umount() getrusage() swapon() reboot() statfs() fstatfs() vhangup() idle() vm86() swapoff() clone() modify_ldt() adjtimex() create_module() init_module() delete_module() get_kernel_syms() quotactl() bdflush() setfsuid() setfsgid() flock() msync() sysctl() mlock() munlock() mlockall() munlockall() sched_setparam() sched_getparam() sched_setscheduler() sched_getscheduler() sched_yield() sched_get_priority_max() sched_get_priority_min() sched_rr_get_interval()


Next Previous Contents