opnsense-src/sys/sys
Olivier Certner c1d7552ddd
New setcred() system call and associated MAC hooks
This new system call allows to set all necessary credentials of
a process in one go: Effective, real and saved UIDs, effective, real and
saved GIDs, supplementary groups and the MAC label.  Its advantage over
standard credential-setting system calls (such as setuid(), seteuid(),
etc.) is that it enables MAC modules, such as MAC/do, to restrict the
set of credentials some process may gain in a fine-grained manner.

Traditionally, credential changes rely on setuid binaries that call
multiple credential system calls and in a specific order (setuid() must
be last, so as to remain root for all other credential-setting calls,
which would otherwise fail with insufficient privileges).  This
piecewise approach causes the process to transiently hold credentials
that are neither the original nor the final ones.  For the kernel to
enforce that only certain transitions of credentials are allowed, either
these possibly non-compliant transient states have to disappear (by
setting all relevant attributes in one go), or the kernel must delay
setting or checking the new credentials.  Delaying setting credentials
could be done, e.g., by having some mode where the standard system calls
contribute to building new credentials but without committing them.  It
could be started and ended by a special system call.  Delaying checking
could mean that, e.g., the kernel only verifies the credentials
transition at the next non-credential-setting system call (we just
mention this possibility for completeness, but are certainly not
endorsing it).

We chose the simpler approach of a new system call, as we don't expect
the set of credentials one can set to change often.  It has the
advantages that the traditional system calls' code doesn't have to be
changed and that we can establish a special MAC protocol for it, by
having some cleanup function called just before returning (this is
a requirement for MAC/do), without disturbing the existing ones.

The mac_cred_check_setcred() hook is passed the flags received by
setcred() (including the version) and both the old and new kernel's
'struct ucred' instead of 'struct setcred' as this should simplify
evolving existing hooks as the 'struct setcred' structure evolves.  The
mac_cred_setcred_enter() and mac_cred_setcred_exit() hooks are always
called by pairs around potential calls to mac_cred_check_setcred().
They allow MAC modules to allocate/free data they may need in their
mac_cred_check_setcred() hook, as the latter is called under the current
process' lock, rendering sleepable allocations impossible.  MAC/do is
going to leverage these in a subsequent commit.  A scheme where
mac_cred_check_setcred() could return ERESTART was considered but is
incompatible with proper composition of MAC modules.

While here, add missing includes and declarations for standalone
inclusion of <sys/ucred.h> both from kernel and userspace (for the
latter, it has been working thanks to <bsm/audit.h> already including
<sys/types.h>).

Reviewed by:    brooks
Approved by:    markj (mentor)
Relnotes:       yes
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D47618

