| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Implement ppoll() system call.
|
|
|
|
|
| |
td_sigmask of a newly created thread copied from td.
Remove excess initialization of td_sigmask.
|
|
|
|
| |
Update Linux compat revision to 32.
|
|
|
|
| |
Connect linux64 module to the build.
|
|
|
|
|
| |
Include opt_compat.h, so that COMPAT_LINUX32 is defined, and we can
access to the semop structs and functions.
|
| |
|
|
|
|
| |
Implement eventfd system call.
|
|
|
|
|
| |
Put the correct value for the abi_nfdbits parameter of kern_select() for
all supported Linuxulators.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Implement epoll family system calls. This is a tiny wrapper
around kqueue() to implement epoll subset of functionality.
The kqueue user data are 32bit on i386 which is not enough for
epoll user data, so we keep user data in the proc emuldata.
Initial patch developed by rdivacky@ in 2007, then extended
by Yuri Victorovich @ r255672 and finished by me
in collaboration with mjg@ and jillies@.
|
|
|
|
|
|
|
|
|
|
|
|
| |
For future use in the Linuxulator:
1. Add a kern_kqueue() counterpart for kqueue() with flags parameter.
2. Be a bit secure. To avoid a double fp lookup add a kern_kevent_fp()
counterpart for kern_kevent() with file pointer parameter instead
of file descriptor an pass the buck to it.
Suggested by: mjg [2]
|
|
|
|
| |
Implement F_DUPFD_CLOEXEC fcntl flag.
|
|
|
|
| |
Add several fcntl flags.
|
|
|
|
|
| |
To avoid code duplication move open/fcntl definitions to the MI
header file.
|
|
|
|
|
| |
Use the BSD_TO_LINUX_SIGNAL() wherever there is no need
to check the ABI as it is known.
|
|
|
|
|
|
|
| |
Convert Linux wait options to the FreeBSD.
Check wait options as a Linux do.
Linux always set WEXITED option not a WUNTRACED|WNOHANG
which is a strange bug.
|
|
|
|
| |
Set WIFCONTINUED to the wait status if needed.
|
|
|
|
|
|
| |
Rewrite linux_recvfrom. To avoid double conversion of sockaddr use
kern_recvit() directly.
And check fromlen parameter before sockaddr copyin and conversion.
|
|
|
|
|
|
|
| |
Being exported through vdso the note.Linux section used by glibc
to determine the kernel version (this saves one uname call).
Temporarily disable the export of a note.Linux section until I figured
out how to change the kernel version in the note.Linux on the fly.
|
|
|
|
|
| |
Add AT_RANDOM and AT_EXECFN auxiliary vector entries which are used by
glibc. At list since glibc version 2.16 using AT_RANDOM is mandatory.
|
| |
|
|
|
|
|
|
|
|
|
| |
Change linux faccessat syscall definition to match actual linux one.
The AT_EACCESS and AT_SYMLINK_NOFOLLOW flags are actually implemented
within the glibc wrapper function for faccessat(). If either of these
flags are specified, then the wrapper function employs fstatat() to
determine access permissions.
|
|
|
|
|
| |
Where possible we will use M_LINUX malloc(9) type.
Move M_FUTEX defines to the linux_common.ko.
|
| |
|
|
|
|
| |
Add preliminary support for x86-64 Linux binaries.
|
|
|
|
| |
Move FEATURE macros for v4l and v4l2 to the common module.
|
|
|
|
|
|
|
|
|
| |
Refund the proc emuldata struct for future use. For now move flags from
thread emuldata to proc emuldata as it was originally intended.
As we can have both 64 & 32 bit Linuxulator running any eventhandler
can be called twice for us. To prevent this move eventhandlers code
from linux_emul.c to the linux_common.ko module.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a new module linux_common.ko which is intended for the
following primary purposes:
1. Remove the dependency of linsysfs and linprocfs modules from linux.ko,
which will be architecture specific on amd64.
2. Incorporate into linux_common.ko general code for platforms on which
we'll support two Linuxulator modules (for both instruction set - 32 & 64 bit).
3. Move malloc(9) declaration to linux_common.ko, to enable getting memory
usage statistics properly.
Currently linux_common.ko incorporates a code from linux_mib.c and linux_util.c
and linprocfs, linsysfs and linux kernel modules depend on linux_common.ko.
Temporarily remove dtrace garbage from linux_mib.c and linux_util.c
|
|
|
|
| |
Fix build with KTR option.
|
|
|
|
| |
Add newfstatat system call for 64-bit Linuxulator.
|
|
|
|
| |
Fix compilation with -DDEBUG option.
|
|
|
|
| |
Add 64 bit support to the vdso.
|
|
|
|
|
|
| |
x86_64 Linux do not use multiplexing on ipc system calls.
Move struct ipc_perm definition to the MD path as it differs for 64 and
32 bit platform.
|
|
|
|
| |
Disable i386 call for x86-64 Linux.
|
|
|
|
| |
Print out proper procmap entry for 64 bit binaries.
|
|
|
|
|
| |
64-bit paltforms, like x86_64, do not use multiplexing on
socketcall system calls.
|
|
|
|
|
|
| |
Get ready to commit x86_64 Linux emulation.
All fields of type l_int in struct statfs are defined
as l_long on i386 and amd64.
|
|
|
|
|
| |
Remove stale comment about a signal trampoline which
is moved to the shared page at r219609.
|
|
|
|
|
| |
Put linux_platform into the vdso to avoid copying it onto the stack at
every exec.
|
|
|
|
| |
Eliminate a now unused global declaration of elf_linux_sysvec.
|
|
|
|
|
|
|
|
| |
Implement vdso - virtual dynamic shared object. Through vdso Linux
exposes functions from kernel with proper DWARF CFI information so that
it becomes easier to unwind through them.
Using vdso is a mandatory for a thread cancelation && cleanup
on a modern glibc.
|
| |
|
|
|
|
| |
Implement pselect6() system call.
|
| |
|
|
|
|
| |
Implement prlimit64() system call.
|
| |
|
|
|
|
| |
Implement dup3() system call.
|
|
|
|
|
| |
Sched_rr_get_interval returns EINVAL in case when the invalid pid
specified. This silence the ltp tests.
|
| |
|
|
|
|
| |
Implement rt_sigqueueinfo() system call.
|