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