1ecbb00a2SDoug Rabson# $Id: options,v 1.76 1998/06/05 22:39:49 julian Exp $ 294db1b81SEivind Eklund# 394db1b81SEivind Eklund# On the handling of kernel options 494db1b81SEivind Eklund# 594db1b81SEivind Eklund# All kernel options should be listed in LINT, with suitable 694db1b81SEivind Eklund# descriptions. Negative options (options that make some code not 794db1b81SEivind Eklund# compile) should be commented out; LINT should compile as much code 894db1b81SEivind Eklund# as possible. Try to structure option-using code so that a single 994db1b81SEivind Eklund# option only switch code on, or only switch code off, to make it 1094db1b81SEivind Eklund# possible to have a full compile-test. If necessary, you can include 1194db1b81SEivind Eklund# "opt_lint.h" and check for COMPILING_LINT to get maximum code 1294db1b81SEivind Eklund# coverage. 1394db1b81SEivind Eklund# 1494db1b81SEivind Eklund# All new options shall also be listed in either "conf/options" or 1594db1b81SEivind Eklund# "<machine>/conf/options.<machine>". Options that affect a single 1694db1b81SEivind Eklund# source-file <xxx>.[c|s] should be directed into "opt_<xxx>.h", while 1794db1b81SEivind Eklund# options that affect multiple files should either go in 1894db1b81SEivind Eklund# "opt_global.h" if this is a kernel-wide option (used just about 1994db1b81SEivind Eklund# everywhere), or in "opt_<option-name-in-lower-case>.h" if it affect 2094db1b81SEivind Eklund# only some files. Note that the effect of listing only an option 2194db1b81SEivind Eklund# without a header-file-name in conf/options (and cousins) is that the 2294db1b81SEivind Eklund# last convention is followed. 2394db1b81SEivind Eklund# 2494db1b81SEivind Eklund# This handling scheme is not yet fully implemented. 2594db1b81SEivind Eklund# 2694db1b81SEivind Eklund# 2794db1b81SEivind Eklund# Format of this file: 284bd49128SPeter Wemm# Option name filename 2994db1b81SEivind Eklund# 3094db1b81SEivind Eklund# If filename is missing, the default is 3194db1b81SEivind Eklund# opt_<name-of-option-in-lower-case>.h 3281fc841cSBruce Evans 333d20a1ffSBruce Evans# Miscellaneous options. 348890984dSGarrett WollmanBOUNCE_BUFFERS opt_bounce.h 35f71bb3a1SEivind EklundCOMPAT_43 opt_compat.h 36f71bb3a1SEivind EklundCOMPAT_SUNOS opt_compat.h 37346ebe51SEivind EklundCOMPILING_LINT opt_lint.h 380e41ee30SGarrett WollmanDDB 391664f6f5SPaul TrainaDDB_UNATTENDED opt_ddb.h 40562d05dfSPaul TrainaGDB_REMOTE_CHAT opt_ddb.h 417b778b5eSEivind EklundDEVFS 42c0bab11dSJulian ElischerSLICE opt_devfs.h 437dff1433SEivind EklundFAILSAFE 44d94f38acSEivind EklundHW_WDOG 454bd49128SPeter WemmKTRACE 46455bb211SEivind EklundMD5 477b778b5eSEivind EklundMFS_AUTOLOAD opt_mfs.h 487b778b5eSEivind EklundMFS_ROOT opt_mfs.h 49be41061bSEivind EklundNO_LKM 50f71bb3a1SEivind EklundNSWAPDEV opt_swap.h 51e0d781f3SEivind EklundPPS_SYNC opt_ntp.h 523d20a1ffSBruce EvansQUOTA 53cecc50bcSEivind EklundSPX_HACK 54f71bb3a1SEivind EklundSUIDDIR opt_suiddir.h 553d20a1ffSBruce EvansSYSVMSG opt_sysvipc.h 563d20a1ffSBruce EvansSYSVSEM opt_sysvipc.h 573d20a1ffSBruce EvansSYSVSHM opt_sysvipc.h 583d20a1ffSBruce EvansUCONSOLE 59d03b4017SBruce Evans 608a6472b7SPeter Dufault# POSIX kernel options 618a6472b7SPeter DufaultP1003_1B opt_posix.h 628a6472b7SPeter Dufault_KPOSIX_PRIORITY_SCHEDULING opt_posix.h 638a6472b7SPeter Dufault_KPOSIX_VERSION opt_posix.h 64917e476dSPeter Dufault 65808129f0SPeter Wemm# Do we want the config file compiled into the kernel? 66808129f0SPeter WemmINCLUDE_CONFIG_FILE opt_config.h 67808129f0SPeter Wemm 68d03b4017SBruce Evans# Options for static file systems. These should only be used at config 69d03b4017SBruce Evans# time, since the corresponding lkms cannot work if there are any static 70d03b4017SBruce Evans# dependencies. Unusability is enforced by hiding the defines for the 71d03b4017SBruce Evans# options in a never-included header. 72f41991baSEivind EklundEXT2FS opt_dontuse.h 73d03b4017SBruce EvansFDESC opt_dontuse.h 74d03b4017SBruce EvansKERNFS opt_dontuse.h 756cce9950SJoerg WunschMFS opt_dontuse.h 76f41991baSEivind EklundMSDOSFS opt_dontuse.h 77d03b4017SBruce EvansNULLFS opt_dontuse.h 78d03b4017SBruce EvansPORTAL opt_dontuse.h 79d03b4017SBruce EvansPROCFS opt_dontuse.h 80d03b4017SBruce EvansUMAPFS opt_dontuse.h 81d03b4017SBruce Evans 827b778b5eSEivind Eklund# These static filesystems has one slightly bogus static dependency in 837b778b5eSEivind Eklund# sys/i386/i386/autoconf.c. If any of these filesystems are 847b778b5eSEivind Eklund# statically compiled into the kernel, code for mounting them as root 857b778b5eSEivind Eklund# filesystems will be enabled - but look below. Boot-code is purposely 867b778b5eSEivind Eklund# unavailable for the LKM-based versions. 870ef41896SJordan K. HubbardCFS 885a9714deSJoerg WunschCD9660 897b778b5eSEivind EklundFFS 907b778b5eSEivind EklundNFS 915a9714deSJoerg Wunsch 92b1897c19SJulian Elischer# If you are following the conditions in the copyright, 93b1897c19SJulian Elischer# you can enable soft-updates which will speed up a lot of thigs 94b1897c19SJulian Elischer# and make the system safer from crashes at the same time. 95b1897c19SJulian Elischer# otherwise a STUB module will be compiled in. 96b1897c19SJulian ElischerSOFTUPDATES opt_ffs.h 97b1897c19SJulian Elischer 987b778b5eSEivind Eklund# The above static dependencies are planned removed, with a 997b778b5eSEivind Eklund# <filesystem>_ROOT option to control if it usable as root. This list 1007b778b5eSEivind Eklund# allows these options to be present in config files already (though 1017b778b5eSEivind Eklund# they won't make any difference yet). 1027b778b5eSEivind EklundCD9660_ROOT opt_cd9660.h 1037b778b5eSEivind EklundFFS_ROOT opt_ffs.h 1047b778b5eSEivind EklundNFS_ROOT opt_nfs.h 1057b778b5eSEivind Eklund 1067b778b5eSEivind Eklund# Multi-session CD-Rs might require a huge amount of time in order to 1077b778b5eSEivind Eklund# "settle". If we are about mounting them as the root f/s, we gotta 1087b778b5eSEivind Eklund# wait a little. 1095a9714deSJoerg WunschCD9660_ROOTDELAY opt_cd9660.h 1105a9714deSJoerg Wunsch 111d03b4017SBruce Evans# The union static file system has bogus static dependencies, so it isn't 112d03b4017SBruce Evans# hidden yet. 113d03b4017SBruce EvansUNION 114d03b4017SBruce Evans 11581fc841cSBruce Evans# Options used only in param.c. 1165131d64eSBruce EvansEXTRAVNODES opt_defunct.h 1173d20a1ffSBruce EvansMSGMNB opt_param.h 1183d20a1ffSBruce EvansMSGMNI opt_param.h 1193d20a1ffSBruce EvansMSGSEG opt_param.h 1203d20a1ffSBruce EvansMSGSSZ opt_param.h 1213d20a1ffSBruce EvansMSGTQL opt_param.h 1223d20a1ffSBruce EvansNBUF opt_param.h 1234bd49128SPeter WemmNMBCLUSTERS opt_param.h 1244bd49128SPeter WemmSEMMAP opt_param.h 1254bd49128SPeter WemmSEMMNI opt_param.h 1264bd49128SPeter WemmSEMMNS opt_param.h 1274bd49128SPeter WemmSEMMNU opt_param.h 1284bd49128SPeter WemmSEMMSL opt_param.h 1294bd49128SPeter WemmSEMOPM opt_param.h 1304bd49128SPeter WemmSEMUME opt_param.h 1313d20a1ffSBruce EvansSHMALL opt_param.h 1323d20a1ffSBruce EvansSHMMAX opt_param.h 1333d20a1ffSBruce EvansSHMMAXPGS opt_param.h 1343d20a1ffSBruce EvansSHMMIN opt_param.h 1353d20a1ffSBruce EvansSHMMNI opt_param.h 1363d20a1ffSBruce EvansSHMSEG opt_param.h 13781fc841cSBruce Evans 13881fc841cSBruce Evans# Generic SCSI options. 1396bc025e1SJoerg WunschSCSIDEBUG opt_scsi.h 1403d20a1ffSBruce EvansSCSI_DELAY opt_scsi.h 1413d20a1ffSBruce EvansSCSI_REPORT_GEOMETRY opt_scsi.h 142ec1f7adfSEivind EklundSCSI_2_DEF opt_scsi.h 14381fc841cSBruce Evans 144c30bc9dbSJoerg Wunsch# Options used only in scsi/od.c. 145c30bc9dbSJoerg WunschOD_AUTO_TURNOFF opt_od.h 1463d20a1ffSBruce EvansOD_BOGUS_NOT_READY opt_od.h 147c30bc9dbSJoerg Wunsch 14821ffa5aeSStefan Eßer# Options used only in pci/ncr.c 1493d20a1ffSBruce EvansSCSI_NCR_DEBUG opt_ncr.h 1503d20a1ffSBruce EvansSCSI_NCR_DFLT_TAGS opt_ncr.h 151a5bef142SBruce EvansSCSI_NCR_MAX_SYNC opt_ncr.h 152a5bef142SBruce EvansSCSI_NCR_MAX_WIDE opt_ncr.h 1533d20a1ffSBruce EvansSCSI_NCR_MYADDR opt_ncr.h 15421ffa5aeSStefan Eßer 15581fc841cSBruce Evans# Resource limits. 1560f171f59SBruce EvansCHILD_MAX opt_defunct.h 157e9822d92SJoerg WunschDFLDSIZ opt_rlimit.h 1583d20a1ffSBruce EvansMAXDSIZ opt_rlimit.h 1590f171f59SBruce EvansOPEN_MAX opt_defunct.h 16081fc841cSBruce Evans 16181fc841cSBruce Evans# Net stuff. 1621e49bd9cSGarrett WollmanARP_PROXYALL opt_defunct.h 163e4f4247aSEivind EklundBOOTP opt_bootp.h 164e4f4247aSEivind EklundBOOTP_COMPAT opt_bootp.h 165e4f4247aSEivind EklundBOOTP_NFSROOT opt_bootp.h 166e4f4247aSEivind EklundBOOTP_NFSV3 opt_bootp.h 1678f7030a7STor EggeBOOTP_WIRED_TO opt_bootp.h 1680f171f59SBruce EvansGATEWAY opt_defunct.h 1694bd49128SPeter WemmMROUTING opt_mrouting.h 1701d5e9e22SEivind EklundINET opt_inet.h 171fbd1372aSJoerg WunschIPDIVERT 17274a9466cSGary PalmerIPFIREWALL opt_ipfw.h 17374a9466cSGary PalmerIPFIREWALL_VERBOSE opt_ipfw.h 174fb260479SBruce EvansIPFIREWALL_VERBOSE_LIMIT opt_ipfw.h 175ffdd472dSPeter WemmIPFIREWALL_DEFAULT_TO_ACCEPT opt_ipfw.h 176bb60f459SJulian Elischer#temp option to change ipfw/divert semantics. Should become standard. 177e256a933SJulian ElischerIPFW_DIVERT_OLDRESTART opt_ipfw.h 178430df5f4SEivind EklundIPX opt_ipx.h 179430df5f4SEivind EklundIPXIP opt_ipx.h 180430df5f4SEivind EklundIPTUNNEL opt_ipx.h 1817262d3e4SEivind EklundNETATALK opt_atalk.h 18213c49711SPeter WemmPPP_BSDCOMP opt_ppp.h 18313c49711SPeter WemmPPP_DEFLATE opt_ppp.h 184d41238deSPeter WemmPPP_FILTER opt_ppp.h 18592252381SEivind EklundTCP_COMPAT_42 opt_compat.h 1860cc12cc5SJoerg WunschTCPDEBUG 1871ee25934SPeter WemmIPFILTER opt_ipfilter.h 1881ee25934SPeter WemmIPFILTER_LOG opt_ipfilter.h 1891ee25934SPeter WemmIPFILTER_LKM opt_ipfilter.h 1903458e54aSJulian Elischer 191e0d781f3SEivind Eklund# XXX Conflict: # of devices vs network protocol (Native ATM). 192e0d781f3SEivind Eklund# This makes "atm.h" unusable. 193e0d781f3SEivind EklundNATM opt_natm.h 194e0d781f3SEivind Eklund 1953458e54aSJulian Elischer# DPT driver debug flags 1963458e54aSJulian ElischerDPT_VERIFY_HINTR opt_dpt.h 1973458e54aSJulian ElischerDPT_USE_SINTR opt_dpt.h 1983458e54aSJulian ElischerDPT_RESTRICTED_FREELIST opt_dpt.h 1993458e54aSJulian ElischerDPT_MEASURE_PERFORMANCE opt_dpt.h 2003458e54aSJulian ElischerDPT_FREELIST_IS_STACK opt_dpt.h 2013458e54aSJulian ElischerDPT_HANDLE_TIMEOUTS opt_dpt.h 2023458e54aSJulian ElischerDPT_TIMEOUT_FACTOR opt_dpt.h 2033458e54aSJulian ElischerDPT_INTR_DELAY opt_dpt.h 2043458e54aSJulian ElischerDPT_LOST_IRQ opt_dpt.h 2053f2076daSEivind Eklund 2063f2076daSEivind Eklund# Misc debug flags. Most of these should probably be replaced with 2073f2076daSEivind Eklund# 'DEBUG', and then let people recompile just the interesting modules 2083f2076daSEivind Eklund# with 'make CC="cc -DDEBUG'. 2093f2076daSEivind EklundCLUSTERDEBUG opt_debug_cluster.h 2103f2076daSEivind EklundDEBUG_1284 opt_debug_1284.h 2113f2076daSEivind EklundLOCKF_DEBUG opt_debug_lockf.h 2123f2076daSEivind EklundLOUTB opt_debug_outb.h 2133f2076daSEivind EklundNPX_DEBUG opt_debug_npx.h 2143f2076daSEivind EklundNETATALKDEBUG opt_atalk.h 2153f2076daSEivind EklundNULLFS_DIAGNOSTIC opt_debug_nullfs.h 2163f2076daSEivind EklundSI_DEBUG opt_debug_si.h 2173f2076daSEivind Eklund 2183f2076daSEivind Eklund 21914834de4SEivind Eklund# These cause changes all over the kernel 22014834de4SEivind EklundDEBUG opt_global.h 22114834de4SEivind EklundDIAGNOSTIC opt_global.h 2223f2076daSEivind EklundSIMPLELOCK_DEBUG opt_global.h 223b1a7842bSJohn DysonENABLE_VFS_IOOPT opt_global.h 224d9bed5beSJohn Dyson 225d9bed5beSJohn Dyson# These are VM related options 226d9bed5beSJohn DysonVM_KMEM_SIZE opt_vm.h 227d9bed5beSJohn DysonVM_KMEM_SIZE_SCALE opt_vm.h 228d9bed5beSJohn DysonVM_KMEM_SIZE_MAX opt_vm.h 229751bf650SJun-ichiro itojun Hagino 230751bf650SJun-ichiro itojun Hagino# sys/netkey 231751bf650SJun-ichiro itojun HaginoKEY 232751bf650SJun-ichiro itojun HaginoKEY_DEBUG opt_key.h 23358067a99SPoul-Henning Kamp 23458067a99SPoul-Henning Kamp# Size of the kernel message buffer 23558067a99SPoul-Henning KampMSGBUF_SIZE opt_msgbuf.h 236ecbb00a2SDoug Rabson 237ecbb00a2SDoug Rabson# Include tweaks for running under the SimOS machine simulator. 238ecbb00a2SDoug RabsonSIMOS opt_simos.h 239