(cherry picked from commit ddb3eb4efe55e57c206f3534263c77b837aff1dc)
2025-04-03 21:31:03 +02:00
..
disk mkimg: Ensure GPT Entry Array is at least 16k 2023-10-18 09:23:40 -06:00
_atomic64e.h atomics: Constify loads 2025-01-16 19:06:53 +01:00
_atomic_subword.h atomics: Constify loads 2025-01-16 19:06:53 +01:00
_bitset.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_blockcount.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_bus_dma.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_callout.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
_clock_id.h clock_id: These symbols weren't in 4.4BSD, adjust copyright 2021-08-02 15:50:32 -06:00
_cpuset.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_domainset.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_endian.h sys/sys/_endian.h: typo (Compatiblity) 2023-05-05 01:23:09 +01:00
_eventhandler.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_ffcounter.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_iovec.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
_lock.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_lockmgr.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_mutex.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_null.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_pctrie.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_pthreadtypes.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_pv_entry.h sys/_pv_entry.h: Include sys/param.h 2022-10-11 12:51:55 -06:00
_rangeset.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_rmlock.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_rwlock.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_semaphore.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_seqc.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
_sigset.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
_sigval.h sys/signal.h: move union sigval into dedicated private header sys/_sigval.h 2024-04-30 03:48:09 +03:00
_smr.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_sockaddr_storage.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
_stack.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_stdarg.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_stdint.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_sx.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_task.h taskqueue: Move the timeout_task definition to _task.h 2024-07-15 09:39:06 -04:00
_termios.h (s)tty: add support for IUTF8 input flag 2023-10-21 17:28:34 +03:00
_timespec.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
_timeval.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_tls_variant_i.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
_types.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_ucontext.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_uio.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
_umtx.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_unrhdr.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
_winsize.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
aac_ioctl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
abi_compat.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
acct.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
acl.h sys: Mark ACL conversion routines as __result_use_check 2024-09-05 10:50:09 -04:00
agpio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
aio.h aio_read2/aio_write2: add AIO_OP2_VECTORED 2024-02-18 12:01:46 +02:00
alq.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
apm.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
arb.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
asan.h thread: Simplify sanitizer integration with thread creation 2025-02-07 14:46:53 +00:00
assym.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ata.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
atomic_common.h atomics: atomic_load_consume_ptr(): Accept pointers to const 2025-01-27 19:19:57 +01:00
atomic_san.h atomics: Constify loads: Remove now superfluous uses of DECONST() 2025-01-27 19:19:57 +01:00
auxv.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
backlight.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bio.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
bitcount.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
bitset.h bitset: __BIT_FFS_AT(): Fix herald comment, take 2 2024-10-04 10:42:46 +02:00
bitstring.h bitstring: Support large bit strings. 2023-12-13 17:41:48 +01:00
blist.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
blockcount.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
boot.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
boottrace.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
buf.h buf: Add a runningbufclaim() helper 2024-12-06 14:51:09 +00:00
buf_ring.h buf_ring: Add an Arm copyright 2024-09-02 08:49:38 +00:00
bufobj.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bus.h new-bus: Add bus_(identify|attach|detach)_children 2025-02-27 10:19:24 -05:00
bus_dma.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
bus_dma_internal.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bus_san.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
busdma_bufalloc.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
callout.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
caprights.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
capsicum.h capsicum: introduce cap_rights_is_empty Function 2024-06-05 11:55:17 -04:00
cdefs.h cdefs: Bump the defaults for 'all' 2025-02-20 09:13:25 -05:00
cdio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
cdrio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
cfictl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
chio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ck.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
clock.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
cnv.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
compressor.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
condvar.h condvar: Clean up condvar.h a bit 2024-01-29 09:25:45 -05:00
conf.h cdevpriv(9): add iterator 2024-03-30 10:31:13 +02:00
cons.h vt/sc: retire logic to select vt(4) by default for UEFI boot 2024-08-01 12:10:26 -04:00
consio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
copyright.h kernel: Make some compile time constant variables const 2024-09-20 18:04:02 +08:00
counter.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
coverage.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
cpu.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
cpuctl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
cpuset.h bitset: Add ORNOT macros 2024-05-11 18:57:44 -05:00
crc16.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
csan.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ctf.h ctf: Add v3 support to CTF tools, ctf{convert,dump,merge} 2022-03-07 10:43:19 -05:00
ctype.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
devctl.h kern: Move devctl_systems[] out of sys/sys/devctl.h 2023-06-08 12:28:04 -04:00
devicestat.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
devmap.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
dirent.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
disk.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
disk_zone.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
disklabel.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
diskmbr.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
dkstat.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
dnv.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
domain.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
domainset.h bitset: Add ORNOT macros 2024-05-11 18:57:44 -05:00
dtrace_bsd.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
dvdio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
efi.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
efiio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
elf.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
elf32.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
elf64.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
elf_common.h arm64: Support SVE in ptrace and core dumps 2024-10-21 15:03:27 +00:00
elf_generic.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
endian.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
epoch.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
errno.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
eui64.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
event.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
eventfd.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
eventhandler.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
eventvar.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
exec.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
extattr.h Move kern_extattr_* prototypes to <sys/syscallsubr.h> 2023-10-24 10:00:57 -07:00
fail.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
fbio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
fcntl.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
fdcio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
file.h kern: Make fileops and filterops tables const where possible 2024-12-03 01:03:42 +00:00
filedesc.h Add proc_nfiles(9) 2024-10-05 10:08:55 +03:00
filio.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
firmware.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
fnv_hash.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
font.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
gmon.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
gpio.h sys: Add GPIO_INTR_EDGE_MASK define 2024-11-03 08:01:27 -08:00
gpt.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
gsb_crc32.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
gtaskqueue.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
hash.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
hhook.h hhook: Sprinkle const qualifiers where appropriate 2024-10-08 12:44:54 +08:00
iconv.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
imgact.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
imgact_aout.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
imgact_binmisc.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
imgact_elf.h imgact_elf: Export __elfN(parse_notes) 2024-02-19 13:12:51 +00:00
interrupt.h intr: move MAX_STRAY_LOG to interrupt.h 2023-08-17 18:10:02 -04:00
intr.h intrng: Allow alternative IPI PICs to be registered and used 2024-09-07 00:59:02 +01:00
ioccom.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
ioctl.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
ioctl_compat.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
iov.h iovctl: allow vlan restrictions to be passed to the driver 2024-07-01 18:06:05 +02:00
iov_schema.h iovctl: allow vlan restrictions to be passed to the driver 2024-07-01 18:06:05 +02:00
ipc.h sysvshm: add shmobjinfo() function to find key/seq of the segment backed by obj 2024-10-15 17:50:16 +03:00
ipmi.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
jail.h jail.h: New SYSCTL_JAIL_PARAM_DECL() 2025-01-16 19:06:55 +01:00
joystick.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kassert.h kassert.h: update MPASS definition commentary 2024-04-18 15:17:52 -03:00
kbio.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
kcov.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kdb.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kenv.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kern_prefetch.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kernel.h clock: Add a long ticks variable, ticksl 2025-02-14 19:25:18 +00:00
kerneldump.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
khelp.h khelp: Sprinkle const qualifiers where appropriate 2024-10-08 12:44:54 +08:00
kobj.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kpilite.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ksem.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kthread.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ktls.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ktr.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
ktr_class.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
ktrace.h socket: Implement SO_SPLICE 2024-10-17 15:48:36 +00:00
libkern.h libkern: don't use MPASS 2025-02-10 08:16:25 -06:00
limits.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
link_aout.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
link_elf.h rtld: add rtld_{get,set}_var 2024-11-14 02:42:17 +02:00
linker.h linuxkpi: Provide a non-NULL value for THIS_MODULE 2024-11-30 08:55:57 -05:00
linker_set.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
lock.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
lock_profile.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
lockf.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
lockmgr.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
lockstat.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
loginclass.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mac.h MAC: mac.h: Fix missing includes/typedefs 2025-01-16 19:06:53 +01:00
malloc.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
mbuf.h mb_unmapped_to_ext(): return error code on error 2025-01-20 04:40:09 +02:00
mchain.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
md4.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
md5.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
mdioctl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
membarrier.h membarrier.h: fix typo 2024-10-16 08:15:04 -04:00
memdesc.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
memrange.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mman.h kern: Make fileops and filterops tables const where possible 2024-12-03 01:03:42 +00:00
module.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
module_khelp.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mount.h fs: Add new VFCF_xxx flags for va_filerev 2025-01-28 14:38:52 -08:00
mouse.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mpt_ioctl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mqueue.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
msan.h kmsan: Add kmsan_check_uio() 2023-12-14 09:44:38 -05:00
msg.h SysV IPC: provide in-kernel helpers to obtain ipcs(8)-like information 2024-05-23 03:26:44 +03:00
msgbuf.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
mtio.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
mutex.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
namei.h sys/namei.h: move NI_CAP_VIOLATION() macro from namei.h to vfs_lookup.c 2024-05-15 16:21:34 +03:00
nlist_aout.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nv.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nv_namespace.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
osd.h osd: Constify signature of osd_register() 2025-01-16 19:06:52 +01:00
param.h param.h: Bump _FreeBSD_version for commit 9fed515190 2025-02-28 13:25:43 -08:00
pciio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pcpu.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pctrie.h pctrie: change for vm_radix compatibility 2023-08-21 12:28:51 -05:00
physmem.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pidctrl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pipe.h kern: Make fileops and filterops tables const where possible 2024-12-03 01:03:42 +00:00
pmc.h pmc: better distinguish pmu-events allocation path 2023-09-11 12:19:58 -07:00
pmckern.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pmclog.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
poll.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
posix4.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
power.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
priority.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
priv.h New setcred() system call and associated MAC hooks 2025-04-03 21:31:03 +02:00
prng.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
proc.h thread: Simplify sanitizer integration with thread creation 2025-02-07 14:46:53 +00:00
procctl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
procdesc.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
procfs.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
protosw.h unix: Add support for atomically setting the socket mode 2024-12-03 01:03:26 +00:00
ptio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ptrace.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
qmath.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
queue.h queue: Add atomic variants for *_EMPTY 2025-03-07 22:51:48 +00:00
queue_mergesort.h Add <sys/queue_mergesort.h> 2023-08-19 22:04:55 -07:00
racct.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
random.h Add an Armv8 rndr random number provider 2024-10-21 15:03:26 +00:00
rangelock.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rangeset.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rctl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
reboot.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
refcount.h refcount: Constify refcount_load() 2025-01-16 19:06:53 +01:00
reg.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
regression.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
resource.h Userspace enablement for getrlimitusage(2) 2024-10-05 10:08:55 +03:00
resourcevar.h kernel: add RLIMIT_PIPEBUF 2024-10-05 10:08:54 +03:00
rman.h rman: Add rman_get/set_type 2025-02-27 08:09:22 -05:00
rmlock.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rtprio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
runq.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rwlock.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sbuf.h Remove my middle name. 2023-08-17 15:08:30 +02:00
sched.h sched_unpin(): assert that curthread was pinned 2024-07-03 11:02:28 +03:00
sdt.h sdt: Add macros which expand to probe and provider structure names 2024-05-08 09:06:16 -04:00
select.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
selinfo.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
sem.h SysV IPC: provide in-kernel helpers to obtain ipcs(8)-like information 2024-05-23 03:26:44 +03:00
sema.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
seqc.h atomics: Constify loads: Remove now superfluous uses of DECONST() 2025-01-27 19:19:57 +01:00
serial.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sf_buf.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sglist.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
shm.h sysvshm: add shmobjinfo() function to find key/seq of the segment backed by obj 2024-10-15 17:50:16 +03:00
sigio.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
signal.h posix: POSIX-1.2008 moved SA_* from XSI to base standard 2025-03-14 11:51:03 -06:00
signalvar.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
sleepqueue.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
slicer.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
smp.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
smr.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
smr_types.h smr: Load to accept pointers to const pointers 2025-01-27 19:19:57 +01:00
sndstat.h sound: Add OSS channel capabilities to sndstat nvlist 2024-07-29 18:34:54 +03:00
snoop.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sockbuf.h socket: Implement SO_SPLICE 2024-10-17 15:48:36 +00:00
socket.h socket: Add an option to retrieve a socket's FIB number 2025-02-21 01:04:50 +00:00
socketvar.h socket: Move SO_SETFIB handling to protocol layers 2025-02-21 01:04:50 +00:00
sockio.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
sockopt.h socket: Make the sopt_rights field a pointer to const 2024-08-20 13:22:56 +00:00
soundcard.h sound: Rename oss_audioinfo->real_device to oss_audioinfo->legacy_device 2024-05-17 21:30:36 +02:00
specialfd.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
spigenio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
splash.h linker: Add MODINFOMD_SPLASH type 2024-07-29 18:37:42 +02:00
stack.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
stat.h stat(2): add st_filerev 2025-01-23 11:46:57 +02:00
stats.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
statvfs.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
stdatomic.h stdatomic: Only use clang atomics if __clang__ is defined 2024-11-30 08:55:57 -05:00
stddef.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
stdint.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sx.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
syscall.h New setcred() system call and associated MAC hooks 2025-04-03 21:31:03 +02:00
syscall.mk New setcred() system call and associated MAC hooks 2025-04-03 21:31:03 +02:00
syscallsubr.h New setcred() system call and associated MAC hooks 2025-04-03 21:31:03 +02:00
sysctl.h sysctl: add KERN_PROC_RLIMIT_USAGE 2024-10-05 10:08:56 +03:00
sysent.h sysent: Trim trailing whitespaces 2023-10-10 08:12:12 +03:00
syslimits.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
syslog.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
sysproto.h New setcred() system call and associated MAC hooks 2025-04-03 21:31:03 +02:00
systm.h kernel: Make some compile time constant variables const 2024-09-20 18:04:02 +08:00
taskqueue.h taskqueue: Move the timeout_task definition to _task.h 2024-07-15 09:39:06 -04:00
terminal.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
termios.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
thr.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
tiio.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
tim_filter.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
time.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
timeb.h libutil: move ftime to libutil 2024-06-28 12:17:52 +02:00
timeet.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
timeffc.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
timepps.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
timerfd.h timerfd: Move kern_timerfd_* prototypes to <sys/syscallsubr.h> 2024-04-08 10:49:59 -07:00
timers.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
times.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
timespec.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
timetc.h clock: Add a long ticks variable, ticksl 2025-02-14 19:25:18 +00:00
timex.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
tree.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
tslog.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
tty.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ttycom.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
ttydefaults.h tty: set IUTF8 by default 2023-11-20 18:52:01 +02:00
ttydevsw.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ttydisc.h kern: tty: recanonicalize the buffer on ICANON/VEOF/VEOL changes 2024-01-30 11:11:24 -06:00
ttyhook.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ttyqueue.h kern: tty: recanonicalize the buffer on ICANON/VEOF/VEOL changes 2024-01-30 11:11:24 -06:00
turnstile.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
types.h sys: Remove two double words in source code comments 2024-04-25 08:17:04 +02:00
ucontext.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ucred.h New setcred() system call and associated MAC hooks 2025-04-03 21:31:03 +02:00
uio.h Abstract UIO allocation and deallocation. 2024-03-08 23:27:20 -05:00
umtx.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
umtxvar.h umtx: Add a helper for unlocked umtxq_busy() calls 2025-03-07 22:51:48 +00:00
un.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
unistd.h Add kcmp(2) kernel bits 2024-01-30 22:24:42 +02:00
unpcb.h unix: Add support for atomically setting the socket mode 2024-12-03 01:03:26 +00:00
user.h vm_object: Report laundry pages in kinfo_vmobject 2024-10-29 13:04:25 +00:00
utsname.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
uuid.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
vdso.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
vmem.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
vmmeter.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
vnode.h stat(2): add st_filerev 2025-01-23 11:46:57 +02:00
wait.h sys: Remove $FreeBSD$: one-line .h pattern 2023-08-16 11:54:18 -06:00
watchdog.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00