opnsense-src/sys
Gleb Smirnoff 841dcdcd3f netlink: initialize VNET context with VNET_SYSINIT()
With the initial check-in netlink(4) was very conservative with regards to
using memory and intrusiveness to the kernel and network stack. In
particular it would initialize the VNET context only on the first actuall
call to socket(PF_NETLINK), saving on allocation of a struct nl_control of
size 224 bytes.

Now it is clear that netlink(4) is primary citizen of FreeBSD, with a set
of system tools using it.  So resort to normal VNET_SYSINIT() and with
that shave a lot of complexity, since after the change V_nl_ctl is
immutable.
2025-02-04 16:54:21 -08:00
..
amd64 sys: Add cpu_update_pcb hook 2025-01-31 15:40:29 -05:00
arm sys: Add cpu_update_pcb hook 2025-01-31 15:40:29 -05:00
arm64 arm64: Add a quirk for arm,fvp-base-revc 2025-02-04 12:21:04 +00:00
bsm New setcred() system call and associated MAC hooks 2024-12-16 15:42:39 +01:00
cam cam/da: Document what an 'invalid pack' means. 2025-02-04 11:29:38 -07:00
cddl Revert "dtrace/arm64: Simplify dtrace_getarg() slightly" 2025-01-29 03:12:46 +00:00
compat sysent: regen for deletion of gssd_syscall and new ABI for rpctls_syscall 2025-02-01 01:00:28 -08:00
conf kernel: Print SOURCE_DATE_EPOCH in UTC 2025-02-03 15:58:32 -08:00
contrib rtw88/rtw89: add module_param to enable/disable HT/VHT and EHT 2025-01-31 23:53:31 +00:00
crypto libmd: re-apply masking of _Transform names 2024-09-30 14:59:31 -05:00
ddb proc: Remove kernel stack swapping support, part 6 2024-07-29 01:43:18 +00:00
dev mpt: replace mpt_prt with mpt_lprt in mpt_cam.c 2025-02-04 17:47:21 -07:00
dts dts: Bump the freebsd branding version to 6.12 2025-01-08 10:34:06 +01:00
fs nfs: set vnet(9) context in mountnfs() 2025-02-01 01:00:26 -08:00
gdb thread: Remove kernel stack swapping support, part 4 2024-07-29 01:40:22 +00:00
geom gvinum: Remove kernel support 2025-01-23 11:20:42 -05:00
gnu
i386 sys: Add cpu_update_pcb hook 2025-01-31 15:40:29 -05:00
isa Replace calls to bus_generic_attach with bus_attach_children 2024-12-06 17:26:16 -05:00
kern unlink, rmdir: call notify_upper from VOP pre method instead of syscall 2025-02-05 00:19:50 +02:00
kgssapi kgssapi: use netlink RPC client to talk to gssd(8) 2025-02-01 01:00:25 -08:00
libkern include: ssp: round out fortification of current set of headers 2024-07-13 00:16:24 -05:00
modules mt7601U: Importing if_mtw from OpenBSD 2025-02-03 20:20:52 +01:00
net pf: send ICMP destination unreachable fragmentation needed when appropriate 2025-02-04 21:56:06 +01:00
net80211 net80211: Fix a typo in a source code comment 2025-01-26 13:10:14 +01:00
netgraph ng_hci: add support for Bluetooth Secure Simple Pairing 2025-01-27 13:27:28 +00:00
netinet man: Remove references to classful networks 2025-02-04 22:27:21 +01:00
netinet6 sctp: don't specify pr_poll = sopoll_generic 2025-02-02 22:38:18 -08:00
netipsec ipsec: allow it to work with unmapped mbufs 2025-01-13 21:29:32 +02:00
netlink netlink: initialize VNET context with VNET_SYSINIT() 2025-02-04 16:54:21 -08:00
netpfil pf: send ICMP destination unreachable fragmentation needed when appropriate 2025-02-04 21:56:06 +01:00
netsmb sockets: garbage collect SB_NOINTR 2025-02-02 22:38:18 -08:00
nfs
nfsclient
nfsserver
nlm nlm: set vnet(9) context in the NLM syscall 2025-02-01 01:00:26 -08:00
ofed LinuxKPI: Remove owner argument from class_create function on KBI layer 2024-07-21 16:09:58 +03:00
opencrypto sys: make the kernel metadata pointer global 2025-01-24 14:25:51 -07:00
powerpc sys: Add cpu_update_pcb hook 2025-01-31 15:40:29 -05:00
riscv riscv: Fix and generalise saving TP (PCPU pointer) whilst in userspace 2025-02-04 17:28:42 +00:00
rpc krpc/clnt_nl: filter RPC replies on vnet 2025-02-01 11:27:22 -08:00
security audit: Fix short-circuiting in syscallenter() 2025-01-14 14:19:28 +00:00
sys protosw: this is a kernel only header, put back #ifdef _KERNEL 2025-02-03 09:48:53 -08:00
teken Typo: brig(h)tness 2024-09-11 08:35:46 +00:00
tests netlink: use nitems() and roundup(2) from param.h 2024-12-03 12:04:39 -08:00
tools vnode: Make the vop_vector reference a pointer to const 2024-11-26 20:57:54 +00:00
ufs ffs: fix build with GEOM_LABEL and without FFS, e.g. MINIMAL 2025-02-01 01:00:25 -08:00
vm vm_reserv: use default pool for free page removal. 2025-02-03 15:58:17 -06:00
x86 mca_log: add missing breaks when handling thresholds 2025-01-29 19:42:18 -08:00
xdr xdr: provide x_putmbuf method for xdrmem 2025-02-01 01:00:25 -08:00
xen x86/xen: Use intended values in HVM_CALLBACK_VECTOR 2024-11-06 15:46:05 +01:00
Makefile sys: Index netlink/ files with the cscope target 2024-07-22 09:50:43 +00:00
README.md man filesystems: fix more xrefs after move to s4 2024-06-27 18:32:05 -06:00

