17b7bf77eSNicolas Souchu# $Id: options,v 1.122 1999/01/21 08:29:03 dillon 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 33bf21c633SJustin T. Gibbs# Adaptec aic7xxx SCSI controller options 34bf21c633SJustin T. GibbsAHC_ALLOW_MEMIO opt_aic7xxx.h # Allow PCI devices to use memory 35528784edSJustin T. Gibbs # mapped I/O 36bf21c633SJustin T. Gibbs 37bf21c633SJustin T. GibbsAHC_TMODE_ENABLE opt_aic7xxx.h # Bitmap of units to enable 38bf21c633SJustin T. Gibbs # targetmode operations. 39bf21c633SJustin T. Gibbs 40528784edSJustin T. GibbsADW_ALLOW_MEMIO opt_adw.h # Allow PCI devices to use memory 41528784edSJustin T. Gibbs # mapped I/O 42528784edSJustin T. Gibbs 433d20a1ffSBruce Evans# Miscellaneous options. 44f71bb3a1SEivind EklundCOMPAT_43 opt_compat.h 45f71bb3a1SEivind EklundCOMPAT_SUNOS opt_compat.h 46346ebe51SEivind EklundCOMPILING_LINT opt_lint.h 47b8cf6ea7SBruce EvansCY_PCI_FASTINTR 480e41ee30SGarrett WollmanDDB 491664f6f5SPaul TrainaDDB_UNATTENDED opt_ddb.h 50562d05dfSPaul TrainaGDB_REMOTE_CHAT opt_ddb.h 517b778b5eSEivind EklundDEVFS 527dff1433SEivind EklundFAILSAFE 53d94f38acSEivind EklundHW_WDOG 544bd49128SPeter WemmKTRACE 55455bb211SEivind EklundMD5 567b778b5eSEivind EklundMFS_ROOT opt_mfs.h 571315dabdSBruce EvansMFS_ROOT_SIZE opt_mfs.h 58c2906d55SPoul-Henning KampNTIMECOUNTER opt_ntp.h 59a9c94e9bSJohn-Mark GurneyEXPORTMFS opt_mfs.h 60be41061bSEivind EklundNO_LKM 61f71bb3a1SEivind EklundNSWAPDEV opt_swap.h 62e0d781f3SEivind EklundPPS_SYNC opt_ntp.h 633d20a1ffSBruce EvansQUOTA 64cecc50bcSEivind EklundSPX_HACK 65f71bb3a1SEivind EklundSUIDDIR opt_suiddir.h 663d20a1ffSBruce EvansSYSVMSG opt_sysvipc.h 673d20a1ffSBruce EvansSYSVSEM opt_sysvipc.h 683d20a1ffSBruce EvansSYSVSHM opt_sysvipc.h 693d20a1ffSBruce EvansUCONSOLE 70dadea2faSMatthew DillonICMP_BANDLIM 71d03b4017SBruce Evans 728a6472b7SPeter Dufault# POSIX kernel options 738a6472b7SPeter DufaultP1003_1B opt_posix.h 748a6472b7SPeter Dufault_KPOSIX_PRIORITY_SCHEDULING opt_posix.h 758a6472b7SPeter Dufault_KPOSIX_VERSION opt_posix.h 76917e476dSPeter Dufault 77808129f0SPeter Wemm# Do we want the config file compiled into the kernel? 78808129f0SPeter WemmINCLUDE_CONFIG_FILE opt_config.h 79808129f0SPeter Wemm 80d03b4017SBruce Evans# Options for static file systems. These should only be used at config 81d03b4017SBruce Evans# time, since the corresponding lkms cannot work if there are any static 82d03b4017SBruce Evans# dependencies. Unusability is enforced by hiding the defines for the 83d03b4017SBruce Evans# options in a never-included header. 84f41991baSEivind EklundEXT2FS opt_dontuse.h 85d03b4017SBruce EvansFDESC opt_dontuse.h 86d03b4017SBruce EvansKERNFS opt_dontuse.h 876cce9950SJoerg WunschMFS opt_dontuse.h 88f41991baSEivind EklundMSDOSFS opt_dontuse.h 89d03b4017SBruce EvansNULLFS opt_dontuse.h 90d03b4017SBruce EvansPORTAL opt_dontuse.h 91d03b4017SBruce EvansPROCFS opt_dontuse.h 92d03b4017SBruce EvansUMAPFS opt_dontuse.h 93d03b4017SBruce Evans 947b778b5eSEivind Eklund# These static filesystems has one slightly bogus static dependency in 957b778b5eSEivind Eklund# sys/i386/i386/autoconf.c. If any of these filesystems are 967b778b5eSEivind Eklund# statically compiled into the kernel, code for mounting them as root 977b778b5eSEivind Eklund# filesystems will be enabled - but look below. Boot-code is purposely 987b778b5eSEivind Eklund# unavailable for the LKM-based versions. 999afcea2fSRobert V. BaronCODA 1005a9714deSJoerg WunschCD9660 1017b778b5eSEivind EklundFFS 1027b778b5eSEivind EklundNFS 1035a9714deSJoerg Wunsch 104b1897c19SJulian Elischer# If you are following the conditions in the copyright, 105b1897c19SJulian Elischer# you can enable soft-updates which will speed up a lot of thigs 106b1897c19SJulian Elischer# and make the system safer from crashes at the same time. 107b1897c19SJulian Elischer# otherwise a STUB module will be compiled in. 108b1897c19SJulian ElischerSOFTUPDATES opt_ffs.h 109b1897c19SJulian Elischer 1107b778b5eSEivind Eklund# The above static dependencies are planned removed, with a 1117b778b5eSEivind Eklund# <filesystem>_ROOT option to control if it usable as root. This list 1127b778b5eSEivind Eklund# allows these options to be present in config files already (though 1137b778b5eSEivind Eklund# they won't make any difference yet). 1147b778b5eSEivind EklundCD9660_ROOT opt_cd9660.h 1157b778b5eSEivind EklundFFS_ROOT opt_ffs.h 116df394affSJohn-Mark GurneyNFS_ROOT opt_nfsroot.h 1177b778b5eSEivind Eklund 1187b778b5eSEivind Eklund# Multi-session CD-Rs might require a huge amount of time in order to 1197b778b5eSEivind Eklund# "settle". If we are about mounting them as the root f/s, we gotta 1207b778b5eSEivind Eklund# wait a little. 1215a9714deSJoerg WunschCD9660_ROOTDELAY opt_cd9660.h 1225a9714deSJoerg Wunsch 123d03b4017SBruce Evans# The union static file system has bogus static dependencies, so it isn't 124d03b4017SBruce Evans# hidden yet. 125d03b4017SBruce EvansUNION 126d03b4017SBruce Evans 12781fc841cSBruce Evans# Options used only in param.c. 12834f3320eSKenjiro ChoHZ opt_param.h 12995de6ecfSBruce EvansMAXUSERS opt_param.h 1303d20a1ffSBruce EvansMSGMNB opt_param.h 1313d20a1ffSBruce EvansMSGMNI opt_param.h 1323d20a1ffSBruce EvansMSGSEG opt_param.h 1333d20a1ffSBruce EvansMSGSSZ opt_param.h 1343d20a1ffSBruce EvansMSGTQL opt_param.h 1353d20a1ffSBruce EvansNBUF opt_param.h 1364bd49128SPeter WemmNMBCLUSTERS opt_param.h 137dd0b2081SDavid GreenmanNSFBUFS opt_param.h 1384bd49128SPeter WemmSEMMAP opt_param.h 1394bd49128SPeter WemmSEMMNI opt_param.h 1404bd49128SPeter WemmSEMMNS opt_param.h 1414bd49128SPeter WemmSEMMNU opt_param.h 1424bd49128SPeter WemmSEMMSL opt_param.h 1434bd49128SPeter WemmSEMOPM opt_param.h 1444bd49128SPeter WemmSEMUME opt_param.h 1453d20a1ffSBruce EvansSHMALL opt_param.h 1463d20a1ffSBruce EvansSHMMAX opt_param.h 1473d20a1ffSBruce EvansSHMMAXPGS opt_param.h 1483d20a1ffSBruce EvansSHMMIN opt_param.h 1493d20a1ffSBruce EvansSHMMNI opt_param.h 1503d20a1ffSBruce EvansSHMSEG opt_param.h 15181fc841cSBruce Evans 15281fc841cSBruce Evans# Generic SCSI options. 153bf21c633SJustin T. GibbsCAM_MAX_HIGHPOWER opt_cam.h 154bf21c633SJustin T. GibbsCAMDEBUG opt_cam.h 155bf21c633SJustin T. GibbsCAM_DEBUG_BUS opt_cam.h 156bf21c633SJustin T. GibbsCAM_DEBUG_TARGET opt_cam.h 157bf21c633SJustin T. GibbsCAM_DEBUG_LUN opt_cam.h 158bf21c633SJustin T. GibbsCAM_DEBUG_FLAGS opt_cam.h 1593d20a1ffSBruce EvansSCSI_DELAY opt_scsi.h 1603d20a1ffSBruce EvansSCSI_REPORT_GEOMETRY opt_scsi.h 161bf21c633SJustin T. GibbsSCSI_NO_SENSE_STRINGS opt_scsi.h 162bf21c633SJustin T. GibbsSCSI_NO_OP_STRINGS opt_scsi.h 163bf21c633SJustin T. Gibbs 164bf21c633SJustin T. Gibbs# Options used only in cam/scsi/scsi_cd.c 165bf21c633SJustin T. GibbsCHANGER_MIN_BUSY_SECONDS opt_cd.h 166bf21c633SJustin T. GibbsCHANGER_MAX_BUSY_SECONDS opt_cd.h 16781fc841cSBruce Evans 1689dfb4471SKenneth D. Merry# Options used only in cam/scsi/sa.c. 1699dfb4471SKenneth D. MerrySA_SPACE_TIMEOUT opt_sa.h 1709dfb4471SKenneth D. MerrySA_REWIND_TIMEOUT opt_sa.h 1719dfb4471SKenneth D. MerrySA_ERASE_TIMEOUT opt_sa.h 172c30bc9dbSJoerg Wunsch 17321ffa5aeSStefan Eßer# Options used only in pci/ncr.c 1743d20a1ffSBruce EvansSCSI_NCR_DEBUG opt_ncr.h 1753d20a1ffSBruce EvansSCSI_NCR_DFLT_TAGS opt_ncr.h 176a5bef142SBruce EvansSCSI_NCR_MAX_SYNC opt_ncr.h 177a5bef142SBruce EvansSCSI_NCR_MAX_WIDE opt_ncr.h 1783d20a1ffSBruce EvansSCSI_NCR_MYADDR opt_ncr.h 17921ffa5aeSStefan Eßer 18081fc841cSBruce Evans# Resource limits. 181e9822d92SJoerg WunschDFLDSIZ opt_rlimit.h 1823d20a1ffSBruce EvansMAXDSIZ opt_rlimit.h 18381fc841cSBruce Evans 18481fc841cSBruce Evans# Net stuff. 185e4f4247aSEivind EklundBOOTP opt_bootp.h 186e4f4247aSEivind EklundBOOTP_COMPAT opt_bootp.h 187e4f4247aSEivind EklundBOOTP_NFSROOT opt_bootp.h 188e4f4247aSEivind EklundBOOTP_NFSV3 opt_bootp.h 1898f7030a7STor EggeBOOTP_WIRED_TO opt_bootp.h 190508d0661SLuigi RizzoBRIDGE opt_bdg.h 1914bd49128SPeter WemmMROUTING opt_mrouting.h 1921d5e9e22SEivind EklundINET opt_inet.h 193fbd1372aSJoerg WunschIPDIVERT 194508d0661SLuigi RizzoDUMMYNET opt_ipdn.h 19574a9466cSGary PalmerIPFIREWALL opt_ipfw.h 19674a9466cSGary PalmerIPFIREWALL_VERBOSE opt_ipfw.h 197fb260479SBruce EvansIPFIREWALL_VERBOSE_LIMIT opt_ipfw.h 198ffdd472dSPeter WemmIPFIREWALL_DEFAULT_TO_ACCEPT opt_ipfw.h 199cdcc2613SJulian ElischerIPFIREWALL_FORWARD opt_ipfw.h 200430df5f4SEivind EklundIPX opt_ipx.h 201430df5f4SEivind EklundIPXIP opt_ipx.h 202430df5f4SEivind EklundIPTUNNEL opt_ipx.h 2037262d3e4SEivind EklundNETATALK opt_atalk.h 20413c49711SPeter WemmPPP_BSDCOMP opt_ppp.h 20513c49711SPeter WemmPPP_DEFLATE opt_ppp.h 206d41238deSPeter WemmPPP_FILTER opt_ppp.h 20792252381SEivind EklundTCP_COMPAT_42 opt_compat.h 2080cc12cc5SJoerg WunschTCPDEBUG 2091ee25934SPeter WemmIPFILTER opt_ipfilter.h 2101ee25934SPeter WemmIPFILTER_LOG opt_ipfilter.h 2111ee25934SPeter WemmIPFILTER_LKM opt_ipfilter.h 2121c7c3c6aSMatthew DillonSLIP_IFF_OPTS opt_slip.h 2133458e54aSJulian Elischer 2143f8c4506SPoul-Henning Kamp# ATM (HARP version) 2153f8c4506SPoul-Henning KampATM_CORE opt_atm.h 2163f8c4506SPoul-Henning KampATM_IP opt_atm.h 2173f8c4506SPoul-Henning KampATM_SIGPVC opt_atm.h 2183f8c4506SPoul-Henning KampATM_SPANS opt_atm.h 2193f8c4506SPoul-Henning KampATM_UNI opt_atm.h 2203f8c4506SPoul-Henning Kamp 221e0d781f3SEivind Eklund# XXX Conflict: # of devices vs network protocol (Native ATM). 222e0d781f3SEivind Eklund# This makes "atm.h" unusable. 223e0d781f3SEivind EklundNATM opt_natm.h 224e0d781f3SEivind Eklund 225528784edSJustin T. GibbsDPT_ALLOW_MEMIO opt_dpt.h # Allow PCI devices to use memory 226528784edSJustin T. Gibbs # mapped I/O 2273458e54aSJulian Elischer# DPT driver debug flags 2283458e54aSJulian ElischerDPT_VERIFY_HINTR opt_dpt.h 2293458e54aSJulian ElischerDPT_USE_SINTR opt_dpt.h 2303458e54aSJulian ElischerDPT_RESTRICTED_FREELIST opt_dpt.h 2313458e54aSJulian ElischerDPT_MEASURE_PERFORMANCE opt_dpt.h 2323458e54aSJulian ElischerDPT_FREELIST_IS_STACK opt_dpt.h 2333458e54aSJulian ElischerDPT_HANDLE_TIMEOUTS opt_dpt.h 2343458e54aSJulian ElischerDPT_TIMEOUT_FACTOR opt_dpt.h 2353458e54aSJulian ElischerDPT_INTR_DELAY opt_dpt.h 2363458e54aSJulian ElischerDPT_LOST_IRQ opt_dpt.h 237b755b885SEivind EklundDPT_SHUTDOWN_SLEEP opt_dpt.h 238b755b885SEivind EklundDPT_RESET_HBA opt_dpt.h 2393f2076daSEivind Eklund 2403f2076daSEivind Eklund# Misc debug flags. Most of these should probably be replaced with 2413f2076daSEivind Eklund# 'DEBUG', and then let people recompile just the interesting modules 2423f2076daSEivind Eklund# with 'make CC="cc -DDEBUG'. 2433f2076daSEivind EklundCLUSTERDEBUG opt_debug_cluster.h 244a6de7b79SNicolas SouchuDEBUG_1284 opt_ppb_1284.h 245a6de7b79SNicolas SouchuPERIPH_1284 opt_ppb_1284.h 246a6de7b79SNicolas SouchuDONTPROBE_1284 opt_ppb_1284.h 247a6de7b79SNicolas SouchuVP0_DEBUG opt_vpo.h 248a6de7b79SNicolas SouchuNLPT_DEBUG opt_nlpt.h 2497b7bf77eSNicolas SouchuPLIP_DEBUG opt_plip.h 2503f2076daSEivind EklundLOCKF_DEBUG opt_debug_lockf.h 2513f2076daSEivind EklundLOUTB opt_debug_outb.h 2523f2076daSEivind EklundNPX_DEBUG opt_debug_npx.h 2533f2076daSEivind EklundNETATALKDEBUG opt_atalk.h 2543f2076daSEivind EklundNULLFS_DIAGNOSTIC opt_debug_nullfs.h 2553f2076daSEivind EklundSI_DEBUG opt_debug_si.h 2563f2076daSEivind Eklund 2573f2076daSEivind Eklund 25814834de4SEivind Eklund# These cause changes all over the kernel 25914834de4SEivind EklundDEBUG opt_global.h 26015a1057cSEivind EklundDEBUG_LOCKS opt_global.h 2615526d2d9SEivind EklundDEBUG_VFS_LOCKS opt_global.h 26214834de4SEivind EklundDIAGNOSTIC opt_global.h 263b1a7842bSJohn DysonENABLE_VFS_IOOPT opt_global.h 2645526d2d9SEivind EklundINVARIANT_SUPPORT opt_global.h 2655526d2d9SEivind EklundINVARIANTS opt_global.h 2665526d2d9SEivind EklundSIMPLELOCK_DEBUG opt_global.h 2675526d2d9SEivind EklundVFS_BIO_DEBUG opt_global.h 268d9bed5beSJohn Dyson 269d9bed5beSJohn Dyson# These are VM related options 270d9bed5beSJohn DysonVM_KMEM_SIZE opt_vm.h 271d9bed5beSJohn DysonVM_KMEM_SIZE_SCALE opt_vm.h 272d9bed5beSJohn DysonVM_KMEM_SIZE_MAX opt_vm.h 273faa5f8d8SAndrzej BialeckiNO_SWAPPING opt_vm.h 27420f71813SJohn-Mark GurneyPQ_NOOPT opt_vmpage.h 27520f71813SJohn-Mark GurneyPQ_NORMALCACHE opt_vmpage.h 27620f71813SJohn-Mark GurneyPQ_MEDIUMCACHE opt_vmpage.h 27720f71813SJohn-Mark GurneyPQ_LARGECACHE opt_vmpage.h 27820f71813SJohn-Mark GurneyPQ_HUGECACHE opt_vmpage.h 27920f71813SJohn-Mark Gurney 280ecd19816SMike Smith# Standard SMP options 281ecd19816SMike SmithSMP opt_global.h 282ecd19816SMike SmithNCPU opt_smp.h 283ecd19816SMike SmithNBUS opt_smp.h 284751bf650SJun-ichiro itojun Hagino 285751bf650SJun-ichiro itojun Hagino# sys/netkey 286751bf650SJun-ichiro itojun HaginoKEY 287751bf650SJun-ichiro itojun HaginoKEY_DEBUG opt_key.h 28858067a99SPoul-Henning Kamp 28958067a99SPoul-Henning Kamp# Size of the kernel message buffer 29058067a99SPoul-Henning KampMSGBUF_SIZE opt_msgbuf.h 291ecbb00a2SDoug Rabson 292e261d589SJohn-Mark Gurney# PCI related options 293e261d589SJohn-Mark GurneyPCI_QUIET opt_pci.h 294e261d589SJohn-Mark Gurney 295df394affSJohn-Mark Gurney# NFS options 296df394affSJohn-Mark GurneyNFS_MINATTRTIMO opt_nfs.h 297df394affSJohn-Mark GurneyNFS_MAXATTRTIMO opt_nfs.h 298df394affSJohn-Mark GurneyNFS_MINDIRATTRTIMO opt_nfs.h 299df394affSJohn-Mark GurneyNFS_MAXDIRATTRTIMO opt_nfs.h 300df394affSJohn-Mark GurneyNFS_GATHERDELAY opt_nfs.h 301df394affSJohn-Mark GurneyNFS_UIDHASHSIZ opt_nfs.h 302df394affSJohn-Mark GurneyNFS_WDELAYHASHSIZ opt_nfs.h 303df394affSJohn-Mark GurneyNFS_MUIDHASHSIZ opt_nfs.h 304df394affSJohn-Mark GurneyNFS_NOSERVER opt_nfs.h 305df394affSJohn-Mark GurneyNFS_DEBUG opt_nfs.h 306df394affSJohn-Mark Gurney 3073f139a1aSJohn-Mark Gurney# give bktr an opt_bktr.h file 308dd70aa7fSSøren SchmidtOVERRIDE_CARD opt_bktr.h 3093f139a1aSJohn-Mark GurneyOVERRIDE_TUNER opt_bktr.h 3105d0c8abaSSøren SchmidtOVERRIDE_DBX opt_bktr.h 3115d0c8abaSSøren SchmidtOVERRIDE_MSP opt_bktr.h 3125d0c8abaSSøren SchmidtBROOKTREE_SYSTEM_DEFAULT opt_bktr.h 31358dde31aSSøren SchmidtBKTR_USE_PLL opt_bktr.h 31458dde31aSSøren Schmidt 3153f139a1aSJohn-Mark Gurney 316afc2d1c7SJordan K. Hubbard# meteor opt_meteor.h 317afc2d1c7SJordan K. HubbardMETEOR_ALLOC_PAGES opt_meteor.h 318afc2d1c7SJordan K. HubbardMETEOR_TEST_VIDEO opt_meteor.h 319afc2d1c7SJordan K. HubbardMETEOR_SYSTEM_DEFAULT opt_meteor.h 320afc2d1c7SJordan K. HubbardMETEOR_DEALLOC_PAGES opt_meteor.h 321afc2d1c7SJordan K. HubbardMETEOR_DEALLOC_ABOVE opt_meteor.h 322afc2d1c7SJordan K. Hubbard 323ecbb00a2SDoug Rabson# Include tweaks for running under the SimOS machine simulator. 324ecbb00a2SDoug RabsonSIMOS opt_simos.h 325709f2df6SDoug Rabson 326709f2df6SDoug Rabson# options for bus/device framework 327709f2df6SDoug RabsonBUS_DEBUG opt_bus.h 3280cec007cSNick Hibma 3290cec007cSNick Hibma# options for USB support 3300cec007cSNick HibmaUSB_DEBUG opt_usb.h 3310cec007cSNick HibmaUSBVERBOSE opt_usb.h 332a9d45962SPeter Wemm 333a9d45962SPeter Wemm# Vinum options 334a9d45962SPeter WemmVINUMDEBUG opt_vinum.h 335f20a9c5aSPeter Wemm 336f20a9c5aSPeter Wemm# Include LKM compatability module 337f20a9c5aSPeter WemmLKM 338