1# 2# Mach Operating System 3# Copyright (c) 1986 Carnegie-Mellon University 4# Copyright 2001-2024 Apple Inc. 5# 6# All rights reserved. The CMU software License Agreement 7# specifies the terms and conditions for use and redistribution. 8###################################################################### 9# 10# Master Apple configuration file (see the master machine independent 11# configuration file for a description of the file format). 12# 13###################################################################### 14# Standard Apple OS Configurations: 15# -------- ----- -- --------------- 16# 17#if MASTER_CONFIG_ENABLE_EXCLAVES 18# ARM_EXTRAS_BASE = [ config_sptm config_sptm_iommu config_exclaves ] 19#elif MASTER_CONFIG_ENABLE_SPTM 20# ARM_EXTRAS_BASE = [ config_sptm config_sptm_iommu ] 21#else 22# ARM_EXTRAS_BASE = [ config_pmap_ppl ] 23#endif 24# KERNEL_BASE = [ arm64 medium msgb_large config_requires_u32_munging config_delay_idle_sleep config_proc_udata_storage config_uexc config_darkboot ARM_EXTRAS_BASE ] 25# KERNEL_RELEASE = [ KERNEL_BASE release ] 26# KERNEL_DEV = [ KERNEL_BASE development mach_assert config_xnupost proc_ref_debug config_proc_resource_limits config_ext_paniclog ] 27# KERNEL_DEBUG = [ KERNEL_BASE debug mach_assert config_xnupost config_waitq_stats config_workloop_debug config_proc_resource_limits config_ext_paniclog ] 28# BSD_BASE = [ mach_bsd sysv_sem sysv_msg sysv_shm config_netboot config_imageboot psynch config_proc_uuid_policy config_coredump config_ucoredump pgo config_personas ] 29# BSD_RELEASE = [ BSD_BASE ] 30# BSD_DEV = [ BSD_BASE config_vnguard ] 31# BSD_DEBUG = [ BSD_BASE config_vnguard ] 32# FILESYS_BASE = [ devfs fdesc fifo fs_compression config_protect config_mnt_rootsnap config_rosv_startup config_mount_vm config_mount_prebootrecovery config_basesystemroot config_fse quota namedstreams config_imgsrc_access config_triggers config_ext_resolver config_searchfs config_volfs config_appledouble nullfs config_mnt_suid config_firmlinks config_dataless_files config_union_mounts config_file_leases ] 33# FILESYS_RELEASE= [ FILESYS_BASE ] 34# FILESYS_DEV = [ FILESYS_BASE config_iocount_trace ] 35# FILESYS_DEBUG = [ FILESYS_BASE config_iocount_trace ] 36# NFS = [ nfsserver ] 37# SKYWALK_BASE = [ skywalk config_nexus_user_pipe config_nexus_kernel_pipe config_nexus_flowswitch config_nexus_netif ] 38# SKYWALK_RELEASE = [ SKYWALK_BASE ] 39# SKYWALK_DEV = [ SKYWALK_BASE ] 40# SKYWALK_DEBUG = [ SKYWALK_BASE ] 41# NETWORKING = [ inet bpfilter dummynet traffic_mgt sendfile ah_all_crypto bond vlan gif stf ifnet_input_chk if_bridge MULTIPATH if_fake if_redirect remote_vif ] 42# NETWORKING_RELEASE = [ NETWORKING ] 43# NETWORKING_DEV = [ NETWORKING_RELEASE packet_mangler if_headless kctl_test ] 44# NETWORKING_DEBUG = [ NETWORKING_DEV ] 45# VPN = [ ipsec flow_divert necp content_filter ] 46# PF = [ pf pflog ] 47# MULTIPATH = [ multipath mptcp ] 48#if SOC_CONFIG_t8020 || SOC_IS_VIRTUALIZED 49# HIBERNATION = [ ] 50#else /*!(SOC_CONFIG_t8020 || SOC_IS_VIRTUALIZED)*/ 51# HIBERNATION = [ ] 52#endif /*SOC_CONFIG_t8020 || SOC_IS_VIRTUALIZED*/ 53# IOKIT_BASE = [ iokit iokitcpp no_kernel_hid config_sleep iokitstats HIBERNATION ] 54# IOKIT_RELEASE = [ IOKIT_BASE ] 55# IOKIT_DEV = [ IOKIT_BASE iotracking ] 56# IOKIT_DEBUG = [ IOKIT_BASE iotracking ] 57# LIBKERN_BASE = [ libkerncpp config_blocks config_kec_fips crypto_sha2 config_img4 ] 58# LIBKERN_RELEASE =[ LIBKERN_BASE zlib ] 59# LIBKERN_DEV = [ LIBKERN_BASE zlib iotracking ] 60# LIBKERN_DEBUG = [ LIBKERN_BASE zlib iotracking ] 61#if SOC_IS_VIRTUALIZED 62# CPU_COUNTERS_BASE = [ ] 63#else /*!SOC_IS_VIRTUALIZED*/ 64# CPU_COUNTERS_BASE = [ config_cpu_counters config_pervasive_cpi config_pervasive_energy ] 65#endif /*SOC_IS_VIRTUALIZED*/ 66# PERF_DBG_BASE = [ config_dtrace mach_kdp config_serial_kdp kdp_interactive_debugging config_kdp_coredump_encryption CPU_COUNTERS_BASE kperf ] 67# PERF_DBG_RELEASE=[ PERF_DBG_BASE ist_kdebug ] 68# PERF_DBG_DEV = [ PERF_DBG_BASE lock_stats zleaks alternate_debugger sched_hygiene_debug config_debug_syscall_rejection config_iotrace ] 69# PERF_DBG_DEBUG = [ PERF_DBG_BASE lock_stats zleaks alternate_debugger sched_hygiene_debug config_debug_syscall_rejection config_iotrace ] 70# PERF_DBG_KASAN = [ PERF_DBG_BASE lock_stats zleaks alternate_debugger config_debug_syscall_rejection config_iotrace ] 71#if SOC_IS_VIRTUALIZED 72# PARAVIRT_BASE = [ config_pv_ticket ] 73#else 74# PARAVIRT_BASE = [ ] 75#endif /*SOC_IS_VIRTUALIZED*/ 76# MACH_BASE = [ mach config_ecc_logging vc_progress_white importance_inheritance config_atm config_coalitions config_iosched config_sysdiagnose config_telemetry config_mach_bridge_recv_time config_quiesce_counter config_arm_pfz config_user_notification phys_write_acct config_service_port_info config_voucher_deprecated PARAVIRT_BASE config_ledger_interval_max ] 77# MACH_RELEASE = [ MACH_BASE ] 78# MACH_DEV = [ MACH_BASE config_io_accounting importance_trace config_task_suspend_stats ] 79# MACH_DEBUG = [ MACH_BASE config_io_accounting importance_trace importance_debug config_task_suspend_stats ] 80# SCHED_BASE = [ config_sched_timeshare_core config_sched_deferred_ast config_clutch config_sched_sfi config_sched_auto_join config_preadopt_tg ] 81# SCHED_RELEASE = [ SCHED_BASE ] 82# SCHED_DEV = [ SCHED_BASE ] 83# SCHED_DEBUG = [ SCHED_BASE ] 84#if MASTER_CONFIG_ENABLE_SPTM 85# VM_EXTRA = [ ] 86# VM_EXTRA_DEV = [ ] 87#else 88# VM_EXTRA = [ ] 89# VM_EXTRA_DEV = [ ] 90#endif /* MASTER_CONFIG_ENABLE_KERNEL_TAG && MASTER_CONFIG_ENABLE_SPTM */ 91# VM_BASE = [ vm_pressure_events memorystatus config_code_decryption encrypted_swap config_deferred_reclaim VM_EXTRA ] 92# VM_RELEASE = [ VM_BASE ] 93# VM_DEV = [ VM_BASE dynamic_codesigning VM_EXTRA_DEV ] 94# VM_DEBUG = [ VM_BASE dynamic_codesigning VM_EXTRA_DEV ] 95# VM_KASAN = [ VM_BASE dynamic_codesigning config_kasan config_ubsan config_kcov config_ksancov kernel_tagging kernel_tbi ] 96# SECURITY_BASE = [ config_macf config_audit kernel_integrity config_csr config_csr_from_dt config_setuid config_kas_info config_secure_bsd_root config_arcade config_supplemental_signatures second_static_trust_cache reslide_shared_cache ] 97# SECURITY_RELEASE = [ SECURITY_BASE ] 98# SECURITY_DEV = [ SECURITY_BASE ] 99# SECURITY_DEBUG = [ SECURITY_BASE ] 100# BASE = [ PF VPN NFS ] 101# RELEASE = [ BASE KERNEL_RELEASE BSD_RELEASE FILESYS_RELEASE SKYWALK_RELEASE NETWORKING_RELEASE IOKIT_RELEASE LIBKERN_RELEASE PERF_DBG_RELEASE MACH_RELEASE SCHED_RELEASE VM_RELEASE SECURITY_RELEASE ] 102# DEVELOPMENT = [ BASE KERNEL_DEV BSD_DEV FILESYS_DEV SKYWALK_DEV NETWORKING_DEV IOKIT_DEV LIBKERN_DEV PERF_DBG_DEV MACH_DEV SCHED_DEV VM_DEV SECURITY_DEV ] 103# DEBUG = [ BASE KERNEL_DEBUG BSD_DEBUG FILESYS_DEBUG SKYWALK_DEBUG NETWORKING_DEBUG IOKIT_DEBUG LIBKERN_DEBUG PERF_DBG_DEBUG MACH_DEBUG SCHED_DEBUG VM_DEBUG SECURITY_DEBUG ] 104# KASAN = [ BASE KERNEL_DEV BSD_DEV FILESYS_DEV SKYWALK_DEV NETWORKING_DEV IOKIT_DEV LIBKERN_DEV PERF_DBG_KASAN MACH_DEV SCHED_DEV VM_KASAN SECURITY_DEV ] 105# SPTM = [ BASE KERNEL_DEV BSD_DEV FILESYS_DEV SKYWALK_DEV NETWORKING_DEV IOKIT_DEV LIBKERN_DEV PERF_DBG_DEV MACH_DEV SCHED_DEV VM_DEV SECURITY_DEV ] 106# 107###################################################################### 108# 109machine "arm64" # <arm64> 110 111makeoptions OSFMK_MACHINE = "arm64" # <mach> 112 113options COUNT_SYSCALLS # count bsd system calls # <countcalls> 114options TRASH_VFP_ON_SAVE # <debug,trash_vfp> 115options ALTERNATE_DEBUGGER # <alternate_debugger> 116 117options CONFIG_VNODES=1024 # <xsmall> 118 119options CONFIG_FREEZE_SUSPENDED_MIN=4 # <xsmall> 120 121options CONFIG_MACH_APPROXIMATE_TIME 122 123options CONFIG_KERNEL_INTEGRITY # <kernel_integrity> 124 125options CONFIG_MACF_LAZY_VNODE_LABELS # Turn on labels, don't preallocate 126 127options CONFIG_RESLIDE_SHARED_CACHE # <reslide_shared_cache> 128options CONFIG_KERNEL_TBI # <kernel_tbi> 129options CONFIG_KERNEL_TAGGING # <kernel_tagging> 130