Lines Matching +full:in +full:- +full:kernel

2 .\" SPDX-License-Identifier: BSD-2-Clause
14 .Nd "introduction to kernel programming interfaces"
18 kernel documentation.
22 programming interfaces available within the kernel.
29 OS-level concepts and practices.
34 To further set expectations, we acknowledge that kernel documentation, like the
35 source code itself, is forever a work-in-progress.
46 pages in this section most frequently describe functions, but may also
47 describe types, global variables, macros, or high-level concepts.
51 kernel is expected to conform to the established style and coding conventions.
58 There are implementations for many well-known data structures available in the
59 kernel.
60 .Bl -tag -width "Xr bitstring 3"
64 An SMP-safe general-purpose counter implementation.
70 Singly-linked and doubly-linked lists, and queues.
72 An SMP-safe implementation of reference counts.
84 sub-sections below.
89 Endian-swapping functions:
92 Data output in hexadecimal format:
100 Non-recoverable errors in the kernel should trigger a
102 Run-time assertions can be verified using the
105 Compile-time assertions should use
109 executed during start-up and shutdown; see
120 man page gives an overview of the various types of locks available in the
121 kernel and advice on their usage.
130 facilities are used to create lock-free data structures.
134 Dynamic memory allocations inside the kernel are generally done using
140 .\" high-level page which points to the following contents instead.
145 .Bd -ragged -offset indent
167 The machine-dependent portion of the virtual memory stack is the
175 The kernel interface for file systems is
182 is the abstract and filesystem-independent representation of a file,
183 directory, or other file-like entity within the kernel.
204 facility provides an interface for recording device statistics in disk drivers.
223 The front-end for interfacing with network sockets from within the kernel is
226 The back-end interface for socket implementations is
229 The low-level packet filter interface is described by
246 .\" would be helpful in laying out the high-level concepts of FreeBSD's device
263 Buses may have children, in the form of devices or other buses.
275 Drivers can request and manage their resources (e.g. memory-space or IRQ
277 .Bd -ragged -offset indent
293 The kernel clock frequency and overall system time model is described by
296 A few global time variables, such as system up-time, are described by
302 Direct read/write access of userspace memory from the kernel is not permitted,
303 and memory transactions that cross the kernel/user boundary must go through one
317 .Ss Kernel Threads, Tasks, and Callbacks
318 Kernel threads and processes are created using the
324 Where dedicated kernel threads are too heavyweight, there is also the
328 For low-latency callback handling, the
332 Dynamic handlers for pre-defined event hooks are registered and invoked using
337 The machine-independent interface to a context switch is
368 The kernel interface for signals is described by
375 See the overview in
396 supporting dynamically-registered security modules;
409 .Ss Kernel Modules
410 The interfaces for declaring loadable kernel modules are described by
414 describes the machine-independent portion of the interrupt framework
424 A kernel test framework:
432 kernel debugger are defined with the
438 tracing facility adds static tracepoints to many areas of the kernel.
450 Kernel sanitizers can perform additional compiler-assisted checks against
452 These runtimes are capable of detecting difficult-to-identify classes of bugs,
454 The Kernel Address Sanitizer
456 and Kernel Memory Sanitizer
462 kernel config option enables extra code to assist with profiling and/or
466 .Bl -tag -width "Xr usbdi 9"
474 Pulse-Width Modulation (PWM) bus interface methods.
481 Dynamic per-CPU variables:
487 Kernel environment management:
490 Contexts for CPU floating-point registers are managed by the
497 A facility for asynchronous logging to files from within the kernel is provided
503 framework provides a mechanism to dynamically extend core structures in a way
511 The kernel object implementation is described by
518 .%U https://docs.freebsd.org/en/books/arch-handbook/