1*edfa7875Swiz.\" $NetBSD: intro.9,v 1.26 2019/09/01 19:09:00 wiz Exp $ 2d58b5c29Sjeremy.\" 3e3179c1bSrmind.\" Copyright (c) 1997, 2007 The NetBSD Foundation, Inc. 4d58b5c29Sjeremy.\" All rights reserved. 5d58b5c29Sjeremy.\" 6d58b5c29Sjeremy.\" This code is derived from software contributed to The NetBSD Foundation 7e3179c1bSrmind.\" by Jeremy Cooper, and Mindaugas Rasiukevicius. 8d58b5c29Sjeremy.\" 9d58b5c29Sjeremy.\" Redistribution and use in source and binary forms, with or without 10d58b5c29Sjeremy.\" modification, are permitted provided that the following conditions 11d58b5c29Sjeremy.\" are met: 12d58b5c29Sjeremy.\" 1. Redistributions of source code must retain the above copyright 13d58b5c29Sjeremy.\" notice, this list of conditions and the following disclaimer. 14d58b5c29Sjeremy.\" 2. Redistributions in binary form must reproduce the above copyright 15d58b5c29Sjeremy.\" notice, this list of conditions and the following disclaimer in the 16d58b5c29Sjeremy.\" documentation and/or other materials provided with the distribution. 17d58b5c29Sjeremy.\" 18d58b5c29Sjeremy.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19d58b5c29Sjeremy.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20d58b5c29Sjeremy.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21d58b5c29Sjeremy.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE 22d58b5c29Sjeremy.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23d58b5c29Sjeremy.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24d58b5c29Sjeremy.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25d58b5c29Sjeremy.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26d58b5c29Sjeremy.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27d58b5c29Sjeremy.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28d58b5c29Sjeremy.\" POSSIBILITY OF SUCH DAMAGE. 29d58b5c29Sjeremy.\" 3094924a74Smaxv.Dd July 14, 2018 31d58b5c29Sjeremy.Dt INTRO 9 32e9a2afbdSjoerg.Os 33d58b5c29Sjeremy.Sh NAME 34d58b5c29Sjeremy.Nm intro 35d58b5c29Sjeremy.Nd introduction to kernel internals 36d58b5c29Sjeremy.Sh DESCRIPTION 370fcbe067SmsaitohThis section contains information related to the internal operation of the 38d58b5c29Sjeremysystem kernel. 39d58b5c29SjeremyIt describes function interfaces and variables of use to the systems and device 40d58b5c29Sjeremydriver programmer. 41d58b5c29Sjeremy.Pp 42d58b5c29SjeremyIn addition to the normal man page format, the kernel pages include an 43d58b5c29Sjeremyadditional section: 44d58b5c29Sjeremy.Bl -tag -width "CODE REFERENCES" 45d58b5c29Sjeremy.It "CODE REFERENCES" 46d58b5c29SjeremyContains the pathname(s) of the source file(s) which contain the definition 47d58b5c29Sjeremyand/or source code of the variables or functions being documented. 4805859157SwizAny paths are relative to the top level of the source tree (traditionally 4905859157Swiz.Pa /usr/src ) . 50d58b5c29Sjeremy.El 51e3179c1bSrmind.Sh MEMORY MANAGEMENT 52e3179c1bSrmindIntroduction to kernel memory allocators. 53e3179c1bSrmindSee 54e3179c1bSrmind.Xr memoryallocators 9 . 55e3179c1bSrmind.Pp 56e3179c1bSrmindMachine-dependent portion of the virtual memory system. 57e3179c1bSrmindSee 58e3179c1bSrmind.Xr pmap 9 . 59e3179c1bSrmind.Pp 60e3179c1bSrmindVirtual memory system external interface. 61e3179c1bSrmindSee 62e3179c1bSrmind.Xr uvm 9 . 63e3179c1bSrmind.Sh I/O SUBSYSTEM 64e3179c1bSrmindBuffer cache interfaces. 65e3179c1bSrmindSee 66e3179c1bSrmind.Xr buffercache 9 . 67e3179c1bSrmind.Pp 68e3179c1bSrmindDevice buffer queues. 69e3179c1bSrmindSee 70e3179c1bSrmind.Xr bufq 9 . 71e3179c1bSrmind.Pp 72e3179c1bSrmindInitiate I/O on raw devices. 73e3179c1bSrmindSee 74e3179c1bSrmind.Xr physio 9 . 75e3179c1bSrmind.Pp 76e3179c1bSrmindI/O descriptor allocation interface. 77e3179c1bSrmindSee 78e3179c1bSrmind.Xr getiobuf 9 . 79e3179c1bSrmind.Sh PROCESS CONTROL 80e3179c1bSrmindIdle CPU while waiting for work. 81e3179c1bSrmindSee 82e3179c1bSrmind.Xr cpu_idle 9 . 83e3179c1bSrmind.Pp 84e3179c1bSrmindFinish a fork operation. 85e3179c1bSrmindSee 86e3179c1bSrmind.Xr cpu_lwp_fork 9 . 87e3179c1bSrmind.Pp 88e3179c1bSrmindSwitch to another light weight process. 89e3179c1bSrmindSee 90a5cda1e9Swiz.Xr mi_switch 9 . 91e3179c1bSrmind.Pp 92e3179c1bSrmindCurrent process and processor. 93e3179c1bSrmindSee 94e3179c1bSrmind.Xr curproc 9 . 95e3179c1bSrmind.Pp 96e3179c1bSrmindSet process uid and gid. 97e3179c1bSrmindSee 98e3179c1bSrmind.Xr do_setresuid 9 . 99e3179c1bSrmind.Pp 100e3179c1bSrmindNew processes and kernel threads. 101e3179c1bSrmindSee 102e3179c1bSrmind.Xr fork1 9 , 103e3179c1bSrmind.Xr kthread 9 . 104e3179c1bSrmind.Pp 105e3179c1bSrmindContext switch notification. 106e3179c1bSrmindSee 107b197e6e2Swiz.Xr cpu_need_resched 9 . 108e3179c1bSrmind.Pp 10997cfc6c7SjruohoCommon scheduler framework. 110e3179c1bSrmindSee 11197cfc6c7Sjruoho.Xr csf 9 . 112e3179c1bSrmind.Pp 113e3179c1bSrmindSoftware signal facilities. 114e3179c1bSrmindSee 115e3179c1bSrmind.Xr signal 9 . 116e3179c1bSrmind.Pp 117e3179c1bSrmindSuspend the scheduler. 118e3179c1bSrmindSee 119e3179c1bSrmind.Xr suspendsched 9 . 120e3179c1bSrmind.Pp 121e3179c1bSrmindReturn path to user-mode execution. 122e3179c1bSrmindSee 123e3179c1bSrmind.Xr userret 9 . 124e3179c1bSrmind.Sh FILE SYSTEM 125e3179c1bSrmindHigh-level file operations. 126e3179c1bSrmindSee 127e3179c1bSrmind.Xr dofileread 9 . 128e3179c1bSrmind.Pp 129e3179c1bSrmindConvert an extended attribute namespace identifier to a string and 130e3179c1bSrmindvice versa. 131e3179c1bSrmindSee 132e3179c1bSrmind.Xr extattr 9 . 133e3179c1bSrmind.Pp 134e3179c1bSrmindOperations on file entries. 135e3179c1bSrmindSee 136e3179c1bSrmind.Xr file 9 . 137e3179c1bSrmind.Pp 138b787339bSwizIn-kernel, file system independent, file-meta data association. 139e3179c1bSrmindSee 140e3179c1bSrmind.Xr fileassoc 9 . 141e3179c1bSrmind.Pp 142e3179c1bSrmindFile descriptor tables and operations. 143e3179c1bSrmindSee 144e3179c1bSrmind.Xr filedesc 9 . 145e3179c1bSrmind.Pp 146e3179c1bSrmindFile descriptor owner handling functions. 147e3179c1bSrmindSee 148e3179c1bSrmind.Xr fsetown 9 . 149e3179c1bSrmind.Pp 150e3179c1bSrmindFile system suspension helper subsystem. 151e3179c1bSrmindSee 152e3179c1bSrmind.Xr fstrans 9 . 153e3179c1bSrmind.Pp 154e3179c1bSrmindPathname lookup, cache and management. 155e3179c1bSrmindSee 156e3179c1bSrmind.Xr namei 9 , 15715429f1dSabhinav.Xr namecache 9 . 158e3179c1bSrmind.Pp 159e3179c1bSrmindKernel interface to file systems. 160e3179c1bSrmindSee 161e3179c1bSrmind.Xr vfs 9 . 162e3179c1bSrmind.Pp 163e3179c1bSrmindKernel representation of a file or directory and vnode attributes. 164e3179c1bSrmindSee 165e3179c1bSrmind.Xr vnode 9 , 166e3179c1bSrmind.Xr vattr 9 . 167e3179c1bSrmind.Sh NETWORKING 168e3179c1bSrmindKernel interfaces for manipulating output queues on network interfaces. 169e3179c1bSrmindSee 170e3179c1bSrmind.Xr altq 9 . 171e3179c1bSrmind.Pp 172e3179c1bSrmindExternally visible ARP functions. 173e3179c1bSrmindSee 174e3179c1bSrmind.Xr arp 9 . 175e3179c1bSrmind.Pp 176e3179c1bSrmindEthernet and FDDI driver support functions and macros. 177e3179c1bSrmindSee 178e3179c1bSrmind.Xr ethersubr 9 . 179e3179c1bSrmind.Pp 180e3179c1bSrmindCore 802.11 network stack functions and rate adaptation based on 181e3179c1bSrmindreceived signal strength. 182e3179c1bSrmindSee 183e3179c1bSrmind.Xr ieee80211 9 , 184e3179c1bSrmind.Xr rssadapt 9 . 185e3179c1bSrmind.Pp 186e3179c1bSrmindCompute Internet checksum. 187e3179c1bSrmindSee 188e3179c1bSrmind.Xr in_cksum 9 . 189e3179c1bSrmind.Pp 190e3179c1bSrmindLook up the IPv4 source address best matching an IPv4 destination. 191e3179c1bSrmindSee 192e3179c1bSrmind.Xr in_getifa 9 . 193e3179c1bSrmind.Pp 194e3179c1bSrmindFunctions and macros for managing memory used by networking code. 195e3179c1bSrmindSee 196e3179c1bSrmind.Xr mbuf 9 . 197e3179c1bSrmind.Pp 198e3179c1bSrmindPacket filter interface. 199e3179c1bSrmindSee 200e3179c1bSrmind.Xr pfil 9 . 201e3179c1bSrmind.Pp 202e3179c1bSrmindRoute callout functions. 203e3179c1bSrmindSee 204e3179c1bSrmind.Xr rt_timer 9 . 205e3179c1bSrmind.Pp 206e3179c1bSrmindTCP congestion control API. 207e3179c1bSrmindSee 208e3179c1bSrmind.Xr tcp_congctl 9 . 209e3179c1bSrmind.Sh LOCKING AND INTERRUPT CONTROL 210549823fbSriastradhSee 211549823fbSriastradh.Xr locking 9 212549823fbSriastradhfor an overview. 213549823fbSriastradh.Pp 214e3179c1bSrmindCondition variables. 215e3179c1bSrmindSee 216e3179c1bSrmind.Xr condvar 9 . 217e3179c1bSrmind.Pp 218e3179c1bSrmindKernel lock functions. 219e3179c1bSrmindSee 220e3179c1bSrmind.Xr lock 9 . 221e3179c1bSrmind.Pp 222e3179c1bSrmindMemory barriers. 223e3179c1bSrmindSee 224549823fbSriastradh.Xr membar_ops 3 . 225e3179c1bSrmind.Pp 226e3179c1bSrmindMutual exclusion primitives. 227e3179c1bSrmindSee 228e3179c1bSrmind.Xr mutex 9 . 229e3179c1bSrmind.Pp 230e3179c1bSrmindRestartable atomic sequences. 231e3179c1bSrmindSee 232e3179c1bSrmind.Xr ras 9 . 233e3179c1bSrmind.Pp 234e3179c1bSrmindReader / writer lock primitives. 235e3179c1bSrmindSee 236e3179c1bSrmind.Xr rwlock 9 . 237e3179c1bSrmind.Pp 238e3179c1bSrmindMachine-independent software interrupt framework. 239e3179c1bSrmindSee 24050f73940Sriastradh.Xr softint 9 . 241e3179c1bSrmind.Pp 242e3179c1bSrmindFunctions to modify system interrupt priority level. 243e3179c1bSrmindSee 244e3179c1bSrmind.Xr spl 9 . 245e3179c1bSrmind.Pp 2467e80fe3cSriastradhFunctions to raise the system priority level. 247e3179c1bSrmindSee 248e3179c1bSrmind.Xr splraiseipl 9 . 249e3179c1bSrmind.Sh SECURITY 250e3179c1bSrmindKernel authorization framework. 251e3179c1bSrmindSee 252e3179c1bSrmind.Xr kauth 9 . 253e3179c1bSrmind.Pp 254e3179c1bSrmindAPI for cryptographic services in the kernel. 255e3179c1bSrmindSee 256e3179c1bSrmind.Xr opencrypto 9 . 257e3179c1bSrmind.Pp 258e3179c1bSrmindSecurity model development guidelines. 259e3179c1bSrmindSee 260e3179c1bSrmind.Xr secmodel 9 . 261e3179c1bSrmind.Sh SYSTEM TIME CONTROL 262e3179c1bSrmindExecute a function after a specified length of time. 263e3179c1bSrmindSee 264e3179c1bSrmind.Xr callout 9 . 265e3179c1bSrmind.Pp 266e3179c1bSrmindMicrosecond delay. 267e3179c1bSrmindSee 268e3179c1bSrmind.Xr delay 9 . 269e3179c1bSrmind.Pp 270e3179c1bSrmindReal-time timer. 271e3179c1bSrmindSee 272e3179c1bSrmind.Xr hardclock 9 . 273e3179c1bSrmind.Pp 274e3179c1bSrmindSystem clock frequency. 275e3179c1bSrmindSee 276e3179c1bSrmind.Xr hz 9 . 277e3179c1bSrmind.Pp 278e3179c1bSrmindInitialization of system time and time-of-day clock support. 279e3179c1bSrmindSee 280e3179c1bSrmind.Xr inittodr 9 , 281e3179c1bSrmind.Xr todr 9 . 282e3179c1bSrmind.Pp 283e3179c1bSrmindCheck that a timeval value is valid, and correct. 284e3179c1bSrmindSee 285e3179c1bSrmind.Xr itimerfix 9 . 286e3179c1bSrmind.Pp 287e3179c1bSrmindSystem time variables. 288e3179c1bSrmindSee 289e3179c1bSrmind.Xr timecounter 9 . 290e3179c1bSrmind.Pp 291e3179c1bSrmindRealtime system clock. 292e3179c1bSrmindSee 293e3179c1bSrmind.Xr microtime 9 . 294e3179c1bSrmind.Pp 295e3179c1bSrmindGet the time elapsed since boot. 296e3179c1bSrmindSee 297e3179c1bSrmind.Xr microuptime 9 . 298e3179c1bSrmind.Pp 299e3179c1bSrmindConvert milliseconds to system clock ticks. 300e3179c1bSrmindSee 301e3179c1bSrmind.Xr mstohz 9 . 302e3179c1bSrmind.Pp 303e3179c1bSrmindFunction to help implement rate-limited actions. 304e3179c1bSrmindSee 305e3179c1bSrmind.Xr ppsratecheck 9 . 306e3179c1bSrmind.Pp 307e3179c1bSrmindFunction to help implement rate-limited actions. 308e3179c1bSrmindSee 309e3179c1bSrmind.Xr ratecheck 9 . 310e3179c1bSrmind.Pp 311e3179c1bSrmindSet battery-backed clock from system time. 312e3179c1bSrmindSee 313e3179c1bSrmind.Xr resettodr 9 . 314e3179c1bSrmind.Pp 315e3179c1bSrmindSystem time variables. 316e3179c1bSrmindSee 317e3179c1bSrmind.Xr time_second 9 . 318e3179c1bSrmind.Sh KERNEL AND USER SPACE DATA COPY FUNCTIONS 319e3179c1bSrmindKernel space to/from user space copy functions. 320e3179c1bSrmindSee 321e3179c1bSrmind.Xr copy 9 . 322e3179c1bSrmind.Pp 323e3179c1bSrmindStore data to user-space. 324e3179c1bSrmindSee 3259f2ab3a0Soster.Xr ustore 9 . 326e3179c1bSrmind.Pp 327e3179c1bSrmindFetch data from user-space. 328e3179c1bSrmindSee 329*edfa7875Swiz.Xr ufetch 9 . 330e3179c1bSrmind.Pp 331e3179c1bSrmindMove data described by a struct uio. 332e3179c1bSrmindSee 333e3179c1bSrmind.Xr uiomove 9 . 334e3179c1bSrmind.Sh MACHINE DEPENDENT KERNEL FUNCTIONS 335e3179c1bSrmindMachine-dependent clock setup interface. 336e3179c1bSrmindSee 337e3179c1bSrmind.Xr cpu_initclocks 9 . 338e3179c1bSrmind.Pp 339e3179c1bSrmindMachine-dependent process core dump interface. 340e3179c1bSrmindSee 341e3179c1bSrmind.Xr cpu_coredump 9 . 342e3179c1bSrmind.Pp 343e3179c1bSrmindMachine-dependent kernel core dumps. 344e3179c1bSrmindSee 345e3179c1bSrmind.Xr cpu_dumpconf 9 . 346e3179c1bSrmind.Pp 347e3179c1bSrmindUnique CPU identification number 348e3179c1bSrmindSee 349e3179c1bSrmind.Xr cpu_number 9 . 350e3179c1bSrmind.Pp 351e3179c1bSrmindHalt or reboot the system 352e3179c1bSrmindSee 353e3179c1bSrmind.Xr cpu_reboot 9 . 354e3179c1bSrmind.Pp 355e3179c1bSrmindMachine-dependent root file system setup 356e3179c1bSrmindSee 357e3179c1bSrmind.Xr cpu_rootconf 9 . 358e3179c1bSrmind.Pp 359e3179c1bSrmindMachine-dependent CPU startup 360e3179c1bSrmindSee 361e3179c1bSrmind.Xr cpu_startup 9 . 362e3179c1bSrmind.Pp 363e3179c1bSrmindDisk label management routines. 364e3179c1bSrmindSee 365e3179c1bSrmind.Xr disklabel 9 . 366e3179c1bSrmind.Sh DEVICE CONFIGURATION 367e3179c1bSrmindAutoconfiguration frame-work. 368e3179c1bSrmindSee 369e3179c1bSrmind.Xr autoconf 9 . 370e3179c1bSrmind.Pp 371e3179c1bSrmindDescription of a device driver. 372e3179c1bSrmindSee 373e3179c1bSrmind.Xr driver 9 . 374e3179c1bSrmind.Pp 375e3179c1bSrmindThe autoconfiguration framework ``device definition'' language. 376e3179c1bSrmindSee 377e3179c1bSrmind.Xr config 9 . 378e3179c1bSrmind.Pp 379e3179c1bSrmindMachine-dependent device autoconfiguration. 380e3179c1bSrmindSee 381e3179c1bSrmind.Xr cpu_configure 9 . 382e3179c1bSrmind.Sh MI DEVICE DRIVER API 383e3179c1bSrmindBus and Machine Independent DMA Mapping Interface. 384e3179c1bSrmindSee 385e3179c1bSrmind.Xr bus_dma 9 . 386e3179c1bSrmind.Pp 387e3179c1bSrmindBus space manipulation functions. 388e3179c1bSrmindSee 389e3179c1bSrmind.Xr bus_space 9 . 390e3179c1bSrmind.Pp 391e3179c1bSrmindGeneric disk framework. 392e3179c1bSrmindSee 393e3179c1bSrmind.Xr disk 9 . 394e3179c1bSrmind.Pp 395e3179c1bSrmindHardware-assisted data mover interface. 396e3179c1bSrmindSee 397e3179c1bSrmind.Xr dmover 9 . 398e3179c1bSrmindGeneric event counter framework. 399e3179c1bSrmindSee 400e3179c1bSrmind.Xr evcnt 9 . 401e3179c1bSrmind.Pp 402e3179c1bSrmindFirmware loader API for device drivers. 403e3179c1bSrmindSee 404e3179c1bSrmind.Xr firmload 9 . 405e3179c1bSrmind.Pp 406e3179c1bSrmindHow to implement a new ioctl call to access device drivers. 407e3179c1bSrmindSee 408e3179c1bSrmind.Xr ioctl 9 . 409e3179c1bSrmind.Pp 410e3179c1bSrmindExtensible line discipline framework. 411e3179c1bSrmindSee 412e3179c1bSrmind.Xr linedisc 9 . 413e3179c1bSrmind.Sh CONSOLE DEVICES 414e3179c1bSrmindConsole magic key sequence management. 415e3179c1bSrmindSee 416e3179c1bSrmind.Xr cnmagic 9 . 417e3179c1bSrmind.Pp 418e3179c1bSrmindConsole access interface. 419e3179c1bSrmindSee 420e3179c1bSrmind.Xr cons 9 . 421e3179c1bSrmind.Pp 422e3179c1bSrmindRaster display operations. 423e3179c1bSrmindSee 424e3179c1bSrmind.Xr rasops 9 . 425e3179c1bSrmind.Pp 426e3179c1bSrmindGeneric virtual console framework. 427e3179c1bSrmindSee 428e3179c1bSrmind.Xr vcons 9 . 429e3179c1bSrmind.Pp 430e3179c1bSrmindMachine-independent console support. 431e3179c1bSrmindSee 432e3179c1bSrmind.Xr wscons 9 . 433e3179c1bSrmind.Sh DEVICE SPECIFIC IMPLEMENTATION 434e3179c1bSrmindInterface between low and high level audio drivers. 435e3179c1bSrmindSee 436e3179c1bSrmind.Xr audio 9 . 437e3179c1bSrmind.Pp 438e3179c1bSrmindBluetooth Device/Protocol API. 439e3179c1bSrmindSee 440e3179c1bSrmind.Xr bluetooth 9 . 441e3179c1bSrmind.Pp 442e3179c1bSrmindSupport for CardBus PC-Card devices. 443e3179c1bSrmindSee 444e3179c1bSrmind.Xr cardbus 9 . 445e3179c1bSrmind.Pp 446e3179c1bSrmindVESA Display Data Channel V2. 447e3179c1bSrmindSee 448e3179c1bSrmind.Xr ddc 9 . 449e3179c1bSrmind.Pp 450e3179c1bSrmindVESA Extended Display Identification Data. 451e3179c1bSrmindSee 452e3179c1bSrmind.Xr edid 9 . 453e3179c1bSrmind.Pp 454e3179c1bSrmindInter IC (I2C) bus. 455e3179c1bSrmindSee 456e3179c1bSrmind.Xr iic 9 . 457e3179c1bSrmind.Pp 458e3179c1bSrmindBaseboard I/O control ASIC for DEC TURBOchannel systems. 459e3179c1bSrmindSee 460e3179c1bSrmind.Xr ioasic 9 . 461e3179c1bSrmind.Pp 462e3179c1bSrmindIndustry-standard Architecture. 463e3179c1bSrmindSee 464e3179c1bSrmind.Xr isa 9 . 465e3179c1bSrmind.Pp 466e3179c1bSrmindIntroduction to ISA Plug-and-Play support. 467e3179c1bSrmindSee 468e3179c1bSrmind.Xr isapnp 9 . 469e3179c1bSrmind.Pp 470e3179c1bSrmindMicroChannel Architecture bus. 471e3179c1bSrmindSee 472e3179c1bSrmind.Xr mca 9 . 473e3179c1bSrmind.Pp 474e3179c1bSrmindPPBUS microseqencer developer's guide. 475e3179c1bSrmindSee 476e3179c1bSrmind.Xr microseq 9 . 477e3179c1bSrmind.Pp 478e3179c1bSrmindPeripheral Component Interconnect. 479e3179c1bSrmindSee 480e3179c1bSrmind.Xr pci 9 . 481e3179c1bSrmind.Pp 482e3179c1bSrmindPerform PCI bus configuration. 483e3179c1bSrmindSee 484e3179c1bSrmind.Xr pci_configure_bus 9 . 485e3179c1bSrmind.Pp 486e3179c1bSrmindPCI bus interrupt manipulation functions. 487e3179c1bSrmindSee 488e3179c1bSrmind.Xr pci_intr 9 . 489e3179c1bSrmind.Pp 490e3179c1bSrmindPC keyboard port interface. 491e3179c1bSrmindSee 492e3179c1bSrmind.Xr pckbport 9 . 493e3179c1bSrmind.Pp 494e3179c1bSrmindSupport for PCMCIA PC-Card devices. 495e3179c1bSrmindSee 496e3179c1bSrmind.Xr pcmcia 9 . 497e3179c1bSrmind.Pp 498e3179c1bSrmindInterface between low and high level radio drivers. 499e3179c1bSrmindSee 500e3179c1bSrmind.Xr radio 9 . 501e3179c1bSrmind.Pp 502e3179c1bSrmindFunctions to make a device available for entropy collection. 503e3179c1bSrmindSee 504e3179c1bSrmind.Xr rnd 9 . 505e3179c1bSrmind.Pp 506e3179c1bSrmindSCSI/ATAPI middle-layer interface. 507e3179c1bSrmindSee 508e3179c1bSrmind.Xr scsipi 9 . 509e3179c1bSrmind.Pp 510e3179c1bSrmindTURBOchannel bus. 511e3179c1bSrmindSee 512e3179c1bSrmind.Xr tc 9 . 513e3179c1bSrmind.Pp 514e3179c1bSrmindUSB tty support. 515e3179c1bSrmindSee 516e3179c1bSrmind.Xr ucom 9 . 517e3179c1bSrmind.Pp 518e3179c1bSrmindUSB device drivers interface. 519e3179c1bSrmindSee 520e3179c1bSrmind.Xr usbdi 9 . 521e3179c1bSrmind.Pp 522e3179c1bSrmindVersa Module Euroboard bus. 523e3179c1bSrmindSee 524e3179c1bSrmind.Xr vme 9 . 525e3179c1bSrmind.Pp 526e3179c1bSrmindMachine-independent IDE/ATAPI driver. 527e3179c1bSrmindSee 528e3179c1bSrmind.Xr wdc 9 . 529e3179c1bSrmind.Sh KERNEL EVENT 530e3179c1bSrmindFunctions to add or remove kernel event filters. 531e3179c1bSrmindSee 532e3179c1bSrmind.Xr kfilter_register 9 . 533e3179c1bSrmind.Pp 534e3179c1bSrmindFunctions to raise kernel event. 535e3179c1bSrmindSee 536e3179c1bSrmind.Xr knote 9 . 537e3179c1bSrmind.Pp 538e3179c1bSrmindRecord and wakeup select requests. 539e3179c1bSrmindSee 540e3179c1bSrmind.Xr selrecord 9 . 541e3179c1bSrmind.Pp 542e3179c1bSrmindSimple do-it-in-thread-context framework. 543e3179c1bSrmindSee 544e3179c1bSrmind.Xr workqueue 9 . 545e3179c1bSrmind.Sh KERNEL HELPER FUNCTIONS 546e3179c1bSrmindKernel expression verification macros. 547e3179c1bSrmindSee 548e3179c1bSrmind.Xr KASSERT 9 . 549e3179c1bSrmind.Pp 550e3179c1bSrmindConvert a single byte between (unsigned) packed bcd and binary. 551e3179c1bSrmindSee 552e3179c1bSrmind.Xr bcdtobin 9 . 553e3179c1bSrmind.Pp 554e3179c1bSrmindBitmask output conversion. 555e3179c1bSrmindSee 5566be7b1d9Schristos.Xr snprintb 3 . 557e3179c1bSrmind.Pp 558e3179c1bSrmindGeneral purpose extent manager. 559e3179c1bSrmindSee 560e3179c1bSrmind.Xr extent 9 . 561e3179c1bSrmind.Pp 562e3179c1bSrmindCompare integers. 563e3179c1bSrmindSee 564e3179c1bSrmind.Xr imax 9 . 565e3179c1bSrmind.Pp 566e3179c1bSrmindKernel formatted output conversion. 567e3179c1bSrmindSee 568e3179c1bSrmind.Xr kprintf 9 . 569e3179c1bSrmind.Pp 570e3179c1bSrmindData comparing, moving, copying, setting and cleaning. 571e3179c1bSrmindSee 572e3179c1bSrmind.Xr memcmp 9 , 573e3179c1bSrmind.Xr memmove 9 , 574e3179c1bSrmind.Xr memcpy 9 , 575e3179c1bSrmind.Xr memset 9 , 576e3179c1bSrmind.Xr bcmp 9 , 577e3179c1bSrmind.Xr bcopy 9 , 578e3179c1bSrmind.Xr bzero 9 , 579e3179c1bSrmind.Xr kcopy 9 . 580e3179c1bSrmind.Pp 581e3179c1bSrmindLog a message from the kernel through the /dev/klog device. 582e3179c1bSrmindSee 583e3179c1bSrmind.Xr log 9 . 584e3179c1bSrmind.Pp 585e3179c1bSrmindBring down system on fatal error. 586e3179c1bSrmindSee 587e3179c1bSrmind.Xr panic 9 . 588e3179c1bSrmind.Sh MISC 58997cfc6c7SjruohoPower management and inter-driver messaging. 590e3179c1bSrmindSee 59197cfc6c7Sjruoho.Xr pmf 9 . 592e3179c1bSrmind.Pp 593e3179c1bSrmindRun all shutdown hooks. 594e3179c1bSrmindSee 595187677b0Sdyoung.Xr pmf_system_shutdown 9 . 596e3179c1bSrmind.Pp 597e3179c1bSrmindKernel internal error numbers. 598e3179c1bSrmindSee 599e3179c1bSrmind.Xr errno 9 . 600e3179c1bSrmind.Pp 601e3179c1bSrmindKernel hash functions, hash table construction and destruction. 602e3179c1bSrmindSee 603e3179c1bSrmind.Xr hash 9 , 604e3179c1bSrmind.Xr hashinit 9 . 605e3179c1bSrmind.Pp 606e3179c1bSrmindFormat a number into a human readable form. 607e3179c1bSrmindSee 608e3179c1bSrmind.Xr humanize_number 9 . 609e3179c1bSrmind.Pp 610e3179c1bSrmindOptions string management. 611e3179c1bSrmindSee 612b197e6e2Swiz.Xr optstr 9 . 613e3179c1bSrmind.Pp 614e3179c1bSrmindPerforms pattern matching on strings. 615e3179c1bSrmindSee 616e3179c1bSrmind.Xr pmatch 9 . 617e3179c1bSrmind.Pp 618e3179c1bSrmindAdd or remove a shutdown hook. 619e3179c1bSrmindSee 620187677b0Sdyoung.Xr pmf 9 . 621e3179c1bSrmind.Pp 622e3179c1bSrmindNon-local jumps. 623e3179c1bSrmindSee 624e3179c1bSrmind.Xr setjmp 9 . 625e3179c1bSrmind.Pp 626e3179c1bSrmindSystem variable control interfaces. 627e3179c1bSrmindSee 628e3179c1bSrmind.Xr sysctl 9 . 629d58b5c29Sjeremy.Sh HISTORY 63034a98169SperryThe 63134a98169Sperry.Nx 63234a98169Sperrykernel internals section first appeared in 633d58b5c29Sjeremy.Nx 1.2 . 634