| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove redundant RFFPWAIT/vfork(2) handling in Linux fork(2) and clone(2) wrappers.
r161611 added some of the code from sys_vfork() directly into the Linux
module wrappers since they use RFSTOPPED. In r232240, the RFFPWAIT handling
was moved to syscallret(), thus this code in the Linux module is no longer
needed as it will be called later.
This also allows the Linux wrappers to benefit from the fix in r275616 for
threads not getting suspended if their vforked child is stopped while they
wait on them.
|
|
|
|
|
| |
Fixes a panic triggered by threaded Linux applications when running
with RACCT/RCTL enabled.
|
|
|
|
| |
Add EPOLLRDHUP support.
|
|
|
|
|
|
|
| |
Properly initialize flags for accept4(2) not to return spurious EINVAL.
Note this fixes a Linuxulator regression introduced in r283490.
PR: 200662
|
|
|
|
|
| |
Futex is an aligned 32-bit integer. Use the proper instruction and
operand when dereferencing futex pointer.
|
|
|
|
|
| |
Finish r283544. In exec case properly detach threads from user space
before suicide.
|
|
|
|
|
| |
Move linux64 and linux_common to it's right place and make them not
depend on bhyve.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MFi386: r283407
Implement vdso - virtual dynamic shared object.
MFi386: r283474
Rework signal code to allow using it by other modules, like linprocfs.
MFi386: r283506
For objcopy, use --input-target and --output-target.
This fixes pc98 build.
|
|
|
|
|
|
| |
When I merged the lemul branch I missied kib@'s r282708 commit.
This is not the final fix as I need properly cleanup thread resources
before other threads suicide.
|
|
|
|
|
|
|
|
|
| |
For objcopy, use --input-target and --output-target
When building with gcc 4.9 and binutils 2.25,
using '--input' and '--output' returns an error
message:
objcopy: option `--input' is ambiguous
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linux nanosleep() and clock_nanosleep() system calls always
writes the remaining time into the structure pointed to by rmtp
unless rmtp is NULL. The value of *rmtp can then be used to call
nanosleep() again and complete the specified pause if the previous
call was interrupted.
Note. clock_nanosleep() with an absolute time value does not write
the remaining time.
While here fix whitespaces and typo in SDT_PROBE.
|
|
|
|
| |
Convert SCM_TIMESTAMP in recvmsg().
|
|
|
|
|
|
|
| |
The latest cp tool is trying to use the btrfs clone operation that is
implemented via ioctl interface. First of all return ENOTSUP for this
operation as a cp fallback to usual method in that case. Secondly, do
not print out the message about unimplemented operation.
|
|
|
|
| |
Hide vfs.pfs.trace variable if it is not used.
|
|
|
|
|
| |
Fix an mbuf(9) leak in sendmsg() under failure condition and
remove unneeded check for failed M_WAITOK allocation.
|
| |
|
|
|
|
| |
Implement Linux specific syncfs() system call.
|
|
|
|
|
| |
Properly check tv_nsec value. The tv_nsec field can also be one
of the special value UTIME_NOW or UTIME_OMIT.
|
|
|
|
|
| |
Since FreeBSD supports SOCK_CLOEXEC & SOCK_NONBLOCK options
remove its emulation via fcntl call from Linuxulator.
|
| |
|
|
|
|
| |
Implement recvmmsg() and sendmmsg() system calls.
|
|
|
|
|
| |
Reduce duplication between MD Linux code by moving msg related
struct definitions out into the compat/linux/linux_socket.h
|
| |
|
|
|
|
| |
Implement epoll_pwait() system call.
|
|
|
|
|
|
| |
Convert signal number to native for VT_SETMODE ioctl and remove
strange and invalid ISSIGVALID macro.
The code has not been tested right way but it was originally broken.
|
| |
|
|
|
|
| |
Add utimensat() system call.
|
|
|
|
|
|
|
|
|
| |
The kernel sends signals to the processes via ABI specific sv_sendsig method.
Native ABI do not need signal conversion, only emulators may want this. Usually
emulators implements its own sv_sendsig method. For now only ibcs2 emulator does
not have own sv_sendsig implementation and depends on native sendsig() method.
So, remove any extra attempts to convert signal numbers from native sendsig()
methods except from i386 where ibsc2 is living.
|
|
|
|
|
| |
Simplify linprocfs_doprocenviron(). Remove extra proc visibility checks
and initialize pn_vis by well known procfs_candebug().
|
|
|
|
| |
Convert Linux signal number to the FreeBSD.
|
|
|
|
|
| |
Convert Linux sigsets before showing.
Linux kernel displays sigset always as 16x4 bit mask.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rework signal code to allow using it by other modules, like linprocfs:
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
|
|
|
|
| |
Add support for /proc/<pid>/auxv.
|
|
|
|
| |
Add vdso and stack names to the /proc/self/maps.
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to Linux man sigaltstack(3) shall return EINVAL if the ss
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.
|
|
|
|
| |
Add EPOLLERR flag handling to epoll.
|
| |
|
|
|
|
|
|
| |
Call nosys in case when the incorrect syscall number is specified.
Its my fault, fixed by mjg@ at r289055.
|
| |
|
|
|
|
|
| |
Add preliminary fallocate system call implementation
to emulate posix_fallocate() function.
|
|
|
|
| |
Delete the duplicate of linux_to_native_clockid() function.
|
|
|
|
|
| |
Do not use struct l_timespec without conversion. While here move
args->timeout handling before acquiring the futex key at FUTEX_WAIT path.
|
|
|
|
| |
Add prototypes for static futex functions.
|
|
|
|
|
|
| |
As for now our tmpfs is no longer being considered
"highly experimental" remove /dev/shm magic commited
in r218497 and convert tmpfs type to an expected magic number.
|
|
|
|
| |
Print out unsupported futex operation message only once for the process.
|
|
|
|
| |
Add some clock mappings used in glibc 2.20.
|
|
|
|
| |
Improve ktr(9) records in thread managment code.
|
|
|
|
| |
Use local struct proc * varable instead of dereferencing td->td_proc.
|
|
|
|
|
|
| |
Avoid unnecessary em zeroing in non-exec path
as it already zeroed by malloc with M_ZERO flag
and move zeroing to the proper place in exec path.
|
|
|
|
| |
Remove the unnecessary cast.
|