2 # Mach Operating System
3 # Copyright (c) 1986 Carnegie-Mellon University
4 # Copyright 2001-2018 Apple Inc.
6 # All rights reserved. The CMU software License Agreement
7 # specifies the terms and conditions for use and redistribution.
9 ######################################################################
11 # Master Apple configuration file (see the master machine independent
12 # configuration file for a description of the file format).
14 ######################################################################
16 # Standard Apple OS Configurations:
17 # -------- ----- -- ---------------
19 # KERNEL_BASE = [ arm64 medium msgb_large config_arrow config_requires_u32_munging config_zcache config_delay_idle_sleep config_proc_udata_storage ARM_EXTRAS_BASE ]
20 # KERNEL_RELEASE = [ KERNEL_BASE ]
21 # KERNEL_DEV = [ KERNEL_BASE development mach_assert config_xnupost proc_ref_debug os_reason_debug pgtrace config_zalloc_sequester ]
22 # KERNEL_DEBUG = [ KERNEL_BASE debug mach_assert config_xnupost config_ltable_stats config_ltable_debug config_waitq_stats config_workloop_debug config_waitq_debug pgtrace config_zalloc_sequester ]
23 # BSD_BASE = [ mach_bsd sysv_sem sysv_msg sysv_shm config_netboot config_imageboot config_workqueue psynch config_proc_uuid_policy config_coredump pgo config_personas ]
24 # BSD_RELEASE = [ BSD_BASE ]
25 # BSD_DEV = [ BSD_BASE config_vnguard ]
26 # BSD_DEBUG = [ BSD_BASE config_vnguard ]
27 # 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 ]
28 # FILESYS_RELEASE= [ FILESYS_BASE ]
29 # FILESYS_DEV = [ FILESYS_BASE ]
30 # FILESYS_DEBUG = [ FILESYS_BASE ]
31 # NFS = [ nfsclient nfsserver config_nfs4 config_nfs_gss ]
32 # SKYWALK_BASE = [ skywalk config_nexus_user_pipe config_nexus_kernel_pipe config_nexus_monitor config_nexus_flowswitch config_nexus_netif ]
33 # SKYWALK_RELEASE = [ SKYWALK_BASE ]
34 # SKYWALK_DEV = [ SKYWALK_BASE ]
35 # SKYWALK_DEBUG = [ SKYWALK_BASE ]
36 # NETWORKING = [ inet bpfilter dummynet traffic_mgt sendfile ah_all_crypto bond vlan gif stf ifnet_input_chk config_mbuf_jumbo if_bridge MULTIPATH if_fake sixlowpan ]
37 # NETWORKING_RELEASE = [ NETWORKING ]
38 # NETWORKING_DEV = [ NETWORKING_RELEASE packet_mangler if_headless ]
39 # NETWORKING_DEBUG = [ NETWORKING_DEV ]
40 # VPN = [ ipsec flow_divert necp content_filter ]
42 # MULTIPATH = [ multipath mptcp ]
43 #ifdef SOC_CONFIG_t8020
45 #else /*!SOC_CONFIG_t8020*/
46 # HIBERNATION = [ hibernation ]
47 #endif /*!SOC_CONFIG_t8020*/
48 # IOKIT_BASE = [ iokit iokitcpp no_kernel_hid config_sleep iokitstats HIBERNATION ]
49 # IOKIT_RELEASE = [ IOKIT_BASE ]
50 # IOKIT_DEV = [ IOKIT_BASE iotracking ]
51 # IOKIT_DEBUG = [ IOKIT_BASE iotracking ]
52 # LIBKERN_BASE = [ libkerncpp config_blocks config_kec_fips crypto_sha2 config_img4 ]
53 # LIBKERN_RELEASE =[ LIBKERN_BASE zlib ]
54 # LIBKERN_DEV = [ LIBKERN_BASE zlib iotracking ]
55 # LIBKERN_DEBUG = [ LIBKERN_BASE zlib iotracking ]
56 # PERF_DBG_BASE = [ config_dtrace mach_kdp config_serial_kdp kdp_interactive_debugging MONOTONIC_BASE kperf kpc ]
57 # PERF_DBG_RELEASE=[ PERF_DBG_BASE ist_kdebug ]
58 # PERF_DBG_DEV = [ PERF_DBG_BASE lock_stats zleaks alternate_debugger interrupt_masked_debug ]
59 # PERF_DBG_DEBUG = [ PERF_DBG_BASE lock_stats zleaks alternate_debugger interrupt_masked_debug ]
60 # MACH_BASE = [ mach slidable config_ecc_logging vc_progress_white mdebug ipc_debug importance_inheritance config_atm config_coalitions config_iosched config_sysdiagnose config_telemetry config_mach_bridge_recv_time config_quiesce_counter config_arm_pfz ]
61 # MACH_RELEASE = [ MACH_BASE debugger_for_zone_info ]
62 # MACH_DEV = [ MACH_BASE task_zone_info config_io_accounting importance_trace config_ledger_interval_max ]
63 # MACH_DEBUG = [ MACH_BASE task_zone_info config_io_accounting importance_trace config_ledger_interval_max importance_debug ]
64 # SCHED_BASE = [ config_sched_traditional config_sched_multiq config_sched_deferred_ast config_clutch config_sched_sfi config_sched_auto_join ]
65 # SCHED_RELEASE = [ SCHED_BASE ]
66 # SCHED_DEV = [ SCHED_BASE ]
67 # SCHED_DEBUG = [ SCHED_BASE config_sched_grrr config_sched_proto ]
68 # VM_BASE = [ vm_pressure_events memorystatus config_code_decryption encrypted_swap config_background_queue]
69 # VM_RELEASE = [ VM_BASE ]
70 # VM_DEV = [ VM_BASE dynamic_codesigning ]
71 # VM_DEBUG = [ VM_BASE dynamic_codesigning ]
72 # SECURITY = [ 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 ]
73 # RELEASE = [ KERNEL_RELEASE BSD_RELEASE FILESYS_RELEASE NFS SKYWALK_RELEASE NETWORKING_RELEASE PF MULTIPATH VPN IOKIT_RELEASE LIBKERN_RELEASE PERF_DBG_RELEASE MACH_RELEASE SCHED_RELEASE VM_RELEASE SECURITY ]
74 # DEVELOPMENT = [ KERNEL_DEV BSD_DEV FILESYS_DEV NFS SKYWALK_DEV NETWORKING_DEV PF MULTIPATH VPN IOKIT_DEV LIBKERN_DEV PERF_DBG_DEV MACH_DEV SCHED_DEV VM_DEV SECURITY ]
75 # DEBUG = [ KERNEL_DEBUG BSD_DEBUG FILESYS_DEBUG NFS SKYWALK_DEBUG NETWORKING_DEBUG PF MULTIPATH VPN IOKIT_DEBUG LIBKERN_DEBUG PERF_DBG_DEBUG MACH_DEBUG SCHED_DEBUG VM_DEBUG SECURITY ]
76 # KASAN = [ DEVELOPMENT config_kasan config_ubsan config_ksancov ]
78 ######################################################################
80 machine "arm64" # <arm64>
82 makeoptions OSFMK_MACHINE = "arm64" # <mach>
84 options COUNT_SYSCALLS # count bsd system calls # <countcalls>
85 options TRASH_VFP_ON_SAVE # <debug,trash_vfp>
86 options ALTERNATE_DEBUGGER # <alternate_debugger>
88 options CONFIG_VNODES=1024 # <xsmall>
90 options CONFIG_FREEZE_SUSPENDED_MIN=4 # <xsmall>
92 options CONFIG_MACH_APPROXIMATE_TIME
94 options CONFIG_KERNEL_INTEGRITY # <kernel_integrity>
96 options CONFIG_PGTRACE # <pgtrace>
97 options CONFIG_PGTRACE_NONKEXT # <pgtrace_nonkext>
98 pseudo-device pgtrace 1 init pgtrace_dev_init # <pgtrace_nonkext>
100 options CONFIG_MACF_LAZY_VNODE_LABELS # Turn on labels, don't preallocate
102 options CONFIG_HYPERVISOR_PUBLIC # unrestricted entitlement for hypervisor