1# $FreeBSD$ 2# 3# On the handling of kernel options 4# 5# All kernel options should be listed in NOTES, with suitable 6# descriptions. Negative options (options that make some code not 7# compile) should be commented out; LINT (generated from NOTES) should 8# compile as much code as possible. Try to structure option-using 9# code so that a single option only switch code on, or only switch 10# code off, to make it possible to have a full compile-test. If 11# necessary, you can check for COMPILING_LINT to get maximum code 12# coverage. 13# 14# All new options shall also be listed in either "conf/options" or 15# "conf/options.<machine>". Options that affect a single source-file 16# <xxx>.[c|s] should be directed into "opt_<xxx>.h", while options 17# that affect multiple files should either go in "opt_global.h" if 18# this is a kernel-wide option (used just about everywhere), or in 19# "opt_<option-name-in-lower-case>.h" if it affect only some files. 20# Note that the effect of listing only an option without a 21# header-file-name in conf/options (and cousins) is that the last 22# convention is followed. 23# 24# This handling scheme is not yet fully implemented. 25# 26# 27# Format of this file: 28# Option name filename 29# 30# If filename is missing, the default is 31# opt_<name-of-option-in-lower-case>.h 32 33# Adaptec Array Controller driver options 34AAC_COMPAT_LINUX opt_aac.h # Enable the linux ioctl interface 35 36AAC_DEBUG opt_aac.h # Debugging levels: 37 # 0 - quiet, only emit warnings 38 # 1 - noisy, emit major function 39 # points and things done 40 # 2 - extremely noisy, emit trace 41 # items in loops, etc. 42 43# Adaptec aic7xxx SCSI controller options 44AHC_ALLOW_MEMIO opt_aic7xxx.h # Allow PCI devices to use memory 45 # mapped I/O 46 47AHC_TMODE_ENABLE opt_aic7xxx.h # Bitmap of units to enable 48 # targetmode operations. 49 50AHC_DUMP_EEPROM opt_aic7xxx.h # Dump the contents of our 51 # configuration prom. 52 53AHC_DEBUG_SEQUENCER opt_aic7xxx.h # Enable diagnostic sequencer code 54 55# Adaptec aic79xx SCSI controller options 56AHD_DEBUG opt_aic79xx.h # Compile in aic79xx debugging code. 57 58AHD_DEBUG_OPTS opt_aic79xx.h # Aic79xx driver debugging options. 59 # See sys/dev/aic79xx/aic79xx.h 60 61ADW_ALLOW_MEMIO opt_adw.h # Allow PCI devices to use memory 62 # mapped I/O 63 64# Miscellaneous options. 65GEOM opt_geom.h 66 67ADAPTIVE_MUTEXES 68COMPAT_43 opt_compat.h 69COMPAT_SUNOS opt_compat.h 70COMPILING_LINT opt_global.h 71CY_PCI_FASTINTR 72CONSPEED opt_comconsole.h 73DDB 74DDB_NOKLDSYM opt_ddb.h 75DDB_UNATTENDED opt_ddb.h 76GDB_REMOTE_CHAT opt_ddb.h 77GDBSPEED opt_ddb.h 78NODEVFS opt_devfs.h 79HW_WDOG 80KTRACE 81KTRACE_REQUEST_POOL opt_ktrace.h 82LIBICONV 83MD_ROOT opt_md.h 84MD_ROOT_SIZE opt_md.h 85NTIMECOUNTER opt_ntp.h 86NSWAPDEV opt_swap.h 87PPS_SYNC opt_ntp.h 88QUOTA 89SPX_HACK 90SUIDDIR opt_suiddir.h 91SYSVMSG opt_sysvipc.h 92SYSVSEM opt_sysvipc.h 93SYSVSHM opt_sysvipc.h 94SHMALL opt_sysvipc.h 95SHMMAX opt_sysvipc.h 96SHMMAXPGS opt_sysvipc.h 97SHMMIN opt_sysvipc.h 98SHMMNI opt_sysvipc.h 99SHMSEG opt_sysvipc.h 100SEMMAP opt_sysvipc.h 101SEMMNI opt_sysvipc.h 102SEMMNS opt_sysvipc.h 103SEMMNU opt_sysvipc.h 104SEMMSL opt_sysvipc.h 105SEMOPM opt_sysvipc.h 106SEMUME opt_sysvipc.h 107MSGMNB opt_sysvipc.h 108MSGMNI opt_sysvipc.h 109MSGSEG opt_sysvipc.h 110MSGSSZ opt_sysvipc.h 111MSGTQL opt_sysvipc.h 112VFS_AIO 113 114# POSIX kernel options 115P1003_1B opt_posix.h 116_KPOSIX_PRIORITY_SCHEDULING opt_posix.h 117_KPOSIX_VERSION opt_posix.h 118 119# TrustedBSD and POSIX.1e Kernel Options 120 121# Do we want the config file compiled into the kernel? 122INCLUDE_CONFIG_FILE opt_config.h 123 124# Options for static filesystems. These should only be used at config 125# time, since the corresponding lkms cannot work if there are any static 126# dependencies. Unusability is enforced by hiding the defines for the 127# options in a never-included header. 128CD9660 opt_dontuse.h 129CODA opt_dontuse.h 130EXT2FS opt_dontuse.h 131FDESCFS opt_dontuse.h 132LINPROCFS opt_dontuse.h 133MSDOSFS opt_dontuse.h 134NULLFS opt_dontuse.h 135NWFS opt_dontuse.h 136PORTALFS opt_dontuse.h 137PROCFS opt_dontuse.h 138PSEUDOFS opt_dontuse.h 139UMAPFS opt_dontuse.h 140NTFS opt_dontuse.h 141HPFS opt_dontuse.h 142UNIONFS opt_dontuse.h 143UDF opt_dontuse.h 144 145# Broken - ffs_snapshot() dependency from ufs_lookup() :-( 146FFS opt_ffs_broken_fixme.h 147 148# These static filesystems has one slightly bogus static dependency in 149# sys/i386/i386/autoconf.c. If any of these filesystems are 150# statically compiled into the kernel, code for mounting them as root 151# filesystems will be enabled - but look below. 152NFSCLIENT opt_nfs.h 153NFSSERVER opt_nfs.h 154 155# If you are following the conditions in the copyright, 156# you can enable soft-updates which will speed up a lot of thigs 157# and make the system safer from crashes at the same time. 158# otherwise a STUB module will be compiled in. 159SOFTUPDATES opt_ffs.h 160 161# Enabling this option turns on support for Access Control Lists in UFS, 162# which can be used to support high security configurations. Depends on 163# UFS_EXTATTR. 164UFS_ACL opt_ufs.h 165 166# Enabling this option turns on support for extended attributes in UFS-based 167# filesystems, which can be used to support high security configurations 168# as well as new filesystem features. 169UFS_EXTATTR opt_ufs.h 170UFS_EXTATTR_AUTOSTART opt_ufs.h 171 172# Enable fast hash lookups for large directories on UFS-based filesystems. 173UFS_DIRHASH opt_ufs.h 174 175# The above static dependencies are planned removed, with a 176# <filesystem>_ROOT option to control if it usable as root. This list 177# allows these options to be present in config files already (though 178# they won't make any difference yet). 179NFS_ROOT opt_nfsroot.h 180 181# Options used only in subr_param.c. 182HZ opt_param.h 183MAXFILES opt_param.h 184NBUF opt_param.h 185NMBCLUSTERS opt_param.h 186NSFBUFS opt_param.h 187VM_BCACHE_SIZE_MAX opt_param.h 188VM_SWZONE_SIZE_MAX opt_param.h 189MAXUSERS 190DFLDSIZ opt_param.h 191MAXDSIZ opt_param.h 192MAXSSIZ opt_param.h 193 194# Generic SCSI options. 195CAM_MAX_HIGHPOWER opt_cam.h 196CAMDEBUG opt_cam.h 197CAM_DEBUG_DELAY opt_cam.h 198CAM_DEBUG_BUS opt_cam.h 199CAM_DEBUG_TARGET opt_cam.h 200CAM_DEBUG_LUN opt_cam.h 201CAM_DEBUG_FLAGS opt_cam.h 202CAM_NEW_TRAN_CODE opt_cam.h 203SCSI_DELAY opt_scsi.h 204SCSI_NO_SENSE_STRINGS opt_scsi.h 205SCSI_NO_OP_STRINGS opt_scsi.h 206 207 208 209# Options used only in cam/scsi/scsi_cd.c 210CHANGER_MIN_BUSY_SECONDS opt_cd.h 211CHANGER_MAX_BUSY_SECONDS opt_cd.h 212 213# Options used only in cam/scsi/scsi_sa.c. 214SA_IO_TIMEOUT opt_sa.h 215SA_SPACE_TIMEOUT opt_sa.h 216SA_REWIND_TIMEOUT opt_sa.h 217SA_ERASE_TIMEOUT opt_sa.h 218SA_1FM_AT_EOD opt_sa.h 219 220# Options used only in cam/scsi/scsi_pt.c 221SCSI_PT_DEFAULT_TIMEOUT opt_pt.h 222 223# Options used only in cam/scsi/scsi_ses.c 224SES_ENABLE_PASSTHROUGH opt_ses.h 225 226# Options used in dev/sym/ (Symbios SCSI driver). 227SYM_SETUP_LP_PROBE_MAP opt_sym.h #-Low Priority Probe Map (bits) 228 # Allows the ncr to take precedence 229 # 1 (1<<0) -> 810a, 860 230 # 2 (1<<1) -> 825a, 875, 885, 895 231 # 4 (1<<2) -> 895a, 896, 1510d 232SYM_SETUP_SCSI_DIFF opt_sym.h #-HVD support for 825a, 875, 885 233 # disabled:0 (default), enabled:1 234SYM_SETUP_PCI_PARITY opt_sym.h #-PCI parity checking 235 # disabled:0, enabled:1 (default) 236SYM_SETUP_MAX_LUN opt_sym.h #-Number of LUNs supported 237 # default:8, range:[1..64] 238 239# Options used only in pci/ncr.c 240SCSI_NCR_DEBUG opt_ncr.h 241SCSI_NCR_MAX_SYNC opt_ncr.h 242SCSI_NCR_MAX_WIDE opt_ncr.h 243SCSI_NCR_MYADDR opt_ncr.h 244 245# Options used only in dev/isp/* 246ISP_TARGET_MODE opt_isp.h 247ISP_FW_CRASH_DUMP opt_isp.h 248 249# Options used in the 'ata' ATA/ATAPI driver 250ACD_DEBUG opt_ata.h 251AST_DEBUG opt_ata.h 252ATAPI_DEBUG opt_ata.h 253ATA_DEBUG opt_ata.h 254ATA_STATIC_ID opt_ata.h 255DEV_ATADISK opt_ata.h 256DEV_ATAPICD opt_ata.h 257DEV_ATAPIST opt_ata.h 258DEV_ATAPIFD opt_ata.h 259 260# Net stuff. 261ACCEPT_FILTER_DATA 262ACCEPT_FILTER_HTTP 263BOOTP opt_bootp.h 264BOOTP_COMPAT opt_bootp.h 265BOOTP_NFSROOT opt_bootp.h 266BOOTP_NFSV3 opt_bootp.h 267BOOTP_WIRED_TO opt_bootp.h 268BRIDGE opt_bdg.h 269ETHER_II opt_ef.h 270ETHER_8023 opt_ef.h 271ETHER_8022 opt_ef.h 272ETHER_SNAP opt_ef.h 273MROUTING opt_mrouting.h 274INET opt_inet.h 275INET6 opt_inet6.h 276IPSEC opt_ipsec.h 277IPSEC_ESP opt_ipsec.h 278IPSEC_DEBUG opt_ipsec.h 279IPDIVERT 280DUMMYNET opt_ipdn.h 281IPFILTER opt_ipfilter.h 282IPFILTER_LOG opt_ipfilter.h 283IPFILTER_DEFAULT_BLOCK opt_ipfilter.h 284PFIL_HOOKS opt_pfil_hooks.h 285IPFIREWALL opt_ipfw.h 286IPFIREWALL_VERBOSE opt_ipfw.h 287IPFIREWALL_VERBOSE_LIMIT opt_ipfw.h 288IPFIREWALL_DEFAULT_TO_ACCEPT opt_ipfw.h 289IPFIREWALL_FORWARD opt_ipfw.h 290IPV6FIREWALL opt_ip6fw.h 291IPV6FIREWALL_VERBOSE opt_ip6fw.h 292IPV6FIREWALL_VERBOSE_LIMIT opt_ip6fw.h 293IPV6FIREWALL_DEFAULT_TO_ACCEPT opt_ip6fw.h 294IPSTEALTH 295IPX opt_ipx.h 296IPXIP opt_ipx.h 297IPTUNNEL opt_ipx.h 298LIBMCHAIN 299NCP opt_ncp.h 300NETATALK opt_atalk.h 301PPP_BSDCOMP opt_ppp.h 302PPP_DEFLATE opt_ppp.h 303PPP_FILTER opt_ppp.h 304RANDOM_IP_ID 305SLIP_IFF_OPTS opt_slip.h 306TCPDEBUG 307TCP_DROP_SYNFIN opt_tcp_input.h 308XBONEHACK 309 310# Netgraph(4). Use option NETGRAPH to enable the base netgraph code. 311# Each netgraph node type can be either be compiled into the kernel 312# or loaded dynamically. To get the former, include the corresponding 313# option below. Each type has its own man page, e.g. ng_async(4). 314NETGRAPH 315NETGRAPH_ASYNC opt_netgraph.h 316NETGRAPH_BPF opt_netgraph.h 317NETGRAPH_BRIDGE opt_netgraph.h 318NETGRAPH_CISCO opt_netgraph.h 319NETGRAPH_ECHO opt_netgraph.h 320NETGRAPH_ETHER opt_netgraph.h 321NETGRAPH_FRAME_RELAY opt_netgraph.h 322NETGRAPH_GIF opt_netgraph.h 323NETGRAPH_GIF_DEMUX opt_netgraph.h 324NETGRAPH_HOLE opt_netgraph.h 325NETGRAPH_IFACE opt_netgraph.h 326NETGRAPH_IP_INPUT opt_netgraph.h 327NETGRAPH_KSOCKET opt_netgraph.h 328NETGRAPH_LMI opt_netgraph.h 329# MPPC compression requires proprietary files (not included) 330NETGRAPH_MPPC_COMPRESSION opt_netgraph.h 331NETGRAPH_MPPC_ENCRYPTION opt_netgraph.h 332NETGRAPH_ONE2MANY opt_netgraph.h 333NETGRAPH_PPP opt_netgraph.h 334NETGRAPH_PPPOE opt_netgraph.h 335NETGRAPH_PPTPGRE opt_netgraph.h 336NETGRAPH_RFC1490 opt_netgraph.h 337NETGRAPH_SOCKET opt_netgraph.h 338NETGRAPH_SPLIT opt_netgraph.h 339NETGRAPH_TEE opt_netgraph.h 340NETGRAPH_TTY opt_netgraph.h 341NETGRAPH_UI opt_netgraph.h 342NETGRAPH_VJC opt_netgraph.h 343 344# DRM options 345DRM_LINUX opt_drm.h 346DRM_DEBUG opt_drm.h 347 348 349ZERO_COPY_SOCKETS opt_zero.h 350TI_PRIVATE_JUMBOS opt_ti.h 351TI_JUMBO_HDRSPLIT opt_ti.h 352 353# ATM (HARP version) 354ATM_CORE opt_atm.h 355ATM_IP opt_atm.h 356ATM_SIGPVC opt_atm.h 357ATM_SPANS opt_atm.h 358ATM_UNI opt_atm.h 359 360# XXX Conflict: # of devices vs network protocol (Native ATM). 361# This makes "atm.h" unusable. 362NATM opt_natm.h 363 364DPT_ALLOW_MEMIO opt_dpt.h # Allow PCI devices to use memory 365 # mapped I/O 366# DPT driver debug flags 367DPT_MEASURE_PERFORMANCE opt_dpt.h 368DPT_HANDLE_TIMEOUTS opt_dpt.h 369DPT_TIMEOUT_FACTOR opt_dpt.h 370DPT_LOST_IRQ opt_dpt.h 371DPT_RESET_HBA opt_dpt.h 372 373# Adaptec ASR and DPT V/VI controller options 374ASR_MEASURE_PERFORMANCE opt_asr.h 375 376# Misc debug flags. Most of these should probably be replaced with 377# 'DEBUG', and then let people recompile just the interesting modules 378# with 'make CC="cc -DDEBUG"'. 379CLUSTERDEBUG opt_debug_cluster.h 380DEBUG_1284 opt_ppb_1284.h 381VP0_DEBUG opt_vpo.h 382LPT_DEBUG opt_lpt.h 383PLIP_DEBUG opt_plip.h 384LOCKF_DEBUG opt_debug_lockf.h 385NPX_DEBUG opt_debug_npx.h 386NETATALKDEBUG opt_atalk.h 387SI_DEBUG opt_debug_si.h 388 389# Fb options 390FB_DEBUG opt_fb.h 391FB_INSTALL_CDEV opt_fb.h 392 393# ppbus related options 394PERIPH_1284 opt_ppb_1284.h 395DONTPROBE_1284 opt_ppb_1284.h 396 397# smbus related options 398ENABLE_ALART opt_intpm.h 399 400# These cause changes all over the kernel 401BLKDEV_IOSIZE opt_global.h 402DEBUG opt_global.h 403DEBUG_LOCKS opt_global.h 404DEBUG_VFS_LOCKS opt_global.h 405LOOKUP_SHARED opt_global.h 406DIAGNOSTIC opt_global.h 407ENABLE_VFS_IOOPT opt_global.h 408INVARIANT_SUPPORT opt_global.h 409INVARIANTS opt_global.h 410REGRESSION opt_global.h 411RESTARTABLE_PANICS opt_global.h 412VFS_BIO_DEBUG opt_global.h 413MSIZE opt_global.h 414MCLSHIFT opt_global.h 415 416# These are VM related options 417VM_KMEM_SIZE opt_vm.h 418VM_KMEM_SIZE_SCALE opt_vm.h 419VM_KMEM_SIZE_MAX opt_vm.h 420NO_SWAPPING opt_vm.h 421MALLOC_PROFILE opt_vm.h 422PQ_NOOPT opt_vmpage.h 423PQ_NORMALCACHE opt_vmpage.h 424PQ_MEDIUMCACHE opt_vmpage.h 425PQ_LARGECACHE opt_vmpage.h 426PQ_HUGECACHE opt_vmpage.h 427PQ_CACHESIZE opt_vmpage.h 428 429# Standard SMP options 430SMP opt_global.h 431 432# Size of the kernel message buffer 433MSGBUF_SIZE opt_msgbuf.h 434 435# PCI related options 436PCI_ENABLE_IO_MODES opt_pci.h 437PCI_ALLOW_UNSUPPORTED_IO_RANGE opt_pci.h 438 439# NFS options 440NFS_MINATTRTIMO opt_nfs.h 441NFS_MAXATTRTIMO opt_nfs.h 442NFS_MINDIRATTRTIMO opt_nfs.h 443NFS_MAXDIRATTRTIMO opt_nfs.h 444NFS_GATHERDELAY opt_nfs.h 445NFS_WDELAYHASHSIZ opt_nfs.h 446NFS_DEBUG opt_nfs.h 447 448# For the Bt848/Bt848A/Bt849/Bt878/Bt879 driver 449OVERRIDE_CARD opt_bktr.h 450OVERRIDE_TUNER opt_bktr.h 451OVERRIDE_DBX opt_bktr.h 452OVERRIDE_MSP opt_bktr.h 453BROOKTREE_SYSTEM_DEFAULT opt_bktr.h 454BROOKTREE_ALLOC_PAGES opt_bktr.h 455BKTR_OVERRIDE_CARD opt_bktr.h 456BKTR_OVERRIDE_TUNER opt_bktr.h 457BKTR_OVERRIDE_DBX opt_bktr.h 458BKTR_OVERRIDE_MSP opt_bktr.h 459BKTR_SYSTEM_DEFAULT opt_bktr.h 460BKTR_ALLOC_PAGES opt_bktr.h 461BKTR_USE_PLL opt_bktr.h 462BKTR_GPIO_ACCESS opt_bktr.h 463BKTR_NO_MSP_RESET opt_bktr.h 464BKTR_430_FX_MODE opt_bktr.h 465BKTR_SIS_VIA_MODE opt_bktr.h 466BKTR_USE_FREEBSD_SMBUS opt_bktr.h 467 468# meteor opt_meteor.h 469METEOR_ALLOC_PAGES opt_meteor.h 470METEOR_TEST_VIDEO opt_meteor.h 471METEOR_SYSTEM_DEFAULT opt_meteor.h 472METEOR_DEALLOC_PAGES opt_meteor.h 473METEOR_DEALLOC_ABOVE opt_meteor.h 474 475# Various mi ISA bus flags 476COM_ESP opt_sio.h 477COM_MULTIPORT opt_sio.h 478BREAK_TO_DEBUGGER opt_comconsole.h 479ALT_BREAK_TO_DEBUGGER opt_comconsole.h 480DEV_ISA opt_isa.h 481 482# Include tweaks for running under the SimOS machine simulator. 483SIMOS opt_simos.h 484 485# options for bus/device framework 486BUS_DEBUG opt_bus.h 487 488# options for USB support 489UHCI_DEBUG opt_usb.h 490OHCI_DEBUG opt_usb.h 491USB_DEBUG opt_usb.h 492UGEN_DEBUG opt_usb.h 493UHID_DEBUG opt_usb.h 494UHUB_DEBUG opt_usb.h 495UKBD_DEBUG opt_usb.h 496ULPT_DEBUG opt_usb.h 497UMASS_DEBUG opt_usb.h 498UMS_DEBUG opt_usb.h 499URIO_DEBUG opt_usb.h 500UKBD_DFLT_KEYMAP opt_ukbd.h 501 502# Vinum options 503VINUMDEBUG opt_vinum.h 504 505# Embedded system options 506INIT_PATH opt_init_path.h 507 508ROOTDEVNAME opt_rootdevname.h 509 510FDC_DEBUG opt_fdc.h 511PCFCLOCK_VERBOSE opt_pcfclock.h 512PCFCLOCK_MAX_RETRIES opt_pcfclock.h 513TDFX_LINUX opt_tdfx.h 514 515KTR opt_global.h 516KTR_MASK opt_ktr.h 517KTR_CPUMASK opt_ktr.h 518KTR_COMPILE opt_global.h 519KTR_ENTRIES opt_global.h 520KTR_VERBOSE opt_ktr.h 521MUTEX_DEBUG opt_global.h 522WITNESS opt_global.h 523WITNESS_DDB opt_witness.h 524WITNESS_SKIPSPIN opt_witness.h 525 526# options for ACPI support 527ACPI_DEBUG opt_acpi.h 528ACPI_NO_SEMAPHORES opt_acpi.h 529ACPI_MAX_THREADS opt_acpi.h 530 531# options for DEVFS, see sys/fs/devfs/devfs.h 532NDEVFSINO opt_devfs.h 533NDEVFSOVERFLOW opt_devfs.h 534 535# various 'device presence' options. 536DEV_MCA opt_mca.h 537DEV_BPF opt_bpf.h 538 539# ed driver 540ED_NO_MIIBUS opt_ed.h 541 542# Polling device handling 543DEVICE_POLLING opt_global.h 544 545# Mutex profiling 546MUTEX_PROFILING opt_global.h 547