|
Revision tags: release/13.4.0-p5, release/13.5.0-p1, release/14.2.0-p3, release/13.5.0, release/14.2.0-p2, release/14.1.0-p8, release/13.4.0-p4, release/14.1.0-p7, release/14.2.0-p1, release/13.4.0-p3, release/14.2.0 |
|
| #
dac3b7e3 |
| 20-Sep-2024 |
Konstantin Belousov <[email protected]> |
Userspace enablement for getrlimitusage(2)
(cherry picked from commit 9b29fc89ae20a22516f54e146bfdfa0cfcd60b8b)
|
|
Revision tags: release/13.4.0, release/14.1.0, release/13.3.0 |
|
| #
f8d885c0 |
| 19-Jan-2024 |
Konstantin Belousov <[email protected]> |
Add kcmp(2) userspace bits
(cherry picked from commit 211bdd601ee51f90da9b123807ef68ac122116b9)
|
| #
89ebe0ce |
| 27-Nov-2023 |
Brooks Davis <[email protected]> |
memfd_create: move implementation to libc/gen
Due to memfd_create(3)'s construction of a path to pass to shm_open2(2), it has a much larger than typical dependency footprint for a system call wrappe
memfd_create: move implementation to libc/gen
Due to memfd_create(3)'s construction of a path to pass to shm_open2(2), it has a much larger than typical dependency footprint for a system call wrapper (the list currently includes calloc, memset, sprintf, and strlen). As such, split it off into its own file under libc/gen to lighten libc/sys's dependency list.
Reviewed by: kevans, imp, emaste Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D42709
(cherry picked from commit c3207e2d2554c8e36f9cf5950f8cd52a19fedfd5)
show more ...
|
| #
e1508337 |
| 15-Nov-2023 |
Brooks Davis <[email protected]> |
libc: further centralize syscall symbols
All architectures necessarily implement _exit(2) and vfork(2) so declare them in sys/Symbol.map.
Reviewed by: imp, kib, emaste Differential Revision: https:
libc: further centralize syscall symbols
All architectures necessarily implement _exit(2) and vfork(2) so declare them in sys/Symbol.map.
Reviewed by: imp, kib, emaste Differential Revision: https://reviews.freebsd.org/D42614
(cherry picked from commit e4a1800f06884dc00931f55d0fa8cd9ce473a83e)
show more ...
|
| #
695639d2 |
| 15-Nov-2023 |
Brooks Davis <[email protected]> |
libc: Remove empty comments in Symbol.map
These were left over from $FreeBSD$ removal.
Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D42612
(cherry picked from commit 1ca6
libc: Remove empty comments in Symbol.map
These were left over from $FreeBSD$ removal.
Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D42612
(cherry picked from commit 1ca63a8219b88b752b064d19bd3428c61dbcf1f9)
show more ...
|
|
Revision tags: release/14.0.0 |
|
| #
af93fea7 |
| 24-Aug-2023 |
Jake Freeland <[email protected]> |
timerfd: Move implementation from linux compat to sys/kern
Move the timerfd impelemntation from linux compat code to sys/kern. Use it to implement the new system calls for timerfd. Add a hook to ker
timerfd: Move implementation from linux compat to sys/kern
Move the timerfd impelemntation from linux compat code to sys/kern. Use it to implement the new system calls for timerfd. Add a hook to kern_tc to allow timerfd to know when the system time has stepped. Add kqueue support to timerfd. Adjust a few names to be less Linux centric.
RelNotes: YES Reviewed by: markj (on irc), imp, kib (with reservations), jhb (slack) Differential Revision: https://reviews.freebsd.org/D38459
show more ...
|
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0, release/12.3.0 |
|
| #
4a69fc16 |
| 07-Oct-2021 |
Konstantin Belousov <[email protected]> |
Add membarrier(2)
This is an attempt at clean-room implementation of the Linux' membarrier(2) syscall. For documentation, you would need to read both membarrier(2) Linux man page, the comments in L
Add membarrier(2)
This is an attempt at clean-room implementation of the Linux' membarrier(2) syscall. For documentation, you would need to read both membarrier(2) Linux man page, the comments in Linux kernel/sched/membarrier.c implementation and possibly look at actual uses.
Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D32360
show more ...
|
| #
42b38843 |
| 16-Aug-2023 |
Warner Losh <[email protected]> |
Remove $FreeBSD$: one-line .h pattern
Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/
|
| #
dac31024 |
| 31-Mar-2023 |
Konstantin Belousov <[email protected]> |
Rename kqueue1(2) to kqueuex(2) to avoid compat issues with NetBSD
Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D39377
|
| #
375732cc |
| 25-Mar-2023 |
Konstantin Belousov <[email protected]> |
kqueue1(2): export the symbol from libc
Reviewed by: emaste, jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D39271
|
| #
53465702 |
| 08-Dec-2021 |
Konstantin Belousov <[email protected]> |
swapoff: add one more variant of the syscall
Requested and reviewed by: brooks Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D33343
|
| #
395db99f |
| 09-Sep-2021 |
Alex Richardson <[email protected]> |
Export _mmap and __sys_mmap from libc.so
Unlike the other syscalls these two symbols were missing from the version script. I noticed this while looking into the compiler-rt runtime libraries for CHE
Export _mmap and __sys_mmap from libc.so
Unlike the other syscalls these two symbols were missing from the version script. I noticed this while looking into the compiler-rt runtime libraries for CHERI.
Reviewed by: brooks Obtained from: https://github.com/CTSRD-CHERI/cheribsd/pull/1063 MFC after: 3 days
show more ...
|
| #
9bb8304c |
| 02-Sep-2021 |
Ka Ho Ng <[email protected]> |
Symbol.map: Remove an extra space before _Fork
Make it consistent with all other entries.
Sponsored by: The FreeBSD Foundation
|
| #
3904e796 |
| 22-Aug-2021 |
Thomas Munro <[email protected]> |
Fix aio_readv(2), aio_writev(2) with SIGEV_THREAD.
Add missing wrapper code to librt for these new functions so that SIGEV_THREAD works. Without machinery to convert it to SIGEV_THREAD_ID, you got
Fix aio_readv(2), aio_writev(2) with SIGEV_THREAD.
Add missing wrapper code to librt for these new functions so that SIGEV_THREAD works. Without machinery to convert it to SIGEV_THREAD_ID, you got EINVAL.
Reviewed by: asomers MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D31618
show more ...
|
| #
0dc332bf |
| 05-Aug-2021 |
Ka Ho Ng <[email protected]> |
Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9).
fspacectl(2) is a system call to provide space management support to userspace applications. VOP_DEALLOCATE(9) is a VOP call to perform the
Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9).
fspacectl(2) is a system call to provide space management support to userspace applications. VOP_DEALLOCATE(9) is a VOP call to perform the deallocation. vn_deallocate(9) is a public KPI for kmods' use.
The purpose of proposing a new system call, a KPI and a VOP call is to allow bhyve or other hypervisor monitors to emulate the behavior of SCSI UNMAP/NVMe DEALLOCATE on a plain file.
fspacectl(2) comprises of cmd and flags parameters to specify the space management operation to be performed. Currently cmd has to be SPACECTL_DEALLOC, and flags has to be 0.
fo_fspacectl is added to fileops. VOP_DEALLOCATE(9) is added as a new VOP call. A trivial implementation of VOP_DEALLOCATE(9) is provided.
Sponsored by: The FreeBSD Foundation Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D28347
show more ...
|
| #
49ad342c |
| 02-Aug-2021 |
Konstantin Belousov <[email protected]> |
Add _Fork()
Current POSIX standard requires fork() to be async-signal safe. Neither our implementation, nor implementations in other operating systems are, and practically it is impossible to make
Add _Fork()
Current POSIX standard requires fork() to be async-signal safe. Neither our implementation, nor implementations in other operating systems are, and practically it is impossible to make fork() async-signal safe without too much efforts. Also, that would put undue requirement that all atfork handlers should be async-signal safe as well, which contradicts its main use.
As result, Austin Group dropped the requirement, and added a new function _Fork() that should be async-signal safe, but it does not call atfork handlers. Basically, _Fork() can be implemented as a raw syscall.
Release of glibc 2.34 added _Fork(), do the same for FreeBSD. Clarify threading behavior for fork() in the manpage.
Reviewed by: markj Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D31378
show more ...
|
|
Revision tags: release/13.0.0 |
|
| #
21f749da |
| 10-Jan-2021 |
Konstantin Belousov <[email protected]> |
libthr: wrap pdfork(2), same as fork(2).
Without wrapping, rtld services and malloc(3) are not guaranteed to operate correctly in the forked child.
Reviewed by: markj MFC after: 1 week Sponsored by
libthr: wrap pdfork(2), same as fork(2).
Without wrapping, rtld services and malloc(3) are not guaranteed to operate correctly in the forked child.
Reviewed by: markj MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D28088
show more ...
|
| #
022ca2fc |
| 02-Jan-2021 |
Alan Somers <[email protected]> |
Add aio_writev and aio_readv
POSIX AIO is great, but it lacks vectored I/O functions. This commit fixes that shortcoming by adding aio_writev and aio_readv. They aren't part of the standard, but the
Add aio_writev and aio_readv
POSIX AIO is great, but it lacks vectored I/O functions. This commit fixes that shortcoming by adding aio_writev and aio_readv. They aren't part of the standard, but they're an obvious extension. They work just like their synchronous equivalents pwritev and preadv.
It isn't yet possible to use vectored aiocbs with lio_listio, but that could be added in the future.
Reviewed by: jhb, kib, bcr Relnotes: yes Differential Revision: https://reviews.freebsd.org/D27743
show more ...
|
|
Revision tags: release/12.2.0 |
|
| #
3ef55e8f |
| 09-Sep-2020 |
Konstantin Belousov <[email protected]> |
Add shm_create_largepage(3) helper for creation and configuration of largepage shm objects.
And since we can, add memfd_create(MFD_HUGETLB) support, hopefully close enough to the Linux feature.
Rev
Add shm_create_largepage(3) helper for creation and configuration of largepage shm objects.
And since we can, add memfd_create(MFD_HUGETLB) support, hopefully close enough to the Linux feature.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D24652
show more ...
|
|
Revision tags: release/11.4.0 |
|
| #
6f05ed08 |
| 28-May-2020 |
Rick Macklem <[email protected]> |
Add an entry to Symbol.map for the rpctls_syscall added by r361599.
Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D24949
|
| #
7d03e081 |
| 14-Apr-2020 |
Kyle Evans <[email protected]> |
Mark closefrom(2) COMPAT12, reimplement in libc to wrap close_range
Include a temporarily compatibility shim as well for kernels predating close_range, since closefrom is used in some critical areas
Mark closefrom(2) COMPAT12, reimplement in libc to wrap close_range
Include a temporarily compatibility shim as well for kernels predating close_range, since closefrom is used in some critical areas.
Reviewed by: markj (previous version), kib Differential Revision: https://reviews.freebsd.org/D24399
show more ...
|
| #
472ced39 |
| 12-Apr-2020 |
Kyle Evans <[email protected]> |
Implement a close_range(2) syscall
close_range(min, max, flags) allows for a range of descriptors to be closed. The Python folk have indicated that they would much prefer this interface to closefrom
Implement a close_range(2) syscall
close_range(min, max, flags) allows for a range of descriptors to be closed. The Python folk have indicated that they would much prefer this interface to closefrom(2), as the case may be that they/someone have special fds dup'd to higher in the range and they can't necessarily closefrom(min) because they don't want to hit the upper range, but relocating them to lower isn't necessarily feasible.
sys_closefrom has been rewritten to use kern_close_range() using ~0U to indicate closing to the end of the range. This was chosen rather than requiring callers of kern_close_range() to hold FILEDESC_SLOCK across the call to kern_close_range for simplicity.
The flags argument of close_range(2) is currently unused, so any flags set is currently EINVAL. It was added to the interface in Linux so that future flags could be added for, e.g., "halt on first error" and things of this nature.
This patch is based on a syscall of the same design that is expected to be merged into Linux.
Reviewed by: kib, markj, vangyzen (all slightly earlier revisions) Differential Revision: https://reviews.freebsd.org/D21627
show more ...
|
| #
146fc63f |
| 09-Feb-2020 |
Konstantin Belousov <[email protected]> |
Add a way to manage thread signal mask using shared word, instead of syscall.
A new syscall sigfastblock(2) is added which registers a uint32_t variable as containing the count of blocks for signal
Add a way to manage thread signal mask using shared word, instead of syscall.
A new syscall sigfastblock(2) is added which registers a uint32_t variable as containing the count of blocks for signal delivery. Its content is read by kernel on each syscall entry and on AST processing, non-zero count of blocks is interpreted same as the signal mask blocking all signals.
The biggest downside of the feature that I see is that memory corruption that affects the registered fast sigblock location, would cause quite strange application misbehavior. For instance, the process would be immune to ^C (but killable by SIGKILL).
With consumers (rtld and libthr added), benchmarks do not show a slow-down of the syscalls in micro-measurements, and macro benchmarks like buildworld do not demonstrate a difference. Part of the reason is that buildworld time is dominated by compiler, and clang already links to libthr. On the other hand, small utilities typically used by shell scripts have the total number of syscalls cut by half.
The syscall is not exported from the stable libc version namespace on purpose. It is intended to be used only by our C runtime implementation internals.
Tested by: pho Disscussed with: cem, emaste, jilles Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D12773
show more ...
|
|
Revision tags: release/12.1.0 |
|
| #
9afb12ba |
| 26-Sep-2019 |
David Bright <[email protected]> |
Add an shm_rename syscall
Add an atomic shm rename operation, similar in spirit to a file rename. Atomically unlink an shm from a source path and link it to a destination path. If an existing shm is
Add an shm_rename syscall
Add an atomic shm rename operation, similar in spirit to a file rename. Atomically unlink an shm from a source path and link it to a destination path. If an existing shm is linked at the destination path, unlink it as part of the same atomic operation. The caller needs the same permissions as shm_unlink to the shm being renamed, and the same permissions for the shm at the destination which is being unlinked, if it exists. If those fail, EACCES is returned, as with the other shm_* syscalls.
truss support is included; audit support will come later.
This commit includes only the implementation; the sysent-generated bits will come in a follow-on commit.
Submitted by: Matthew Bryan <[email protected]> Reviewed by: jilles (earlier revision) Reviewed by: brueffer (manpages, earlier revision) Relnotes: yes Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D21423
show more ...
|
| #
3e25d1fb |
| 25-Sep-2019 |
Kyle Evans <[email protected]> |
Add linux-compatible memfd_create
memfd_create is effectively a SHM_ANON shm_open(2) mapping with optional CLOEXEC and file sealing support. This is used by some mesa parts, some linux libs, and qem
Add linux-compatible memfd_create
memfd_create is effectively a SHM_ANON shm_open(2) mapping with optional CLOEXEC and file sealing support. This is used by some mesa parts, some linux libs, and qemu can also take advantage of it and uses the sealing to prevent resizing the region.
This reimplements shm_open in terms of shm_open2(2) at the same time.
shm_open(2) will be moved to COMPAT12 shortly.
Reviewed by: markj, kib Differential Revision: https://reviews.freebsd.org/D21393
show more ...
|