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