| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
|
|
|
| |
struct definitions out into the compat/linux/linux_socket.h
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The patch developed by Jilles Tjoelker and Andrew Wilcox and
adopted for lemul branch by me.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Linux sigset always 64 bit on all platforms. In order to move Linux
sigset code to the linux_common module define it as 64 bit int. Move
Linux sigset manipulation routines to the MI path.
2. Move Linux signal number definitions to the MI path. In general, they
are the same on all platforms except for a few signals.
3. Map Linux RT signals to the FreeBSD RT signals and hide signal conversion
tables to avoid conversion errors.
4. Emulate Linux SIGPWR signal via FreeBSD SIGRTMIN signal which is outside
of allowed on Linux signal numbers.
PR: 197216
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument is not a null pointer, and the ss_flags member pointed to by ss
contains flags other than SS_DISABLE. However, in fact, Linux also
allows SS_ONSTACK flag which is simply ignored.
For buggy apps (at least mono) ignore other than SS_DISABLE
flags as a Linux do.
While here move MI part of sigaltstack code to the appropriate place.
Reported by: abi at abinet dot ru
|
| |
|
|
|
|
| |
Reported by: trinity
|
| |
|
|
|
|
|
|
|
| |
to emulate posix_fallocate() function.
Differential Revision: https://reviews.freebsd.org/D1523
Reviewed by: emaste
|
| |
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1105
Reviewed by: trasz
|
|
|
|
|
|
|
|
|
| |
access to the semop structs and functions.
Submitted by: cognet@
Differential Revision: https://reviews.freebsd.org/D1095
Reviewed by: trasz
|
| |
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1094
In collaboration with: Jilles Tjoelker
|
|
|
|
|
|
|
| |
all supported Linuxulators.
Differential Revision: https://reviews.freebsd.org/D1093
Reviewed by: trasz
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@.
Differential Revision: https://reviews.freebsd.org/D1092
|
|
|
|
|
|
|
| |
header file.
Differential Revision: https://reviews.freebsd.org/D1087
Reviewed by: trasz
|
|
|
|
|
|
| |
to check the ABI as it is known.
Differential Revision: https://reviews.freebsd.org/D1086
|
|
|
|
|
|
|
|
|
| |
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.
Differential Revision: https://reviews.freebsd.org/D1081
Reviewed by: trasz
|
|
|
|
|
|
| |
glibc. At list since glibc version 2.16 using AT_RANDOM is mandatory.
Differential Revision: https://reviews.freebsd.org/D1080
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
Differential Revision: https://reviews.freebsd.org/D1078
Reviewed by: trasz
|
|
|
|
|
|
|
|
|
|
| |
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.
Differential Revision: https://reviews.freebsd.org/D1073
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Differential Revision: https://reviews.freebsd.org/D1072
In collaboration with: Vassilis Laganakos.
Reviewed by: trasz
|
|
|
|
|
|
|
|
| |
Move struct ipc_perm definition to the MD path as it differs for 64 and
32 bit platform.
Differential Revision: https://reviews.freebsd.org/D1068
Reviewed by: trasz
|
|
|
|
|
|
|
| |
is moved to the shared page at r219609.
Differential Revision: https://reviews.freebsd.org/D1063
Reviewed by: trasz
|
|
|
|
|
|
|
| |
every exec.
Differential Revision: https://reviews.freebsd.org/D1062
Reviewed by: trasz
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1061
Reviewed by: trasz
|
|
|
|
|
|
|
|
|
| |
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.
Differential Revision: https://reviews.freebsd.org/D1060
|
| |
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1051
Reviewed by: trasz
|
| |
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1050
Reviewed by: emaste, trasz
|
| |
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1049
Reviewed by: emaste
|
| |
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1047
Reviewed by: trasz
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1046
|
|
|
|
|
|
|
|
| |
Use it in linux_wait4() system call and move linux_wait4() to the MI path.
While here add a prototype for the static bsd_to_linux_rusage().
Differential Revision: https://reviews.freebsd.org/D2138
Reviewed by: trasz
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1041
Reviewed by: emaste
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The reasons:
1. Get rid of the stubs/quirks with process dethreading,
process reparent when the process group leader exits and close
to this problems on wait(), waitpid(), etc.
2. Reuse our kernel code instead of writing excessive thread
managment routines in Linuxulator.
Implementation details:
1. The thread is created via kern_thr_new() in the clone() call with
the CLONE_THREAD parameter. Thus, everything else is a process.
2. The test that the process has a threads is done via P_HADTHREADS
bit p_flag of struct proc.
3. Per thread emulator state data structure is now located in the
struct thread and freed in the thread_dtor() hook.
Mandatory holdig of the p_mtx required when referencing emuldata
from the other threads.
4. PID mangling has changed. Now Linux pid is the native tid
and Linux tgid is the native pid, with the exception of the first
thread in the process where tid and pid are one and the same.
Ugliness:
In case when the Linux thread is the initial thread in the thread
group thread id is equal to the process id. Glibc depends on this
magic (assert in pthread_getattr_np.c). So for system calls that
take thread id as a parameter we should use the special method
to reference struct thread.
Differential Revision: https://reviews.freebsd.org/D1039
|
| |
|
|
|
|
|
|
|
| |
Temporarily use the first thread in proc.
Differential Revision: https://reviews.freebsd.org/D1036
Reviewed by: trasz
|
|
|
|
|
| |
Differential Revision: https://reviews.freebsd.org/D1035
Reviewed by: trasz
|