FreeBSD Kernel Source:

This directory contains the source files and build glue that make up the FreeBSD kernel and its modules, including both original and contributed software.

Kernel configuration files are located in the conf/ subdirectory of each architecture. GENERIC is the configuration used in release builds. NOTES contains documentation of all possible entries. LINT is a compile-only configuration used to maximize build coverage and detect regressions.

Documentation:

Source code documentation is maintained in a set of man pages, under section 9. These pages are located in share/man/man9, from the top-level of the src tree. Consult intro(9) for an overview of existing pages.

Some additional high-level documentation of the kernel is maintained in the Architecture Handbook.

Source Roadmap:

Directory Description
amd64 AMD64 (64-bit x86) architecture support
arm 32-bit ARM architecture support
arm64 64-bit ARM (AArch64) architecture support
cam Common Access Method storage subsystem - cam(4) and ctl(4)
cddl CDDL-licensed optional sources such as DTrace
conf kernel build glue
compat Linux compatibility layer, FreeBSD 32-bit compatibility
contrib 3rd-party imported software such as OpenZFS
crypto crypto drivers
ddb interactive kernel debugger - ddb(4)
fs most filesystems, excluding UFS, NFS, and ZFS
dev device drivers and other arch independent code
gdb kernel remote GDB stub - gdb(4)
geom GEOM framework - geom(4)
i386 i386 (32-bit x86) architecture support
kern main part of the kernel
libkern libc-like and other support functions for kernel use
modules kernel module infrastructure
net core networking code
net80211 wireless networking (IEEE 802.11) - net80211(4)
netgraph graph-based networking subsystem - netgraph(4)
netinet IPv4 protocol implementation - inet(4)
netinet6 IPv6 protocol implementation - inet6(4)
netipsec IPsec protocol implementation - ipsec(4)
netpfil packet filters - ipfw(4), pf(4), and ipfilter(4)
opencrypto OpenCrypto framework - crypto(7)
powerpc PowerPC/POWER (32 and 64-bit) architecture support
riscv 64-bit RISC-V architecture support
security security facilities - audit(4) and mac(4)
sys kernel headers
tests kernel unit tests
ufs Unix File System - ffs(4)
vm virtual memory system
x86 code shared by AMD64 and i386 architectures