diff --git a/lib/libc/darwin/SDKSettings.json b/lib/libc/darwin/SDKSettings.json index e833e646c3..49b37aec1f 100644 --- a/lib/libc/darwin/SDKSettings.json +++ b/lib/libc/darwin/SDKSettings.json @@ -1 +1 @@ -{"MinimalDisplayName":"15.2"} +{"MinimalDisplayName":"15.5"} diff --git a/lib/libc/darwin/libSystem.tbd b/lib/libc/darwin/libSystem.tbd index bfdc5b9453..850860f385 100644 --- a/lib/libc/darwin/libSystem.tbd +++ b/lib/libc/darwin/libSystem.tbd @@ -71,7 +71,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libcommonCrypto.dylib' -current-version: 65535.60.1 +current-version: 65535 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -399,7 +399,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libcorecrypto.dylib' -current-version: 1736.60.68 +current-version: 1736.120.5 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -715,11 +715,12 @@ exports: _ccspake_mac_hkdf_cmac_aes128_sha256, _ccspake_mac_hkdf_hmac_sha256, _ccspake_mac_hkdf_hmac_sha512, _ccspake_mac_verify_and_get_session_key, _ccspake_prover_init, _ccspake_prover_initialize, _ccspake_reduce_w, - _ccspake_sizeof_ctx, _ccspake_sizeof_point, _ccspake_sizeof_w, - _ccspake_verifier_init, _ccspake_verifier_initialize, _ccsrp_client_process_challenge, - _ccsrp_client_set_noUsernameInX, _ccsrp_client_start_authentication, - _ccsrp_client_verify_session, _ccsrp_ctx_init, _ccsrp_ctx_init_option, - _ccsrp_ctx_init_with_size_option, _ccsrp_exchange_size, _ccsrp_generate_salt_and_verification, + _ccspake_reduce_w_RFC9383, _ccspake_sizeof_ctx, _ccspake_sizeof_point, + _ccspake_sizeof_w, _ccspake_verifier_init, _ccspake_verifier_initialize, + _ccsrp_client_process_challenge, _ccsrp_client_set_noUsernameInX, + _ccsrp_client_start_authentication, _ccsrp_client_verify_session, + _ccsrp_ctx_init, _ccsrp_ctx_init_option, _ccsrp_ctx_init_with_size_option, + _ccsrp_exchange_size, _ccsrp_generate_salt_and_verification, _ccsrp_generate_verifier, _ccsrp_get_premaster_secret, _ccsrp_get_session_key, _ccsrp_get_session_key_length, _ccsrp_gp_rfc5054_1024, _ccsrp_gp_rfc5054_2048, _ccsrp_gp_rfc5054_3072, _ccsrp_gp_rfc5054_4096, _ccsrp_gp_rfc5054_8192, @@ -769,7 +770,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libdispatch.dylib' -current-version: 1504.60.7 +current-version: 1521.120.4 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -951,43 +952,42 @@ exports: __dyld_find_foreign_type_protocol_conformance_on_disk, __dyld_find_pointer_hash_table_entry, __dyld_find_protocol_conformance, __dyld_find_protocol_conformance_on_disk, __dyld_find_unwind_sections, __dyld_for_each_objc_class, __dyld_for_each_objc_protocol, - __dyld_for_objc_header_opt_ro, __dyld_for_objc_header_opt_rw, - __dyld_fork_child, __dyld_get_dlopen_image_header, __dyld_get_image_header, - __dyld_get_image_name, __dyld_get_image_slide, __dyld_get_image_uuid, - __dyld_get_image_vmaddr_slide, __dyld_get_objc_selector, __dyld_get_prog_image_header, - __dyld_get_shared_cache_range, __dyld_get_shared_cache_uuid, - __dyld_get_swift_prespecialized_data, __dyld_has_fix_for_radar, - __dyld_has_preoptimized_swift_protocol_conformances, __dyld_image_count, - __dyld_images_for_addresses, __dyld_initializer, __dyld_is_memory_immutable, - __dyld_is_objc_constant, __dyld_is_preoptimized_objc_image_loaded, + __dyld_for_each_prewarming_range, __dyld_for_objc_header_opt_ro, + __dyld_for_objc_header_opt_rw, __dyld_fork_child, __dyld_get_dlopen_image_header, + __dyld_get_image_header, __dyld_get_image_name, __dyld_get_image_slide, + __dyld_get_image_uuid, __dyld_get_image_vmaddr_slide, __dyld_get_objc_selector, + __dyld_get_prog_image_header, __dyld_get_shared_cache_range, + __dyld_get_shared_cache_uuid, __dyld_get_swift_prespecialized_data, + __dyld_has_fix_for_radar, __dyld_has_preoptimized_swift_protocol_conformances, + __dyld_image_count, __dyld_images_for_addresses, __dyld_initializer, + __dyld_is_memory_immutable, __dyld_is_objc_constant, __dyld_is_preoptimized_objc_image_loaded, __dyld_is_pseudodylib, __dyld_launch_mode, __dyld_lookup_section_info, - __dyld_missing_symbol_abort, __dyld_objc_class_count, __dyld_objc_notify_register, - __dyld_objc_register_callbacks, __dyld_objc_uses_large_shared_cache, - __dyld_process_info_create, __dyld_process_info_for_each_image, - __dyld_process_info_for_each_segment, __dyld_process_info_get_aot_cache, - __dyld_process_info_get_cache, __dyld_process_info_get_platform, - __dyld_process_info_get_state, __dyld_process_info_notify, - __dyld_process_info_notify_main, __dyld_process_info_notify_release, - __dyld_process_info_notify_retain, __dyld_process_info_release, - __dyld_process_info_retain, __dyld_pseudodylib_deregister, + __dyld_objc_class_count, __dyld_objc_notify_register, __dyld_objc_register_callbacks, + __dyld_objc_uses_large_shared_cache, __dyld_process_info_create, + __dyld_process_info_for_each_image, __dyld_process_info_for_each_segment, + __dyld_process_info_get_aot_cache, __dyld_process_info_get_cache, + __dyld_process_info_get_platform, __dyld_process_info_get_state, + __dyld_process_info_notify, __dyld_process_info_notify_main, + __dyld_process_info_notify_release, __dyld_process_info_notify_retain, + __dyld_process_info_release, __dyld_process_info_retain, __dyld_pseudodylib_deregister, __dyld_pseudodylib_deregister_callbacks, __dyld_pseudodylib_register, __dyld_pseudodylib_register_callbacks, __dyld_register_dlsym_notifier, __dyld_register_driverkit_main, __dyld_register_for_bulk_image_loads, __dyld_register_for_image_loads, __dyld_register_func_for_add_image, __dyld_register_func_for_remove_image, __dyld_shared_cache_contains_path, __dyld_shared_cache_is_locally_built, __dyld_shared_cache_optimized, - __dyld_shared_cache_real_path, __dyld_swift_optimizations_version, - __dyld_visit_objc_classes, __tlv_atexit, __tlv_bootstrap, - __tlv_exit, _dladdr, _dlclose, _dlerror, _dlopen, _dlopen_audited, - _dlopen_from, _dlopen_preflight, _dlsym, _dyldVersionNumber, - _dyldVersionString, _dyld_dynamic_interpose, _dyld_for_each_installed_shared_cache, - _dyld_for_each_installed_shared_cache_with_system_path, _dyld_get_active_platform, - _dyld_get_base_platform, _dyld_get_image_versions, _dyld_get_min_os_version, - _dyld_get_program_min_os_version, _dyld_get_program_minos_version_token, - _dyld_get_program_sdk_version, _dyld_get_program_sdk_version_token, - _dyld_get_sdk_version, _dyld_has_inserted_or_interposing_libraries, - _dyld_image_content_for_section, _dyld_image_content_for_segment, - _dyld_image_copy_uuid, _dyld_image_for_each_section_info, + __dyld_shared_cache_real_path, __dyld_stack_bottom, __dyld_stack_range, + __dyld_stack_top, __dyld_swift_optimizations_version, __dyld_visit_objc_classes, + __tlv_atexit, __tlv_bootstrap, __tlv_exit, _dladdr, _dlclose, + _dlerror, _dlopen, _dlopen_audited, _dlopen_from, _dlopen_preflight, + _dlsym, _dyldVersionNumber, _dyldVersionString, _dyld_dynamic_interpose, + _dyld_for_each_installed_shared_cache, _dyld_for_each_installed_shared_cache_with_system_path, + _dyld_get_active_platform, _dyld_get_base_platform, _dyld_get_image_versions, + _dyld_get_min_os_version, _dyld_get_program_min_os_version, + _dyld_get_program_minos_version_token, _dyld_get_program_sdk_version, + _dyld_get_program_sdk_version_token, _dyld_get_sdk_version, + _dyld_has_inserted_or_interposing_libraries, _dyld_image_content_for_section, + _dyld_image_content_for_segment, _dyld_image_copy_uuid, _dyld_image_for_each_section_info, _dyld_image_for_each_segment_info, _dyld_image_get_file_path, _dyld_image_get_installname, _dyld_image_header_containing_address, _dyld_image_local_nlist_content_4Symbolication, _dyld_image_path_containing_address, @@ -1011,7 +1011,8 @@ exports: _macho_cpu_type_for_arch_name, _macho_dylib_install_name, _macho_for_each_defined_rpath, _macho_for_each_dependent_dylib, _macho_for_each_exported_symbol, _macho_for_each_imported_symbol, - _macho_for_each_slice, _macho_for_each_slice_in_fd, dyld_stub_binder ] + _macho_for_each_slice, _macho_for_each_slice_in_fd, _macho_source_version, + dyld_stub_binder ] - targets: [ x86_64-macos, arm64-macos, arm64e-macos ] symbols: [ _NSAddImage, _NSAddLibrary, _NSAddLibraryWithSearching, _NSAddressOfSymbol, _NSCreateObjectFileImageFromFile, _NSCreateObjectFileImageFromMemory, @@ -1051,7 +1052,7 @@ exports: tbd-version: 4 targets: [ x86_64-macos, arm64-macos, arm64e-macos ] install-name: '/usr/lib/system/libmacho.dylib' -current-version: 1022.1 +current-version: 1024.3 parent-umbrella: - targets: [ x86_64-macos, arm64-macos, arm64e-macos ] umbrella: System @@ -1091,7 +1092,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libquarantine.dylib' -current-version: 181.60.2 +current-version: 181.120.2 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -1137,7 +1138,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libremovefile.dylib' -current-version: 75 +current-version: 81 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -1147,9 +1148,9 @@ exports: arm64e-macos, arm64e-maccatalyst ] symbols: [ ___removefile_init_random, ___removefile_random_char, ___removefile_randomize_buffer, ___removefile_rename_unlink, ___removefile_sunlink, ___removefile_tree_walker, - _removefile, _removefile_cancel, _removefile_state_alloc, - _removefile_state_free, _removefile_state_get, _removefile_state_set, - _removefileat ] + ___removefile_tree_walker_slim, _removefile, _removefile_cancel, + _removefile_state_alloc, _removefile_state_free, _removefile_state_get, + _removefile_state_set, _removefileat ] --- !tapi-tbd tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, @@ -1236,7 +1237,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_blocks.dylib' -current-version: 95 +current-version: 96 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -1255,7 +1256,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_c.dylib' -current-version: 1669.60.4 +current-version: 1698.100.8 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -1324,7 +1325,7 @@ exports: ___toupper_l, ___trailz_D2A, ___ulp_D2A, ___ungetc, ___ungetwc, ___vsnprintf_chk, ___vsprintf_chk, ___wcwidth, ___wcwidth_l, ___xlocale_C_collate, __allocenvstate, __atexit_receipt, __c_locale, - __cleanup, __closeutx, __copyenv, __cthread_init_routine, + __cleanup, __closeutx, __collate_lookup, __copyenv, __cthread_init_routine, __deallocenvstate, __endutxent, __flockfile_debug_stub, __fseeko, __ftello, __fwalk, __getenvp, __getutxent, __getutxid, __getutxline, __inet_aton_check, __init_clock_port, __int_to_time, __libc_fork_child, @@ -1476,51 +1477,52 @@ exports: _sradixsort, _srand, _srand48, _sranddev, _srandom, _srandomdev, _sscanf, _sscanf_l, _stat_with_subsystem, _statvfs, _statx_np, _stpcpy, _stpncpy, _stravis, _strcasecmp, _strcasecmp_l, _strcasestr, - _strcasestr_l, _strcat, _strcoll, _strcoll_l, _strcspn, _strdup, - _strenvisx, _strerror, _strerror_r, _strfmon, _strfmon_l, - _strftime, _strftime_l, _strmode, _strncasecmp, _strncasecmp_l, - _strncat, _strndup, _strnstr, _strnunvis, _strnunvisx, _strnvis, - _strnvisx, _strpbrk, _strptime, _strptime_l, _strrchr, _strsenvisx, - _strsep, _strsignal, _strsignal_r, _strsnvis, _strsnvisx, - _strspn, _strsvis, _strsvisx, _strtod, _strtod_l, _strtoencf16, - _strtoencf32, _strtoencf64, _strtoencf64x, _strtof, _strtof_l, - _strtofflags, _strtoimax, _strtoimax_l, _strtok, _strtok_r, - _strtol, _strtol_l, _strtold, _strtold_l, _strtoll, _strtoll_l, - _strtonum, _strtoq, _strtoq_l, _strtoul, _strtoul_l, _strtoull, - _strtoull_l, _strtoumax, _strtoumax_l, _strtouq, _strtouq_l, - _strunvis, _strunvisx, _strvis, _strvisx, _strxfrm, _strxfrm_l, - _suboptarg, _svis, _swab, _swprintf, _swprintf_l, _swscanf, - _swscanf_l, _sxprintf, _sxprintf_exec, _sync_volume_np, _sys_errlist, - _sys_nerr, _sys_siglist, _sys_signame, _sysconf, _sysctl, - _sysctlbyname, _sysctlnametomib, _system, '_system$NOCANCEL', - _tcdrain, '_tcdrain$NOCANCEL', _tcflow, _tcflush, _tcgetattr, - _tcgetpgrp, _tcgetsid, _tcsendbreak, _tcsetattr, _tcsetpgrp, - _tdelete, _telldir, _tempnam, _tfind, _thread_stack_async_pcs, - _thread_stack_pcs, _time, _time2posix, _timegm, _timelocal, - _timeoff, _times, _timespec_get, _timezone, _timingsafe_bcmp, - _tmpfile, _tmpnam, _toascii, _tolower, _tolower_l, _toupper, - _toupper_l, _towctrans, _towctrans_l, _towlower, _towlower_l, - _towupper, _towupper_l, _tre_ast_new_catenation, _tre_ast_new_iter, - _tre_ast_new_literal, _tre_ast_new_node, _tre_ast_new_union, - _tre_compile, _tre_fill_pmatch, _tre_free, _tre_mem_alloc_impl, - _tre_mem_destroy, _tre_mem_new_impl, _tre_parse, _tre_stack_destroy, - _tre_stack_new, _tre_stack_num_objects, _tre_tnfa_run_backtrack, - _tre_tnfa_run_parallel, _tsearch, _ttyname, _ttyname_r, _ttyslot, - _twalk, _tzname, _tzset, _tzsetwall, _ualarm, _ulimit, _umaskx_np, - _uname, _ungetc, _ungetwc, _ungetwc_l, _unlockpt, _unsetenv, - _unvis, _uselocale, _usleep, '_usleep$NOCANCEL', _utime, _utmpxname, - _uuid_clear, _uuid_compare, _uuid_copy, _uuid_generate, _uuid_generate_random, - _uuid_generate_time, _uuid_is_null, _uuid_pack, _uuid_parse, - _uuid_unpack, _uuid_unparse, _uuid_unparse_lower, _uuid_unparse_upper, - _vasprintf, _vasprintf_l, _vasxprintf, _vasxprintf_exec, _vdprintf, - _vdprintf_l, _vdxprintf, _vdxprintf_exec, _verr, _verrc, _verrx, - _vfork, _vfprintf, _vfprintf_l, _vfscanf, _vfscanf_l, _vfwprintf, - _vfwprintf_l, _vfwscanf, _vfwscanf_l, _vfxprintf, _vfxprintf_exec, - _vis, _vprintf, _vprintf_l, _vscanf, _vscanf_l, _vsnprintf, - _vsnprintf_l, _vsprintf, _vsprintf_l, _vsscanf, _vsscanf_l, - _vswprintf, _vswprintf_l, _vswscanf, _vswscanf_l, _vsxprintf, - _vsxprintf_exec, _vwarn, _vwarnc, _vwarnx, _vwprintf, _vwprintf_l, - _vwscanf, _vwscanf_l, _vxprintf, _vxprintf_exec, _wait, '_wait$NOCANCEL', + _strcasestr_l, _strcat, _strchrnul, _strcoll, _strcoll_l, + _strcspn, _strdup, _strenvisx, _strerror, _strerror_r, _strfmon, + _strfmon_l, _strftime, _strftime_l, _strmode, _strncasecmp, + _strncasecmp_l, _strncat, _strndup, _strnstr, _strnunvis, + _strnunvisx, _strnvis, _strnvisx, _strpbrk, _strptime, _strptime_l, + _strrchr, _strsenvisx, _strsep, _strsignal, _strsignal_r, + _strsnvis, _strsnvisx, _strspn, _strsvis, _strsvisx, _strtod, + _strtod_l, _strtoencf16, _strtoencf32, _strtoencf64, _strtoencf64x, + _strtof, _strtof_l, _strtofflags, _strtoimax, _strtoimax_l, + _strtok, _strtok_r, _strtol, _strtol_l, _strtold, _strtold_l, + _strtoll, _strtoll_l, _strtonum, _strtoq, _strtoq_l, _strtoul, + _strtoul_l, _strtoull, _strtoull_l, _strtoumax, _strtoumax_l, + _strtouq, _strtouq_l, _strunvis, _strunvisx, _strvis, _strvisx, + _strxfrm, _strxfrm_l, _suboptarg, _svis, _swab, _swprintf, + _swprintf_l, _swscanf, _swscanf_l, _sxprintf, _sxprintf_exec, + _sync_volume_np, _sys_errlist, _sys_nerr, _sys_siglist, _sys_signame, + _sysconf, _sysctl, _sysctlbyname, _sysctlnametomib, _system, + '_system$NOCANCEL', _tcdrain, '_tcdrain$NOCANCEL', _tcflow, + _tcflush, _tcgetattr, _tcgetpgrp, _tcgetsid, _tcsendbreak, + _tcsetattr, _tcsetpgrp, _tdelete, _telldir, _tempnam, _tfind, + _thread_stack_async_pcs, _thread_stack_pcs, _time, _time2posix, + _timegm, _timelocal, _timeoff, _times, _timespec_get, _timezone, + _timingsafe_bcmp, _tmpfile, _tmpnam, _toascii, _tolower, _tolower_l, + _toupper, _toupper_l, _towctrans, _towctrans_l, _towlower, + _towlower_l, _towupper, _towupper_l, _tre_ast_new_catenation, + _tre_ast_new_iter, _tre_ast_new_literal, _tre_ast_new_node, + _tre_ast_new_union, _tre_compile, _tre_fill_pmatch, _tre_free, + _tre_mem_alloc_impl, _tre_mem_destroy, _tre_mem_new_impl, + _tre_parse, _tre_stack_destroy, _tre_stack_new, _tre_stack_num_objects, + _tre_tnfa_run_backtrack, _tre_tnfa_run_parallel, _tsearch, + _ttyname, _ttyname_r, _ttyslot, _twalk, _tzname, _tzset, _tzsetwall, + _ualarm, _ulimit, _umaskx_np, _uname, _ungetc, _ungetwc, _ungetwc_l, + _unlockpt, _unsetenv, _unvis, _uselocale, _usleep, '_usleep$NOCANCEL', + _utime, _utmpxname, _uuid_clear, _uuid_compare, _uuid_copy, + _uuid_generate, _uuid_generate_random, _uuid_generate_time, + _uuid_is_null, _uuid_pack, _uuid_parse, _uuid_unpack, _uuid_unparse, + _uuid_unparse_lower, _uuid_unparse_upper, _vasprintf, _vasprintf_l, + _vasxprintf, _vasxprintf_exec, _vdprintf, _vdprintf_l, _vdxprintf, + _vdxprintf_exec, _verr, _verrc, _verrx, _vfork, _vfprintf, + _vfprintf_l, _vfscanf, _vfscanf_l, _vfwprintf, _vfwprintf_l, + _vfwscanf, _vfwscanf_l, _vfxprintf, _vfxprintf_exec, _vis, + _vprintf, _vprintf_l, _vscanf, _vscanf_l, _vsnprintf, _vsnprintf_l, + _vsprintf, _vsprintf_l, _vsscanf, _vsscanf_l, _vswprintf, + _vswprintf_l, _vswscanf, _vswscanf_l, _vsxprintf, _vsxprintf_exec, + _vwarn, _vwarnc, _vwarnx, _vwprintf, _vwprintf_l, _vwscanf, + _vwscanf_l, _vxprintf, _vxprintf_exec, _wait, '_wait$NOCANCEL', _wait3, _waitpid, '_waitpid$NOCANCEL', _warn, _warnc, _warnx, _wcpcpy, _wcpncpy, _wcrtomb, _wcrtomb_l, _wcscasecmp, _wcscasecmp_l, _wcscat, _wcschr, _wcscmp, _wcscoll, _wcscoll_l, _wcscpy, @@ -1550,7 +1552,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_collections.dylib' -current-version: 1669.60.4 +current-version: 1698.100.8 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -1580,7 +1582,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_configuration.dylib' -current-version: 1351 +current-version: 1351.120.3 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -1614,7 +1616,8 @@ parent-umbrella: exports: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] - symbols: [ _CMFSSEAM_DEFAULT, _CONTAINER_NOTIFY_USER_INVALIDATED, _CONTAINER_PERSONA_CURRENT, + symbols: [ _CMCONTAINERSEAM_DEFAULT, _CMFSSEAM_DEFAULT, _CMPWDSEAM_DEFAULT, + _CONTAINER_NOTIFY_USER_INVALIDATED, _CONTAINER_PERSONA_CURRENT, _CONTAINER_PERSONA_PRIMARY, __container_init, __container_query_get_servicing_pid, __container_references_get_servicing_pid, __container_traverse_continuation_create, __container_traverse_continuation_free, __container_traverse_continuation_pop, @@ -1691,6 +1694,7 @@ exports: _container_get_path, _container_get_persona_unique_string, _container_get_uid, _container_get_unique_path_component, _container_get_user_managed_assets_relative_path, _container_group_container_identifiers_for_current_user, + _container_info_delete, _container_info_modify, _container_info_put, _container_internal_get_first_boot_uuid, _container_invalidate_code_signing_cache, _container_is_equal, _container_is_new, _container_is_transient, _container_log_client_fault_logging_is_enabled, _container_log_error, @@ -1728,8 +1732,9 @@ exports: _container_persona_collect_all_ids, _container_persona_convert_unique_string_to_persona_uid, _container_persona_foreach, _container_process_restored_container, _container_pwd_copy_user_home_path, _container_pwd_for_name, - _container_pwd_for_uid, _container_query_copy, _container_query_count_results, - _container_query_create, _container_query_create_from_container, + _container_pwd_for_uid, _container_pwd_get_cached_current_user_home_path, + _container_pwd_get_mobile_user_uid, _container_query_copy, + _container_query_count_results, _container_query_create, _container_query_create_from_container, _container_query_free, _container_query_get_last_error, _container_query_get_single_result, _container_query_iterate_results_sync, _container_query_iterate_results_with_identifier_sync, _container_query_iterate_results_with_subquery_sync, _container_query_operation_set_client, @@ -1742,8 +1747,10 @@ exports: _container_regenerate_uuid, _container_repair_user_data, _container_replace, _container_retry_test, _container_sandbox_extension_consume, _container_sandbox_extension_revoke, _container_sandbox_issue_custom_extension, - _container_sandbox_issue_extension, _container_seam_fs_ensure_lazy_loaded, - _container_seam_fs_reset, _container_seam_fs_set_common, _container_serialize_copy_deserialized_reference, + _container_sandbox_issue_extension, _container_seam_container_reset, + _container_seam_container_set_common, _container_seam_fs_ensure_lazy_loaded, + _container_seam_fs_reset, _container_seam_fs_set_common, _container_seam_pwd_reset, + _container_seam_pwd_set_common, _container_serialize_copy_deserialized_reference, _container_serialize_copy_serialized_reference, _container_set_code_signing_info_for_identifier, _container_set_data_protection_for_current_user, _container_set_info_value, _container_set_test_lock, _container_stage_shared_system_content, @@ -1777,7 +1784,8 @@ exports: _container_xpc_send_sync_message_with_object, _container_xpc_set_client_context_during_block, _container_xpc_set_incoming_reply_preprocess_block, _container_xpc_set_outgoing_message_postprocess_block, _container_xpc_set_outgoing_message_send_block, _container_xpc_set_use_shared_connection, - _container_xpc_shared_copy_connection, _gCMFSSeam ] + _container_xpc_shared_copy_connection, _gCMContainerSeam, + _gCMFSSeam, _gCMPWDSeam ] - targets: [ x86_64-maccatalyst, arm64-maccatalyst, arm64e-maccatalyst ] symbols: [ _CONTAINER_CURRENT_MOBILE_UID, _CONTAINER_INSTALLATION_UID, _CONTAINER_SYSTEM_UID, _container_create_or_lookup, _container_create_or_lookup_app_group_paths, @@ -1871,7 +1879,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_dnssd.dylib' -current-version: 2559.60.39 +current-version: 2600.120.12 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -1908,17 +1916,17 @@ exports: tbd-version: 4 targets: [ x86_64-macos, arm64-macos, arm64e-macos ] install-name: '/usr/lib/system/libsystem_eligibility.dylib' -current-version: 160.60.1 +current-version: 181.120.32 parent-umbrella: - targets: [ x86_64-macos, arm64-macos, arm64e-macos ] umbrella: System exports: - targets: [ x86_64-macos, arm64-macos, arm64e-macos ] - symbols: [ _load_eligibility_plist, _os_eligibility_domain_for_name, - _os_eligibility_dump_sysdiagnose_data_to_dir, _os_eligibility_force_domain_answer, - _os_eligibility_force_domain_set_answers, _os_eligibility_get_all_domain_answers, - _os_eligibility_get_domain_answer, _os_eligibility_get_domain_notification_name, - _os_eligibility_get_internal_state, _os_eligibility_get_state_dump, + symbols: [ _os_eligibility_domain_for_name, _os_eligibility_dump_sysdiagnose_data_to_dir, + _os_eligibility_force_domain_answer, _os_eligibility_force_domain_set_answers, + _os_eligibility_get_all_domain_answers, _os_eligibility_get_domain_answer, + _os_eligibility_get_domain_notification_name, _os_eligibility_get_internal_state, + _os_eligibility_get_state_dump, _os_eligibility_precise_locations, _os_eligibility_reset_all_domains, _os_eligibility_reset_domain, _os_eligibility_set_input, _os_eligibility_set_test_mode ] --- !tapi-tbd @@ -1926,7 +1934,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_featureflags.dylib' -current-version: 94 +current-version: 97 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -2064,7 +2072,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_kernel.dylib' -current-version: 11215.61.3 +current-version: 11417.121.6 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -2114,20 +2122,21 @@ exports: ___open_extended, ___open_nocancel, ___openat, ___openat_dprotected_np, ___openat_nocancel, ___os_nexus_flow_add, ___os_nexus_flow_del, ___os_nexus_get_llink_info, ___os_nexus_ifattach, ___os_nexus_ifdetach, - ___persona, ___pipe, ___poll_nocancel, ___posix_spawn, ___pread_nocancel, - ___preadv_nocancel, ___proc_info, ___proc_info_extended_id, - ___process_policy, ___pselect, ___pselect_nocancel, ___psynch_cvbroad, - ___psynch_cvclrprepost, ___psynch_cvsignal, ___psynch_cvwait, - ___psynch_mutexdrop, ___psynch_mutexwait, ___psynch_rw_downgrade, - ___psynch_rw_longrdlock, ___psynch_rw_rdlock, ___psynch_rw_unlock, - ___psynch_rw_unlock2, ___psynch_rw_upgrade, ___psynch_rw_wrlock, - ___psynch_rw_yieldwrlock, ___pthread_canceled, ___pthread_chdir, - ___pthread_fchdir, ___pthread_kill, ___pthread_markcancel, - ___pthread_sigmask, ___ptrace, ___pwrite_nocancel, ___pwritev_nocancel, - ___read_nocancel, ___readv_nocancel, ___reboot, ___record_system_event, - ___recvfrom, ___recvfrom_nocancel, ___recvmsg, ___recvmsg_nocancel, - ___rename, ___renameat, ___renameatx_np, ___rmdir, ___sandbox_me, - ___sandbox_mm, ___sandbox_ms, ___sandbox_msp, ___select, ___select_nocancel, + ___oslog_coproc, ___oslog_coproc_reg, ___persona, ___pipe, + ___poll_nocancel, ___posix_spawn, ___pread_nocancel, ___preadv_nocancel, + ___proc_info, ___proc_info_extended_id, ___process_policy, + ___pselect, ___pselect_nocancel, ___psynch_cvbroad, ___psynch_cvclrprepost, + ___psynch_cvsignal, ___psynch_cvwait, ___psynch_mutexdrop, + ___psynch_mutexwait, ___psynch_rw_downgrade, ___psynch_rw_longrdlock, + ___psynch_rw_rdlock, ___psynch_rw_unlock, ___psynch_rw_unlock2, + ___psynch_rw_upgrade, ___psynch_rw_wrlock, ___psynch_rw_yieldwrlock, + ___pthread_canceled, ___pthread_chdir, ___pthread_fchdir, + ___pthread_kill, ___pthread_markcancel, ___pthread_sigmask, + ___ptrace, ___pwrite_nocancel, ___pwritev_nocancel, ___read_nocancel, + ___readv_nocancel, ___reboot, ___record_system_event, ___recvfrom, + ___recvfrom_nocancel, ___recvmsg, ___recvmsg_nocancel, ___rename, + ___renameat, ___renameatx_np, ___rmdir, ___sandbox_me, ___sandbox_mm, + ___sandbox_ms, ___sandbox_msp, ___select, ___select_nocancel, ___sem_open, ___sem_wait_nocancel, ___semctl, ___semsys, ___semwait_signal, ___semwait_signal_nocancel, ___sendmsg, ___sendmsg_nocancel, ___sendto, ___sendto_nocancel, ___setattrlist, ___setlogin, @@ -2182,23 +2191,23 @@ exports: __kernelrpc_mach_vm_protect_trap, __kernelrpc_mach_vm_purgable_control, __kernelrpc_mach_vm_purgable_control_trap, __kernelrpc_mach_vm_read, __kernelrpc_mach_vm_remap, __kernelrpc_mach_vm_remap_new, - __kernelrpc_mach_voucher_extract_attr_recipe, __kernelrpc_task_set_port_space, - __kernelrpc_thread_policy, __kernelrpc_thread_policy_set, - __kernelrpc_thread_set_policy, __kernelrpc_vm_map, __kernelrpc_vm_purgable_control, - __kernelrpc_vm_read, __kernelrpc_vm_remap, __kernelrpc_vm_remap_new, - __mach_errors, __mach_fork_child, __mach_snprintf, __mach_vsnprintf, - __os_alloc_once_table, __os_xbs_chrooted, __register_gethostuuid_callback, - __thread_set_tsd_base, _abort_with_payload, _abort_with_reason, - _accept, '_accept$NOCANCEL', _access, _accessx_np, _acct, - _act_get_state, _act_set_state, _adjtime, _aio_cancel, _aio_error, - _aio_fsync, _aio_read, _aio_return, _aio_suspend, '_aio_suspend$NOCANCEL', - _aio_write, _audit, _audit_session_join, _audit_session_port, - _audit_session_self, _auditctl, _auditon, _bind, _bootstrap_port, - _cerror, _cerror_nocancel, _change_fdguard_np, _chdir, _chflags, - _chmod, _chown, _chroot, _clock_alarm, _clock_alarm_reply, - _clock_get_attributes, _clock_get_time, _clock_set_attributes, - _clock_set_time, _clock_sleep, _clock_sleep_trap, _clonefile, - _clonefileat, _close, '_close$NOCANCEL', _coalition_create, + __kernelrpc_mach_vm_update_pointers_with_remote_tags, __kernelrpc_mach_voucher_extract_attr_recipe, + __kernelrpc_task_set_port_space, __kernelrpc_thread_policy, + __kernelrpc_thread_policy_set, __kernelrpc_thread_set_policy, + __kernelrpc_vm_map, __kernelrpc_vm_purgable_control, __kernelrpc_vm_read, + __kernelrpc_vm_remap, __kernelrpc_vm_remap_new, __mach_errors, + __mach_fork_child, __mach_snprintf, __mach_vsnprintf, __os_alloc_once_table, + __os_xbs_chrooted, __register_gethostuuid_callback, __thread_set_tsd_base, + _abort_with_payload, _abort_with_reason, _accept, '_accept$NOCANCEL', + _access, _accessx_np, _acct, _act_get_state, _act_set_state, + _adjtime, _aio_cancel, _aio_error, _aio_fsync, _aio_read, + _aio_return, _aio_suspend, '_aio_suspend$NOCANCEL', _aio_write, + _audit, _audit_session_join, _audit_session_port, _audit_session_self, + _auditctl, _auditon, _bind, _bootstrap_port, _cerror, _cerror_nocancel, + _change_fdguard_np, _chdir, _chflags, _chmod, _chown, _chroot, + _clock_alarm, _clock_alarm_reply, _clock_get_attributes, _clock_get_time, + _clock_set_attributes, _clock_set_time, _clock_sleep, _clock_sleep_trap, + _clonefile, _clonefileat, _close, '_close$NOCANCEL', _coalition_create, _coalition_info_debug_info, _coalition_info_resource_usage, _coalition_info_set_efficiency, _coalition_info_set_name, _coalition_ledger_set_logical_writes_limit, _coalition_policy_get, @@ -2211,20 +2220,21 @@ exports: _exception_raise_state_identity, _exchangedata, _exclaves_audio_buffer_copyout, _exclaves_audio_buffer_copyout_with_status, _exclaves_audio_buffer_create, _exclaves_boot, _exclaves_endpoint_call, _exclaves_inbound_buffer_copyin, - _exclaves_inbound_buffer_create, _exclaves_launch_conclave, - _exclaves_lookup_service, _exclaves_named_buffer_copyin, _exclaves_named_buffer_copyout, - _exclaves_named_buffer_create, _exclaves_notification_create, - _exclaves_outbound_buffer_copyout, _exclaves_outbound_buffer_create, - _exclaves_sensor_create, _exclaves_sensor_start, _exclaves_sensor_status, - _exclaves_sensor_stop, _execve, _faccessat, _fchdir, _fchflags, - _fchmod, _fchmodat, _fchown, _fchownat, _fclonefileat, _fcntl, - '_fcntl$NOCANCEL', _fdatasync, _ffsctl, _fgetattrlist, _fgetxattr, - _fhopen, _fileport_makefd, _fileport_makeport, _flistxattr, - _flock, _fmount, _fpathconf, _freadlink, _fremovexattr, _fs_snapshot_create, - _fs_snapshot_delete, _fs_snapshot_list, _fs_snapshot_mount, - _fs_snapshot_rename, _fs_snapshot_revert, _fs_snapshot_root, - _fsctl, _fsetattrlist, _fsetxattr, _fsgetpath, _fsgetpath_ext, - _fstat, _fstat64, _fstatat, _fstatat64, _fstatfs, _fstatfs64, + _exclaves_inbound_buffer_create, _exclaves_indicator_min_on_time, + _exclaves_launch_conclave, _exclaves_lookup_service, _exclaves_named_buffer_copyin, + _exclaves_named_buffer_copyout, _exclaves_named_buffer_create, + _exclaves_notification_create, _exclaves_outbound_buffer_copyout, + _exclaves_outbound_buffer_create, _exclaves_sensor_create, + _exclaves_sensor_start, _exclaves_sensor_status, _exclaves_sensor_stop, + _execve, _faccessat, _fchdir, _fchflags, _fchmod, _fchmodat, + _fchown, _fchownat, _fclonefileat, _fcntl, '_fcntl$NOCANCEL', + _fdatasync, _ffsctl, _fgetattrlist, _fgetxattr, _fhopen, _fileport_makefd, + _fileport_makeport, _flistxattr, _flock, _fmount, _fpathconf, + _freadlink, _fremovexattr, _fs_snapshot_create, _fs_snapshot_delete, + _fs_snapshot_list, _fs_snapshot_mount, _fs_snapshot_rename, + _fs_snapshot_revert, _fs_snapshot_root, _fsctl, _fsetattrlist, + _fsetxattr, _fsgetpath, _fsgetpath_ext, _fstat, _fstat64, + _fstatat, _fstatat64, _fstatfs, _fstatfs64, _fstatfs_ext, _fsync, '_fsync$NOCANCEL', _ftruncate, _futimens, _futimes, _getattrlist, _getattrlistat, _getattrlistbulk, _getaudit, _getaudit_addr, _getauid, _getdirentries, _getdirentriesattr, @@ -2302,18 +2312,20 @@ exports: _mach_thread_self, _mach_thread_special_port_description, _mach_thread_special_port_for_id, _mach_timebase_info, _mach_timebase_info_trap, _mach_vm_allocate, _mach_vm_behavior_set, _mach_vm_copy, _mach_vm_deallocate, - _mach_vm_deferred_reclamation_buffer_init, _mach_vm_deferred_reclamation_buffer_synchronize, - _mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes, + _mach_vm_deferred_reclamation_buffer_allocate, _mach_vm_deferred_reclamation_buffer_flush, + _mach_vm_deferred_reclamation_buffer_resize, _mach_vm_deferred_reclamation_buffer_update_reclaimable_bytes, _mach_vm_inherit, _mach_vm_machine_attribute, _mach_vm_map, _mach_vm_msync, _mach_vm_page_info, _mach_vm_page_query, _mach_vm_page_range_query, _mach_vm_protect, _mach_vm_purgable_control, _mach_vm_range_create, _mach_vm_read, _mach_vm_read_list, _mach_vm_read_overwrite, - _mach_vm_reclaim_is_available, _mach_vm_reclaim_is_reclaimed, - _mach_vm_reclaim_mark_free, _mach_vm_reclaim_mark_free_with_id, - _mach_vm_reclaim_mark_used, _mach_vm_reclaim_ringbuffer_init, - _mach_vm_reclaim_synchronize, _mach_vm_reclaim_update_kernel_accounting, + _mach_vm_reclaim_is_reusable, _mach_vm_reclaim_query_state, + _mach_vm_reclaim_ring_allocate, _mach_vm_reclaim_ring_capacity, + _mach_vm_reclaim_ring_flush, _mach_vm_reclaim_ring_resize, + _mach_vm_reclaim_round_capacity, _mach_vm_reclaim_try_cancel, + _mach_vm_reclaim_try_enter, _mach_vm_reclaim_update_kernel_accounting, _mach_vm_region, _mach_vm_region_recurse, _mach_vm_remap, - _mach_vm_remap_new, _mach_vm_wire, _mach_vm_write, _mach_voucher_attr_command, + _mach_vm_remap_new, _mach_vm_update_pointers_with_remote_tags, + _mach_vm_wire, _mach_vm_write, _mach_voucher_attr_command, _mach_voucher_deallocate, _mach_voucher_debug_info, _mach_voucher_extract_all_attr_recipes, _mach_voucher_extract_attr_content, _mach_voucher_extract_attr_recipe, _mach_voucher_extract_attr_recipe_trap, _mach_wait_until, @@ -2360,6 +2372,7 @@ exports: _os_channel_sync, _os_channel_tx_ring, _os_channel_write_attr, _os_copy_and_inet_checksum, _os_cpu_copy_in_cksum, _os_cpu_in_cksum, _os_cpu_in_cksum_mbuf, _os_fault_with_payload, _os_inet_checksum, + _os_log_coprocessor_as_kernel, _os_log_coprocessor_register_as_kernel, _os_nexus_attr_clone, _os_nexus_attr_create, _os_nexus_attr_destroy, _os_nexus_attr_get, _os_nexus_attr_set, _os_nexus_controller_add_traffic_rule, _os_nexus_controller_alloc_provider_instance, _os_nexus_controller_bind_provider_instance, @@ -2498,8 +2511,8 @@ exports: _stackshot_config_set_delta_timestamp, _stackshot_config_set_flags, _stackshot_config_set_pagetable_mask, _stackshot_config_set_pid, _stackshot_config_set_size_hint, _stat, _stat64, _statfs, - _statfs64, _swapon, _swtch, _swtch_pri, _symlink, _symlinkat, - _sync, _syscall, _syscall_thread_switch, _system_get_sfi_window, + _statfs64, _statfs_ext, _swapon, _swtch, _swtch_pri, _symlink, + _symlinkat, _sync, _syscall, _syscall_thread_switch, _system_get_sfi_window, _system_override, _system_set_sfi_window, _system_version_compat_mode, _task_assign, _task_assign_default, _task_create, _task_create_identity_token, _task_dyld_process_info_notify_deregister, _task_dyld_process_info_notify_get, @@ -2569,7 +2582,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_m.dylib' -current-version: 3289 +current-version: 3291.100.4 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, x86_64h-macos, x86_64h-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -2791,7 +2804,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_malloc.dylib' -current-version: 657.60.21 +current-version: 715.120.13 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -2803,11 +2816,11 @@ exports: ___malloc_late_init, __malloc_fork_child, __malloc_fork_parent, __malloc_fork_prepare, __malloc_no_asl_log, __os_cpu_number_override, _aligned_alloc, _calloc, _free, _mag_set_thread_index, _malloc, - _malloc_check_counter, _malloc_check_each, _malloc_check_start, - _malloc_claimed_address, _malloc_create_legacy_default_zone, - _malloc_create_zone, _malloc_debug, _malloc_default_purgeable_zone, - _malloc_default_zone, _malloc_destroy_zone, _malloc_engaged_nano, - _malloc_engaged_secure_allocator, _malloc_enter_process_memory_limit_warn_mode, + _malloc_allows_internal_security_4test, _malloc_check_counter, + _malloc_check_each, _malloc_check_start, _malloc_claimed_address, + _malloc_create_legacy_default_zone, _malloc_create_zone, _malloc_debug, + _malloc_default_purgeable_zone, _malloc_default_zone, _malloc_destroy_zone, + _malloc_engaged_nano, _malloc_engaged_secure_allocator, _malloc_enter_process_memory_limit_warn_mode, _malloc_error, _malloc_freezedry, _malloc_get_all_zones, _malloc_get_thread_options, _malloc_get_wrapped_zone, _malloc_get_zone_name, _malloc_good_size, _malloc_jumpstart, _malloc_logger, _malloc_make_nonpurgeable, @@ -2865,7 +2878,7 @@ exports: _NEHelperCopyXPCEndpointForIdentityProxyExtended, _NEHelperGetAppTrackerDomains, _NEHelperGetIKESocket, _NEHelperGetIKESocketWithResult, _NEHelperGetKernelControlSocket, _NEHelperGetKernelControlSocketExtended, _NEHelperGetNECPSessionFD, - _NEHelperGetPFKeySocket, _NEHelperHandleConfigurationsChangedBySC, + _NEHelperGetPFKeySocket, _NEHelperGetPid, _NEHelperHandleConfigurationsChangedBySC, _NEHelperInit, _NEHelperInterfaceCreate, _NEHelperInterfaceDestroy, _NEHelperInterfaceRemoveAddress, _NEHelperInterfaceSetAddress, _NEHelperInterfaceSetAddressWithLifetime, _NEHelperInterfaceSetDelegate, @@ -2936,7 +2949,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_notify.dylib' -current-version: 327.60.1 +current-version: 342 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -2956,7 +2969,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_platform.dylib' -current-version: 340.60.2 +current-version: 349 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -3011,6 +3024,7 @@ exports: __simple_vdprintf, __simple_vesprintf, __simple_vsprintf, __spin_lock, __spin_lock_try, __spin_unlock, _ffs, _ffsl, _ffsll, _fls, _flsl, _flsll, _getcontext, _longjmp, _makecontext, + _os_apt_msg_async_task_running_4swift, _os_apt_msg_async_task_waiting_on_4swift, _os_lock_lock, _os_lock_trylock, _os_lock_unlock, _os_log_simple_now, _os_log_simple_type_from_asl, _os_sync_wait_on_address, _os_sync_wait_on_address_with_deadline, _os_sync_wait_on_address_with_timeout, _os_sync_wake_by_address_all, @@ -3033,7 +3047,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_pthread.dylib' -current-version: 535 +current-version: 536 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -3129,7 +3143,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_sandbox.dylib' -current-version: 2401.61.2 +current-version: 2401.121.3 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -3142,10 +3156,9 @@ exports: _SANDBOX_CHECK_ALLOW_APPROVAL, _SANDBOX_CHECK_CANONICAL, _SANDBOX_CHECK_NOFOLLOW, _SANDBOX_CHECK_NO_APPROVAL, _SANDBOX_CHECK_NO_REPORT, _SANDBOX_CHECK_POSIX_READABLE, _SANDBOX_CHECK_POSIX_WRITEABLE, _SANDBOX_EXTENSION_CANONICAL, - _SANDBOX_EXTENSION_DEFAULT, _SANDBOX_EXTENSION_MAGIC, _SANDBOX_EXTENSION_NOFOLLOW, - _SANDBOX_EXTENSION_NOFOLLOW_ANY, _SANDBOX_EXTENSION_NO_REPORT, - _SANDBOX_EXTENSION_NO_STORAGE_CLASS, _SANDBOX_EXTENSION_PREFIXMATCH, - _SANDBOX_EXTENSION_UNRESOLVED, __amkrtemp, __sandbox_enter_notify_libxpc, + _SANDBOX_EXTENSION_DEFAULT, _SANDBOX_EXTENSION_NOFOLLOW, _SANDBOX_EXTENSION_NOFOLLOW_ANY, + _SANDBOX_EXTENSION_NO_REPORT, _SANDBOX_EXTENSION_NO_STORAGE_CLASS, + _SANDBOX_EXTENSION_PREFIXMATCH, __amkrtemp, __sandbox_enter_notify_libxpc, __sandbox_in_a_container, __sandbox_register_app_bundle_0, __sandbox_register_app_bundle_1, _kSBXProfileNoInternet, _kSBXProfileNoNetwork, _kSBXProfileNoWrite, _kSBXProfileNoWriteExceptTemporary, _kSBXProfilePureComputation, @@ -3176,15 +3189,13 @@ exports: _sandbox_extension_issue_generic_to_process, _sandbox_extension_issue_generic_to_process_by_pid, _sandbox_extension_issue_iokit_registry_entry_class, _sandbox_extension_issue_iokit_registry_entry_class_to_process, _sandbox_extension_issue_iokit_registry_entry_class_to_process_by_pid, - _sandbox_extension_issue_iokit_user_client_class, _sandbox_extension_issue_mach, - _sandbox_extension_issue_mach_to_process, _sandbox_extension_issue_mach_to_process_by_pid, - _sandbox_extension_issue_posix_ipc, _sandbox_extension_issue_related_file_to_process, + _sandbox_extension_issue_mach, _sandbox_extension_issue_mach_to_process, + _sandbox_extension_issue_mach_to_process_by_pid, _sandbox_extension_issue_related_file_to_process, _sandbox_extension_reap, _sandbox_extension_release, _sandbox_extension_release_and_detect_last_reference, _sandbox_extension_release_file, _sandbox_extension_update_file, _sandbox_extension_update_file_by_fileid, _sandbox_free_error, _sandbox_get_container_expected, _sandbox_init, _sandbox_init_from_pid, - _sandbox_init_with_extensions, _sandbox_init_with_parameters, - _sandbox_issue_extension, _sandbox_issue_fs_extension, _sandbox_issue_fs_rw_extension, + _sandbox_init_with_parameters, _sandbox_issue_fs_extension, _sandbox_issue_mach_extension, _sandbox_message_filter_query, _sandbox_message_filter_release, _sandbox_message_filter_retain, _sandbox_note, _sandbox_passthrough_access, _sandbox_proc_getcontainer, @@ -3239,13 +3250,14 @@ exports: ___asan_get_report_pc, ___asan_get_report_sp, ___asan_get_shadow_mapping, ___asan_locate_address, ___asan_report_present, __sanitizers_init, _sanitizers_address_on_report, _sanitizers_diagnose_memory_error, - _sanitizers_report_globals ] + _sanitizers_report_globals, _sanitizers_testonly_diagnose_error, + _sanitizers_testonly_get_shadow_address ] --- !tapi-tbd tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_secinit.dylib' -current-version: 153.60.1 +current-version: 153.100.10 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -3278,7 +3290,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libsystem_trace.dylib' -current-version: 1612.60.27 +current-version: 1643.120.5 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -3315,10 +3327,10 @@ exports: __os_trace_set_mode_for_pid, __os_trace_strdup, __os_trace_sysprefsdir_path, __os_trace_update_with_datavolume_4launchd, __os_trace_with_buffer, __os_trace_write, __os_trace_writev, __os_trace_zalloc, _amfi_check_dyld_policy_for_pid, - _amfi_check_dyld_policy_self, _amfi_load_trust_cache, _os_activity_apply, - _os_activity_apply_f, _os_activity_diagnostic_for_pid, _os_activity_end, - _os_activity_for_task_thread, _os_activity_for_thread, _os_activity_get_active, - _os_activity_get_identifier, _os_activity_iterate_activities, + _amfi_check_dyld_policy_self, _amfi_load_trust_cache, _amfi_unload_trust_cache, + _os_activity_apply, _os_activity_apply_f, _os_activity_diagnostic_for_pid, + _os_activity_end, _os_activity_for_task_thread, _os_activity_for_thread, + _os_activity_get_active, _os_activity_get_identifier, _os_activity_iterate_activities, _os_activity_iterate_breadcrumbs, _os_activity_iterate_messages, _os_activity_iterate_processes, _os_activity_messages_for_thread, _os_activity_scope_enter, _os_activity_scope_leave, _os_log_backtrace_copy_description, @@ -3348,7 +3360,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libunwind.dylib' -current-version: 1800.85 +current-version: 1900.125 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -3369,8 +3381,8 @@ exports: ___unw_remove_find_dynamic_unwind_sections, _unw_get_fpreg, _unw_get_proc_info, _unw_get_proc_name, _unw_get_reg, _unw_getcontext, _unw_init_local, _unw_is_fpreg, _unw_is_signal_frame, _unw_iterate_dwarf_unwind_cache, - _unw_local_addr_space, _unw_regname, _unw_resume, _unw_set_fpreg, - _unw_set_reg, _unw_step ] + _unw_local_addr_space, _unw_regname, _unw_resume, _unw_resume_with_frames_walked, + _unw_set_fpreg, _unw_set_reg, _unw_step ] - targets: [ arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] symbols: [ ___unw_is_pointer_auth_enabled ] --- !tapi-tbd @@ -3378,7 +3390,7 @@ tbd-version: 4 targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] install-name: '/usr/lib/system/libxpc.dylib' -current-version: 2866.60.21 +current-version: 2894.121.3 parent-umbrella: - targets: [ x86_64-macos, x86_64-maccatalyst, arm64-macos, arm64-maccatalyst, arm64e-macos, arm64e-maccatalyst ] @@ -3426,13 +3438,14 @@ exports: __availability_version_check, __launch_job_query_routine, __launch_job_routine, __launch_job_routine_async, __launch_msg2, __launch_server_test_routine, __launch_service_stats_copy_4ppse_impl, - __launch_service_stats_copy_impl, __libxpc_initializer, __spawn_via_launchd, - __system_ios_support_version_copy_string_sysctl, __system_version_copy_string_plist, - __system_version_copy_string_sysctl, __system_version_fallback, - __system_version_parse_string, __system_version_plist_path, - __vproc_get_last_exit_status, __vproc_grab_subset, __vproc_kickstart_by_label, - __vproc_log, __vproc_log_error, __vproc_logv, __vproc_pid_is_managed, - __vproc_post_fork_ping, __vproc_send_signal_by_label, __vproc_set_global_on_demand, + __launch_service_stats_copy_impl, __launch_trial_factors_routine, + __libxpc_initializer, __spawn_via_launchd, __system_ios_support_version_copy_string_sysctl, + __system_version_copy_string_plist, __system_version_copy_string_sysctl, + __system_version_fallback, __system_version_parse_string, + __system_version_plist_path, __vproc_get_last_exit_status, + __vproc_grab_subset, __vproc_kickstart_by_label, __vproc_log, + __vproc_log_error, __vproc_logv, __vproc_pid_is_managed, __vproc_post_fork_ping, + __vproc_send_signal_by_label, __vproc_set_global_on_demand, __vproc_standby_begin, __vproc_standby_count, __vproc_standby_end, __vproc_standby_timeout, __vproc_transaction_begin, __vproc_transaction_count, __vproc_transaction_count_for_pid, __vproc_transaction_end, @@ -3521,7 +3534,8 @@ exports: _launch_service_stats_enable, _launch_service_stats_enable_4ppse, _launch_service_stats_is_enabled, _launch_service_stats_is_enabled_4ppse, _launch_set_service_enabled, _launch_set_system_service_enabled, - _launch_socket_service_check_in, _launch_userspace_reboot_with_purpose, + _launch_socket_service_check_in, _launch_trial_factors_active_reload, + _launch_urgent_log_submission_completed, _launch_userspace_reboot_with_purpose, _launch_version_for_user_service_4coresim, _launch_wait, _launchd_close, _launchd_fdopen, _launchd_getfd, _launchd_msg_recv, _launchd_msg_send, _load_launchd_jobs_at_loginwindow_prompt, _mpm_uncork_fork, @@ -3541,41 +3555,41 @@ exports: _xpc_activity_set_completion_status, _xpc_activity_set_criteria, _xpc_activity_set_network_threshold, _xpc_activity_set_state, _xpc_activity_should_be_data_budgeted, _xpc_activity_should_defer, - _xpc_activity_unregister, _xpc_add_bundle, _xpc_add_bundles_for_domain, - _xpc_array_append_value, _xpc_array_apply, _xpc_array_apply_f, - _xpc_array_copy_mach_send, _xpc_array_create, _xpc_array_create_connection, - _xpc_array_create_empty, _xpc_array_dup_fd, _xpc_array_get_array, - _xpc_array_get_bool, _xpc_array_get_count, _xpc_array_get_data, - _xpc_array_get_date, _xpc_array_get_dictionary, _xpc_array_get_double, - _xpc_array_get_int64, _xpc_array_get_pointer, _xpc_array_get_string, - _xpc_array_get_uint64, _xpc_array_get_uuid, _xpc_array_get_value, - _xpc_array_set_bool, _xpc_array_set_connection, _xpc_array_set_data, - _xpc_array_set_date, _xpc_array_set_double, _xpc_array_set_fd, - _xpc_array_set_int64, _xpc_array_set_mach_send, _xpc_array_set_pointer, - _xpc_array_set_string, _xpc_array_set_uint64, _xpc_array_set_uuid, - _xpc_array_set_value, _xpc_atfork_child, _xpc_atfork_parent, - _xpc_atfork_prepare, _xpc_binprefs_add, _xpc_binprefs_alloc, - _xpc_binprefs_copy, _xpc_binprefs_copy_description, _xpc_binprefs_count, - _xpc_binprefs_cpu_subtype, _xpc_binprefs_cpu_type, _xpc_binprefs_equal, - _xpc_binprefs_init, _xpc_binprefs_is_noop, _xpc_binprefs_set_psattr, - _xpc_bool_create, _xpc_bool_get_value, _xpc_bs_main, _xpc_bundle_copy_info_dictionary, - _xpc_bundle_copy_normalized_cryptex_path, _xpc_bundle_copy_resource_path, - _xpc_bundle_copy_services, _xpc_bundle_create, _xpc_bundle_create_from_origin, - _xpc_bundle_create_main, _xpc_bundle_get_error, _xpc_bundle_get_executable_path, - _xpc_bundle_get_info_dictionary, _xpc_bundle_get_path, _xpc_bundle_get_property, - _xpc_bundle_get_xpcservice_dictionary, _xpc_bundle_populate, - _xpc_bundle_resolve, _xpc_bundle_resolve_on_queue, _xpc_bundle_resolve_sync, - _xpc_coalition_copy_info, _xpc_coalition_history_pipe_async, - _xpc_connection_activate, _xpc_connection_cancel, _xpc_connection_copy_bundle_id, - _xpc_connection_copy_entitlement_value, _xpc_connection_copy_invalidation_reason, - _xpc_connection_create, _xpc_connection_create_bs_service_listener, - _xpc_connection_create_from_endpoint, _xpc_connection_create_listener, - _xpc_connection_create_mach_service, _xpc_connection_enable_sim2host_4sim, - _xpc_connection_enable_termination_imminent_event, _xpc_connection_get_asid, - _xpc_connection_get_audit_token, _xpc_connection_get_bs_type, - _xpc_connection_get_context, _xpc_connection_get_egid, _xpc_connection_get_euid, - _xpc_connection_get_filter_policy_id_4test, _xpc_connection_get_instance, - _xpc_connection_get_name, _xpc_connection_get_peer_instance, + _xpc_activity_unregister, _xpc_add_bundle, _xpc_add_bundle_with_lwcr, + _xpc_add_bundles_for_domain, _xpc_array_append_value, _xpc_array_apply, + _xpc_array_apply_f, _xpc_array_copy_mach_send, _xpc_array_create, + _xpc_array_create_connection, _xpc_array_create_empty, _xpc_array_dup_fd, + _xpc_array_get_array, _xpc_array_get_bool, _xpc_array_get_count, + _xpc_array_get_data, _xpc_array_get_date, _xpc_array_get_dictionary, + _xpc_array_get_double, _xpc_array_get_int64, _xpc_array_get_pointer, + _xpc_array_get_string, _xpc_array_get_uint64, _xpc_array_get_uuid, + _xpc_array_get_value, _xpc_array_set_bool, _xpc_array_set_connection, + _xpc_array_set_data, _xpc_array_set_date, _xpc_array_set_double, + _xpc_array_set_fd, _xpc_array_set_int64, _xpc_array_set_mach_send, + _xpc_array_set_pointer, _xpc_array_set_string, _xpc_array_set_uint64, + _xpc_array_set_uuid, _xpc_array_set_value, _xpc_atfork_child, + _xpc_atfork_parent, _xpc_atfork_prepare, _xpc_binprefs_add, + _xpc_binprefs_alloc, _xpc_binprefs_copy, _xpc_binprefs_copy_description, + _xpc_binprefs_count, _xpc_binprefs_cpu_subtype, _xpc_binprefs_cpu_type, + _xpc_binprefs_equal, _xpc_binprefs_init, _xpc_binprefs_is_noop, + _xpc_binprefs_set_psattr, _xpc_bool_create, _xpc_bool_get_value, + _xpc_bs_main, _xpc_bundle_copy_info_dictionary, _xpc_bundle_copy_normalized_cryptex_path, + _xpc_bundle_copy_resource_path, _xpc_bundle_copy_services, + _xpc_bundle_create, _xpc_bundle_create_from_origin, _xpc_bundle_create_main, + _xpc_bundle_get_error, _xpc_bundle_get_executable_path, _xpc_bundle_get_info_dictionary, + _xpc_bundle_get_path, _xpc_bundle_get_property, _xpc_bundle_get_xpcservice_dictionary, + _xpc_bundle_populate, _xpc_bundle_resolve, _xpc_bundle_resolve_on_queue, + _xpc_bundle_resolve_sync, _xpc_coalition_copy_info, _xpc_coalition_history_pipe_async, + _xpc_connection_activate, _xpc_connection_bs_seal_listener, + _xpc_connection_cancel, _xpc_connection_copy_bundle_id, _xpc_connection_copy_entitlement_value, + _xpc_connection_copy_invalidation_reason, _xpc_connection_create, + _xpc_connection_create_bs_service_listener, _xpc_connection_create_from_endpoint, + _xpc_connection_create_listener, _xpc_connection_create_mach_service, + _xpc_connection_enable_sim2host_4sim, _xpc_connection_enable_termination_imminent_event, + _xpc_connection_get_asid, _xpc_connection_get_audit_token, + _xpc_connection_get_bs_type, _xpc_connection_get_context, + _xpc_connection_get_egid, _xpc_connection_get_euid, _xpc_connection_get_filter_policy_id_4test, + _xpc_connection_get_instance, _xpc_connection_get_name, _xpc_connection_get_peer_instance, _xpc_connection_get_pid, _xpc_connection_is_extension, _xpc_connection_kill, _xpc_connection_resume, _xpc_connection_send_barrier, _xpc_connection_send_message, _xpc_connection_send_message_with_reply, _xpc_connection_send_message_with_reply_sync, @@ -3680,26 +3694,26 @@ exports: _xpc_service_instance_set_endpoint, _xpc_service_instance_set_environment, _xpc_service_instance_set_finalizer_f, _xpc_service_instance_set_jetsam_properties, _xpc_service_instance_set_path, _xpc_service_instance_set_start_suspended, - _xpc_service_kickstart, _xpc_service_kickstart_with_flags, - _xpc_service_set_attach_handler, _xpc_session_activate, _xpc_session_cancel, - _xpc_session_copy_description, _xpc_session_create_mach_service, - _xpc_session_create_xpc_endpoint, _xpc_session_create_xpc_service, - _xpc_session_send_message, _xpc_session_send_message_with_reply_async, - _xpc_session_send_message_with_reply_sync, _xpc_session_set_cancel_handler, - _xpc_session_set_incoming_message_handler, _xpc_session_set_instance, - _xpc_session_set_peer_code_signing_requirement, _xpc_session_set_target_queue, - _xpc_session_set_target_user_session_uid, _xpc_set_event, - _xpc_set_event_state, _xpc_set_event_stream_handler, _xpc_set_event_with_flags, - _xpc_set_idle_handler, _xpc_shmem_create, _xpc_shmem_create_readonly, - _xpc_shmem_get_length, _xpc_shmem_map, _xpc_strerror, _xpc_string_create, - _xpc_string_create_no_copy, _xpc_string_create_with_format, - _xpc_string_create_with_format_and_arguments, _xpc_string_get_length, - _xpc_string_get_string_ptr, _xpc_test_symbols_exported, _xpc_track_activity, - _xpc_transaction_begin, _xpc_transaction_end, _xpc_transaction_exit_clean, - _xpc_transaction_interrupt_clean_exit, _xpc_transaction_try_exit_clean, - _xpc_transactions_enable, _xpc_traverse_serialized_data, _xpc_type_get_name, - _xpc_uint64_create, _xpc_uint64_get_value, _xpc_user_sessions_enabled, - _xpc_user_sessions_get_foreground_uid, _xpc_user_sessions_get_session_uid, - _xpc_uuid_create, _xpc_uuid_get_bytes ] + _xpc_service_instance_set_use_sec_transition_shims, _xpc_service_kickstart, + _xpc_service_kickstart_with_flags, _xpc_service_set_attach_handler, + _xpc_session_activate, _xpc_session_cancel, _xpc_session_copy_description, + _xpc_session_create_mach_service, _xpc_session_create_xpc_endpoint, + _xpc_session_create_xpc_service, _xpc_session_send_message, + _xpc_session_send_message_with_reply_async, _xpc_session_send_message_with_reply_sync, + _xpc_session_set_cancel_handler, _xpc_session_set_incoming_message_handler, + _xpc_session_set_instance, _xpc_session_set_peer_code_signing_requirement, + _xpc_session_set_target_queue, _xpc_session_set_target_user_session_uid, + _xpc_set_event, _xpc_set_event_state, _xpc_set_event_stream_handler, + _xpc_set_event_with_flags, _xpc_set_idle_handler, _xpc_shmem_create, + _xpc_shmem_create_readonly, _xpc_shmem_get_length, _xpc_shmem_map, + _xpc_strerror, _xpc_string_create, _xpc_string_create_no_copy, + _xpc_string_create_with_format, _xpc_string_create_with_format_and_arguments, + _xpc_string_get_length, _xpc_string_get_string_ptr, _xpc_test_symbols_exported, + _xpc_track_activity, _xpc_transaction_begin, _xpc_transaction_end, + _xpc_transaction_exit_clean, _xpc_transaction_interrupt_clean_exit, + _xpc_transaction_try_exit_clean, _xpc_transactions_enable, + _xpc_traverse_serialized_data, _xpc_type_get_name, _xpc_uint64_create, + _xpc_uint64_get_value, _xpc_user_sessions_enabled, _xpc_user_sessions_get_foreground_uid, + _xpc_user_sessions_get_session_uid, _xpc_uuid_create, _xpc_uuid_get_bytes ] objc-classes: [ OS_xpc_object ] ... diff --git a/lib/libc/include/any-macos-any/AssertMacros.h b/lib/libc/include/any-macos-any/AssertMacros.h index 5da90158f9..6408a53c24 100644 --- a/lib/libc/include/any-macos-any/AssertMacros.h +++ b/lib/libc/include/any-macos-any/AssertMacros.h @@ -133,6 +133,9 @@ * * If you do not define DEBUG_ASSERT_PRODUCTION_CODE, the default value 1 will be used * (production code = no assertion code and no messages). + * + * If you are building with modules modules this must be defined via a commandline + * flag (i.e. -DDEBUG_ASSERT_PRODUCTION_CODE=1) in order to work correctly. */ #ifndef DEBUG_ASSERT_PRODUCTION_CODE #define DEBUG_ASSERT_PRODUCTION_CODE !DEBUG diff --git a/lib/libc/include/any-macos-any/Availability.h b/lib/libc/include/any-macos-any/Availability.h index 2eccdf1307..71db7d4dc4 100644 --- a/lib/libc/include/any-macos-any/Availability.h +++ b/lib/libc/include/any-macos-any/Availability.h @@ -26,8 +26,8 @@ /* These macros are for use in OS header files. They enable function prototypes and Objective-C methods to be tagged with the OS version in which they - were first available; and, if applicable, the OS version in which they - became deprecated. + were first available; and, if applicable, the OS versions in which they + became deprecated and obsoleted. The desktop Mac OS X and iOS each have different version numbers. The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop @@ -135,26 +135,39 @@ #ifndef __API_TO_BE_DEPRECATED_MACOS #define __API_TO_BE_DEPRECATED_MACOS 100000 #endif +#ifndef __API_TO_BE_DEPRECATED_MACOSAPPLICATIONEXTENSION +#define __API_TO_BE_DEPRECATED_MACOSAPPLICATIONEXTENSION 100000 +#endif #ifndef __API_TO_BE_DEPRECATED_IOS #define __API_TO_BE_DEPRECATED_IOS 100000 #endif +#ifndef __API_TO_BE_DEPRECATED_IOSAPPLICATIONEXTENSION +#define __API_TO_BE_DEPRECATED_IOSAPPLICATIONEXTENSION 100000 +#endif #ifndef __API_TO_BE_DEPRECATED_MACCATALYST #define __API_TO_BE_DEPRECATED_MACCATALYST 100000 #endif +#ifndef __API_TO_BE_DEPRECATED_MACCATALYSTAPPLICATIONEXTENSION +#define __API_TO_BE_DEPRECATED_MACCATALYSTAPPLICATIONEXTENSION 100000 +#endif #ifndef __API_TO_BE_DEPRECATED_WATCHOS #define __API_TO_BE_DEPRECATED_WATCHOS 100000 #endif +#ifndef __API_TO_BE_DEPRECATED_WATCHOSAPPLICATIONEXTENSION +#define __API_TO_BE_DEPRECATED_WATCHOSAPPLICATIONEXTENSION 100000 +#endif #ifndef __API_TO_BE_DEPRECATED_TVOS #define __API_TO_BE_DEPRECATED_TVOS 100000 #endif - -#ifndef __API_TO_BE_DEPRECATED_BRIDGEOS - +#ifndef __API_TO_BE_DEPRECATED_TVOSAPPLICATIONEXTENSION +#define __API_TO_BE_DEPRECATED_TVOSAPPLICATIONEXTENSION 100000 #endif + + #ifndef __API_TO_BE_DEPRECATED_DRIVERKIT #define __API_TO_BE_DEPRECATED_DRIVERKIT 100000 #endif @@ -162,11 +175,18 @@ #ifndef __API_TO_BE_DEPRECATED_VISIONOS #define __API_TO_BE_DEPRECATED_VISIONOS 100000 #endif +#ifndef __API_TO_BE_DEPRECATED_VISIONOSAPPLICATIONEXTENSION +#define __API_TO_BE_DEPRECATED_VISIONOSAPPLICATIONEXTENSION 100000 +#endif #ifndef __API_TO_BE_DEPRECATED_EXCLAVEKIT #endif +#ifndef __API_TO_BE_DEPRECATED_KERNELKIT +#define __API_TO_BE_DEPRECATED_KERNELKIT 100000 +#endif + #ifndef __OPEN_SOURCE__ @@ -424,7 +444,9 @@ * Use to specify the release that a particular API became available. * * Platform names: - * macos, ios, tvos, watchos + * macos, macOSApplicationExtension, macCatalyst, macCatalystApplicationExtension, + * ios, iOSApplicationExtension, tvos, tvOSApplicationExtension, watchos, + * watchOSApplicationExtension, driverkit, visionos, visionOSApplicationExtension * * Examples: * __API_AVAILABLE(macos(10.10)) @@ -432,36 +454,48 @@ * __API_AVAILABLE(macos(10.4), ios(8.0), watchos(2.0), tvos(10.0)) * __API_AVAILABLE(driverkit(19.0)) */ - #define __API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE8,__API_AVAILABLE7,__API_AVAILABLE6,__API_AVAILABLE5,__API_AVAILABLE4,__API_AVAILABLE3,__API_AVAILABLE2,__API_AVAILABLE1,__API_AVAILABLE0,0)(__VA_ARGS__) + #define __API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO_93585900(__VA_ARGS__,__API_AVAILABLE15,__API_AVAILABLE14,__API_AVAILABLE13,__API_AVAILABLE12,__API_AVAILABLE11,__API_AVAILABLE10,__API_AVAILABLE9,__API_AVAILABLE8,__API_AVAILABLE7,__API_AVAILABLE6,__API_AVAILABLE5,__API_AVAILABLE4,__API_AVAILABLE3,__API_AVAILABLE2,__API_AVAILABLE1,__API_AVAILABLE0,0)(__VA_ARGS__) - #define __API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE_BEGIN8,__API_AVAILABLE_BEGIN7,__API_AVAILABLE_BEGIN6,__API_AVAILABLE_BEGIN5,__API_AVAILABLE_BEGIN4,__API_AVAILABLE_BEGIN3,__API_AVAILABLE_BEGIN2,__API_AVAILABLE_BEGIN1,__API_AVAILABLE_BEGIN0,0)(__VA_ARGS__) + #define __API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_AVAILABLE_BEGIN15,__API_AVAILABLE_BEGIN14,__API_AVAILABLE_BEGIN13,__API_AVAILABLE_BEGIN12,__API_AVAILABLE_BEGIN11,__API_AVAILABLE_BEGIN10,__API_AVAILABLE_BEGIN9,__API_AVAILABLE_BEGIN8,__API_AVAILABLE_BEGIN7,__API_AVAILABLE_BEGIN6,__API_AVAILABLE_BEGIN5,__API_AVAILABLE_BEGIN4,__API_AVAILABLE_BEGIN3,__API_AVAILABLE_BEGIN2,__API_AVAILABLE_BEGIN1,__API_AVAILABLE_BEGIN0,0)(__VA_ARGS__) #define __API_AVAILABLE_END _Pragma("clang attribute pop") /* * API Deprecations * - * Use to specify the release that a particular API became unavailable. + * Use to specify the release that a particular API became deprecated. * * Platform names: - * macos, ios, tvos, watchos + * macos, macOSApplicationExtension, macCatalyst, macCatalystApplicationExtension, + * ios, iOSApplicationExtension, tvos, tvOSApplicationExtension, watchos, + * watchOSApplicationExtension, driverkit, visionos, visionOSApplicationExtension * * Examples: * - * __API_DEPRECATED("No longer supported", macos(10.4, 10.8)) - * __API_DEPRECATED("No longer supported", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0)) + * __API_DEPRECATED("Deprecated", macos(10.4, 10.8)) + * __API_DEPRECATED("Deprecated", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0)) * * __API_DEPRECATED_WITH_REPLACEMENT("-setName:", tvos(10.0, 10.4), ios(9.0, 10.0)) * __API_DEPRECATED_WITH_REPLACEMENT("SomeClassName", macos(10.4, 10.6), watchos(2.0, 3.0)) */ - #define __API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7,__API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1,__API_DEPRECATED_MSG0,0,0)(__VA_ARGS__) - #define __API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7,__API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1,__API_DEPRECATED_REP0,0,0)(__VA_ARGS__) + #define __API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO_93585900(__VA_ARGS__,__API_DEPRECATED_MSG15,__API_DEPRECATED_MSG14,__API_DEPRECATED_MSG13,__API_DEPRECATED_MSG12,__API_DEPRECATED_MSG11,__API_DEPRECATED_MSG10,__API_DEPRECATED_MSG9,__API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7,__API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1,__API_DEPRECATED_MSG0,0,0)(__VA_ARGS__) + #define __API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO_93585900(__VA_ARGS__,__API_DEPRECATED_REP15,__API_DEPRECATED_REP14,__API_DEPRECATED_REP13,__API_DEPRECATED_REP12,__API_DEPRECATED_REP11,__API_DEPRECATED_REP10,__API_DEPRECATED_REP9,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7,__API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1,__API_DEPRECATED_REP0,0,0)(__VA_ARGS__) - #define __API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN8,__API_DEPRECATED_BEGIN7,__API_DEPRECATED_BEGIN6,__API_DEPRECATED_BEGIN5,__API_DEPRECATED_BEGIN4,__API_DEPRECATED_BEGIN3,__API_DEPRECATED_BEGIN2,__API_DEPRECATED_BEGIN1,__API_DEPRECATED_BEGIN0,0,0)(__VA_ARGS__) + #define __API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_DEPRECATED_BEGIN15,__API_DEPRECATED_BEGIN14,__API_DEPRECATED_BEGIN13,__API_DEPRECATED_BEGIN12,__API_DEPRECATED_BEGIN11,__API_DEPRECATED_BEGIN10,__API_DEPRECATED_BEGIN9,__API_DEPRECATED_BEGIN8,__API_DEPRECATED_BEGIN7,__API_DEPRECATED_BEGIN6,__API_DEPRECATED_BEGIN5,__API_DEPRECATED_BEGIN4,__API_DEPRECATED_BEGIN3,__API_DEPRECATED_BEGIN2,__API_DEPRECATED_BEGIN1,__API_DEPRECATED_BEGIN0,0,0)(__VA_ARGS__) #define __API_DEPRECATED_END _Pragma("clang attribute pop") - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_WITH_REPLACEMENT_BEGIN_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN8,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN7,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN6,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN5,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN4,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN3,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN2,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN1,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN0,0,0)(__VA_ARGS__) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_WITH_REPLACEMENT_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN15,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN14,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN13,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN12,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN11,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN10,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN9,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN8,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN7,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN6,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN5,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN4,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN3,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN2,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN1,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN0,0,0)(__VA_ARGS__) #define __API_DEPRECATED_WITH_REPLACEMENT_END _Pragma("clang attribute pop") + + #define __API_OBSOLETED(...) __API_OBSOLETED_MSG_GET_MACRO_93585900(__VA_ARGS__,__API_OBSOLETED_MSG15,__API_OBSOLETED_MSG14,__API_OBSOLETED_MSG13,__API_OBSOLETED_MSG12,__API_OBSOLETED_MSG11,__API_OBSOLETED_MSG10,__API_OBSOLETED_MSG9,__API_OBSOLETED_MSG8,__API_OBSOLETED_MSG7,__API_OBSOLETED_MSG6,__API_OBSOLETED_MSG5,__API_OBSOLETED_MSG4,__API_OBSOLETED_MSG3,__API_OBSOLETED_MSG2,__API_OBSOLETED_MSG1,__API_OBSOLETED_MSG0,0,0)(__VA_ARGS__) + #define __API_OBSOLETED_WITH_REPLACEMENT(...) __API_OBSOLETED_REP_GET_MACRO_93585900(__VA_ARGS__,__API_OBSOLETED_REP15,__API_OBSOLETED_REP14,__API_OBSOLETED_REP13,__API_OBSOLETED_REP12,__API_OBSOLETED_REP11,__API_OBSOLETED_REP10,__API_OBSOLETED_REP9,__API_OBSOLETED_REP8,__API_OBSOLETED_REP7,__API_OBSOLETED_REP6,__API_OBSOLETED_REP5,__API_OBSOLETED_REP4,__API_OBSOLETED_REP3,__API_OBSOLETED_REP2,__API_OBSOLETED_REP1,__API_OBSOLETED_REP0,0,0)(__VA_ARGS__) + + #define __API_OBSOLETED_BEGIN(...) _Pragma("clang attribute push") __API_OBSOLETED_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_OBSOLETED_BEGIN15,__API_OBSOLETED_BEGIN14,__API_OBSOLETED_BEGIN13,__API_OBSOLETED_BEGIN12,__API_OBSOLETED_BEGIN11,__API_OBSOLETED_BEGIN10,__API_OBSOLETED_BEGIN9,__API_OBSOLETED_BEGIN8,__API_OBSOLETED_BEGIN7,__API_OBSOLETED_BEGIN6,__API_OBSOLETED_BEGIN5,__API_OBSOLETED_BEGIN4,__API_OBSOLETED_BEGIN3,__API_OBSOLETED_BEGIN2,__API_OBSOLETED_BEGIN1,__API_OBSOLETED_BEGIN0,0,0)(__VA_ARGS__) + #define __API_OBSOLETED_END _Pragma("clang attribute pop") + + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_OBSOLETED_WITH_REPLACEMENT_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN15,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN14,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN13,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN12,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN11,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN10,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN9,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN8,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN7,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN6,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN5,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN4,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN3,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN2,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN1,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN0,0,0)(__VA_ARGS__) + #define __API_OBSOLETED_WITH_REPLACEMENT_END _Pragma("clang attribute pop") + /* * API Unavailability * Use to specify that an API is unavailable for a particular platform. @@ -470,9 +504,9 @@ * __API_UNAVAILABLE(macos) * __API_UNAVAILABLE(watchos, tvos) */ - #define __API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE8,__API_UNAVAILABLE7,__API_UNAVAILABLE6,__API_UNAVAILABLE5,__API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1,__API_UNAVAILABLE0,0)(__VA_ARGS__) + #define __API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO_93585900(__VA_ARGS__,__API_UNAVAILABLE15,__API_UNAVAILABLE14,__API_UNAVAILABLE13,__API_UNAVAILABLE12,__API_UNAVAILABLE11,__API_UNAVAILABLE10,__API_UNAVAILABLE9,__API_UNAVAILABLE8,__API_UNAVAILABLE7,__API_UNAVAILABLE6,__API_UNAVAILABLE5,__API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1,__API_UNAVAILABLE0,0)(__VA_ARGS__) - #define __API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN8,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6,__API_UNAVAILABLE_BEGIN5,__API_UNAVAILABLE_BEGIN4,__API_UNAVAILABLE_BEGIN3,__API_UNAVAILABLE_BEGIN2,__API_UNAVAILABLE_BEGIN1,__API_UNAVAILABLE_BEGIN0,0)(__VA_ARGS__) + #define __API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_UNAVAILABLE_BEGIN15,__API_UNAVAILABLE_BEGIN14,__API_UNAVAILABLE_BEGIN13,__API_UNAVAILABLE_BEGIN12,__API_UNAVAILABLE_BEGIN11,__API_UNAVAILABLE_BEGIN10,__API_UNAVAILABLE_BEGIN9,__API_UNAVAILABLE_BEGIN8,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6,__API_UNAVAILABLE_BEGIN5,__API_UNAVAILABLE_BEGIN4,__API_UNAVAILABLE_BEGIN3,__API_UNAVAILABLE_BEGIN2,__API_UNAVAILABLE_BEGIN1,__API_UNAVAILABLE_BEGIN0,0)(__VA_ARGS__) #define __API_UNAVAILABLE_END _Pragma("clang attribute pop") #endif /* __has_attribute(availability) */ #endif /* #if defined(__has_feature) && defined(__has_attribute) */ @@ -517,6 +551,30 @@ #define __API_DEPRECATED_WITH_REPLACEMENT_END(...) #endif +#ifndef __API_OBSOLETED + #define __API_OBSOLETED(...) +#endif + +#ifndef __API_OBSOLETED_BEGIN + #define __API_OBSOLETED_BEGIN(...) +#endif + +#ifndef __API_OBSOLETED_END + #define __API_OBSOLETED_END(...) +#endif + +#ifndef __API_OBSOLETED_WITH_REPLACEMENT + #define __API_OBSOLETED_WITH_REPLACEMENT(...) +#endif + +#ifndef __API_OBSOLETED_WITH_REPLACEMENT_BEGIN + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN(...) +#endif + +#ifndef __API_OBSOLETED_WITH_REPLACEMENT_END + #define __API_OBSOLETED_WITH_REPLACEMENT_END(...) +#endif + #ifndef __API_UNAVAILABLE #define __API_UNAVAILABLE(...) #endif @@ -555,3 +613,13 @@ #endif /* __AVAILABILITY__ */ +#ifndef __OPEN_SOURCE__ +// This is explicitly outside the header guard +#ifndef __AVAILABILITY_VERSIONS_VERSION_HASH +#define __AVAILABILITY_VERSIONS_VERSION_HASH 93585900U +#define __AVAILABILITY_VERSIONS_VERSION_STRING "Local" +#define __AVAILABILITY_FILE "Availability.h" +#elif __AVAILABILITY_VERSIONS_VERSION_HASH != 93585900U +#pragma GCC error "Already found AvailabilityVersions version " __AVAILABILITY_FILE " from " __AVAILABILITY_VERSIONS_VERSION_STRING ", which is incompatible with Availability.h from Local. Mixing and matching Availability from different SDKs is not supported" +#endif /* __AVAILABILITY_VERSIONS_VERSION_HASH */ +#endif /* __OPEN_SOURCE__ */ diff --git a/lib/libc/include/any-macos-any/AvailabilityInternal.h b/lib/libc/include/any-macos-any/AvailabilityInternal.h index c7cb49a96c..736852841b 100644 --- a/lib/libc/include/any-macos-any/AvailabilityInternal.h +++ b/lib/libc/include/any-macos-any/AvailabilityInternal.h @@ -36,11 +36,11 @@ #if defined(__has_builtin) && __has_builtin(__is_target_os) #if __is_target_os(macos) #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ - #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_15_2 + #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_15_5 #endif #elif __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ - #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_15_2 + #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_15_5 #endif /* __has_builtin(__is_target_os) && __is_target_os(macos) */ #endif /* __MAC_OS_X_VERSION_MIN_REQUIRED */ @@ -48,11 +48,11 @@ #if defined(__has_builtin) && __has_builtin(__is_target_os) #if __is_target_os(ios) #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ - #define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_18_2 + #define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_18_5 #endif #elif __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ - #define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_18_2 + #define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_18_5 #endif /* __has_builtin(__is_target_os) && __is_target_os(ios) */ #endif /* __IPHONE_OS_VERSION_MIN_REQUIRED */ @@ -60,13 +60,13 @@ #if defined(__has_builtin) && __has_builtin(__is_target_os) #if __is_target_os(watchos) #define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ - #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_11_2 + #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_11_5 /* for compatibility with existing code. New code should use platform specific checks */ #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_0 #endif #elif __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ #define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ - #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_11_2 + #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_11_5 /* for compatibility with existing code. New code should use platform specific checks */ #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_0 #endif /* __has_builtin(__is_target_os) && __is_target_os(watchos) */ @@ -76,34 +76,25 @@ #if defined(__has_builtin) && __has_builtin(__is_target_os) #if __is_target_os(tvos) #define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ - #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_18_2 + #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_18_5 /* for compatibility with existing code. New code should use platform specific checks */ #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_0 #endif #elif __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ #define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ - #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_18_2 + #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_18_5 /* for compatibility with existing code. New code should use platform specific checks */ #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_9_0 #endif /* __has_builtin(__is_target_os) && __is_target_os(tvos) */ #endif /* __TV_OS_VERSION_MIN_REQUIRED */ -#ifndef __BRIDGE_OS_VERSION_MIN_REQUIRED - #if defined(__has_builtin) && __has_builtin(__is_target_os) - #if __is_target_os(bridgeos) - #define __BRIDGE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ - #define __BRIDGE_OS_VERSION_MAX_ALLOWED __BRIDGEOS_9_2 - /* for compatibility with existing code. New code should use platform specific checks */ - #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_11_0 - #endif - #endif -#endif /* __BRIDGE_OS_VERSION_MIN_REQUIRED */ + #ifndef __DRIVERKIT_VERSION_MIN_REQUIRED #if defined(__has_builtin) && __has_builtin(__is_target_os) #if __is_target_os(driverkit) #define __DRIVERKIT_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ - #define __DRIVERKIT_VERSION_MAX_ALLOWED __DRIVERKIT_24_2 + #define __DRIVERKIT_VERSION_MAX_ALLOWED __DRIVERKIT_24_5 #endif #endif /* __has_builtin(__is_target_os) && __is_target_os(driverkit) */ #endif /* __DRIVERKIT_VERSION_MIN_REQUIRED */ @@ -112,7 +103,7 @@ #if defined(__has_builtin) && __has_builtin(__is_target_os) #if __is_target_os(visionos) #define __VISION_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ - #define __VISION_OS_VERSION_MAX_ALLOWED __VISIONOS_2_2 + #define __VISION_OS_VERSION_MAX_ALLOWED __VISIONOS_2_5 /* for compatibility with existing code. New code should use platform specific checks */ #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_17_1 #endif @@ -120,25 +111,6 @@ #endif /* __VISION_OS_VERSION_MIN_REQUIRED */ -//FIXME: Workaround for rdar://116062344 -#ifndef __VISION_OS_VERSION_MIN_REQUIRED - #if defined(__has_builtin) && __has_builtin(__is_target_os) - #if __is_target_os(xros) - #define __VISION_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_OS_VERSION_MIN_REQUIRED__ - // Hardcoded these since until compiler fix for rdar://116062344 will land - #if defined(__VISIONOS_2_0) - #define __VISION_OS_VERSION_MAX_ALLOWED __VISIONOS_2_0 - #elif defined(__VISIONOS_1_1) - #define __VISION_OS_VERSION_MAX_ALLOWED __VISIONOS_1_1 - #elif defined(__VISIONOS_1_0) - #define __VISION_OS_VERSION_MAX_ALLOWED __VISIONOS_1_0 - #endif - /* for compatibility with existing code. New code should use platform specific checks */ - #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_17_1 - #endif - #endif /* __has_builtin(__is_target_os) && __is_target_os(visionos) */ -#endif /* __VISION_OS_VERSION_MIN_REQUIRED */ - #ifndef __OPEN_SOURCE__ #endif /* __OPEN_SOURCE__ */ @@ -175,41 +147,70 @@ #if __has_attribute(availability) #define __API_AVAILABLE_PLATFORM_macos(x) macos,introduced=x #define __API_DEPRECATED_PLATFORM_macos(x,y) macos,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_macos(x,y,z) macos,introduced=x,deprecated=y,obsoleted=z #define __API_UNAVAILABLE_PLATFORM_macos macos,unavailable #define __API_AVAILABLE_PLATFORM_macosx(x) macos,introduced=x #define __API_DEPRECATED_PLATFORM_macosx(x,y) macos,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_macosx(x,y,z) macos,introduced=x,deprecated=y,obsoleted=z #define __API_UNAVAILABLE_PLATFORM_macosx macos,unavailable + #define __API_AVAILABLE_PLATFORM_macOSApplicationExtension(x) macOSApplicationExtension,introduced=x + #define __API_DEPRECATED_PLATFORM_macOSApplicationExtension(x,y) macOSApplicationExtension,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_macOSApplicationExtension(x,y,z) macOSApplicationExtension,introduced=x,deprecated=y,obsoleted=z + #define __API_UNAVAILABLE_PLATFORM_macOSApplicationExtension macOSApplicationExtension,unavailable #define __API_AVAILABLE_PLATFORM_ios(x) ios,introduced=x #define __API_DEPRECATED_PLATFORM_ios(x,y) ios,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_ios(x,y,z) ios,introduced=x,deprecated=y,obsoleted=z #define __API_UNAVAILABLE_PLATFORM_ios ios,unavailable + #define __API_AVAILABLE_PLATFORM_iOSApplicationExtension(x) iOSApplicationExtension,introduced=x + #define __API_DEPRECATED_PLATFORM_iOSApplicationExtension(x,y) iOSApplicationExtension,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_iOSApplicationExtension(x,y,z) iOSApplicationExtension,introduced=x,deprecated=y,obsoleted=z + #define __API_UNAVAILABLE_PLATFORM_iOSApplicationExtension iOSApplicationExtension,unavailable #define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x #define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_macCatalyst(x,y,z) macCatalyst,introduced=x,deprecated=y,obsoleted=z #define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable - #define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x - #define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y - #define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable + #define __API_AVAILABLE_PLATFORM_macCatalystApplicationExtension(x) macCatalystApplicationExtension,introduced=x + #define __API_DEPRECATED_PLATFORM_macCatalystApplicationExtension(x,y) macCatalystApplicationExtension,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_macCatalystApplicationExtension(x,y,z) macCatalystApplicationExtension,introduced=x,deprecated=y,obsoleted=z + #define __API_UNAVAILABLE_PLATFORM_macCatalystApplicationExtension macCatalystApplicationExtension,unavailable #define __API_AVAILABLE_PLATFORM_watchos(x) watchos,introduced=x #define __API_DEPRECATED_PLATFORM_watchos(x,y) watchos,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_watchos(x,y,z) watchos,introduced=x,deprecated=y,obsoleted=z #define __API_UNAVAILABLE_PLATFORM_watchos watchos,unavailable + #define __API_AVAILABLE_PLATFORM_watchOSApplicationExtension(x) watchOSApplicationExtension,introduced=x + #define __API_DEPRECATED_PLATFORM_watchOSApplicationExtension(x,y) watchOSApplicationExtension,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_watchOSApplicationExtension(x,y,z) watchOSApplicationExtension,introduced=x,deprecated=y,obsoleted=z + #define __API_UNAVAILABLE_PLATFORM_watchOSApplicationExtension watchOSApplicationExtension,unavailable #define __API_AVAILABLE_PLATFORM_tvos(x) tvos,introduced=x #define __API_DEPRECATED_PLATFORM_tvos(x,y) tvos,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_tvos(x,y,z) tvos,introduced=x,deprecated=y,obsoleted=z #define __API_UNAVAILABLE_PLATFORM_tvos tvos,unavailable - - - + #define __API_AVAILABLE_PLATFORM_tvOSApplicationExtension(x) tvOSApplicationExtension,introduced=x + #define __API_DEPRECATED_PLATFORM_tvOSApplicationExtension(x,y) tvOSApplicationExtension,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_tvOSApplicationExtension(x,y,z) tvOSApplicationExtension,introduced=x,deprecated=y,obsoleted=z + #define __API_UNAVAILABLE_PLATFORM_tvOSApplicationExtension tvOSApplicationExtension,unavailable + #define __API_AVAILABLE_PLATFORM_driverkit(x) driverkit,introduced=x #define __API_DEPRECATED_PLATFORM_driverkit(x,y) driverkit,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_driverkit(x,y,z) driverkit,introduced=x,deprecated=y,obsoleted=z #define __API_UNAVAILABLE_PLATFORM_driverkit driverkit,unavailable #define __API_AVAILABLE_PLATFORM_visionos(x) visionos,introduced=x #define __API_DEPRECATED_PLATFORM_visionos(x,y) visionos,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_visionos(x,y,z) visionos,introduced=x,deprecated=y,obsoleted=z #define __API_UNAVAILABLE_PLATFORM_visionos visionos,unavailable - #define __API_AVAILABLE_PLATFORM_xros(x) visionos,introduced=x - #define __API_DEPRECATED_PLATFORM_xros(x,y) visionos,introduced=x,deprecated=y - #define __API_UNAVAILABLE_PLATFORM_xros visionos,unavailable + #define __API_AVAILABLE_PLATFORM_visionOSApplicationExtension(x) visionOSApplicationExtension,introduced=x + #define __API_DEPRECATED_PLATFORM_visionOSApplicationExtension(x,y) visionOSApplicationExtension,introduced=x,deprecated=y + #define __API_OBSOLETED_PLATFORM_visionOSApplicationExtension(x,y,z) visionOSApplicationExtension,introduced=x,deprecated=y,obsoleted=z + #define __API_UNAVAILABLE_PLATFORM_visionOSApplicationExtension visionOSApplicationExtension,unavailable + #define __API_UNAVAILABLE_PLATFORM_kernelkit kernelkit,unavailable #endif /* __has_attribute(availability) */ #endif /* defined(__has_feature) && defined(__has_attribute) */ +#ifndef __OPEN_SOURCE__ + +#endif /* __OPEN_SOURCE__ */ + #if defined(__has_feature) && defined(__has_attribute) #if __has_attribute(availability) #define __API_APPLY_TO any(record, enum, enum_constant, function, objc_method, objc_category, objc_protocol, objc_interface, objc_property, type_alias, variable, field) @@ -239,7 +240,14 @@ #define __API_AVAILABLE6(arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) #define __API_AVAILABLE7(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) __API_A(arg7) #define __API_AVAILABLE8(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) __API_A(arg7) __API_A(arg8) - #define __API_AVAILABLE_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME + #define __API_AVAILABLE9(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) __API_A(arg7) __API_A(arg8) __API_A(arg9) + #define __API_AVAILABLE10(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) __API_A(arg7) __API_A(arg8) __API_A(arg9) __API_A(arg10) + #define __API_AVAILABLE11(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) __API_A(arg7) __API_A(arg8) __API_A(arg9) __API_A(arg10) __API_A(arg11) + #define __API_AVAILABLE12(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) __API_A(arg7) __API_A(arg8) __API_A(arg9) __API_A(arg10) __API_A(arg11) __API_A(arg12) + #define __API_AVAILABLE13(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) __API_A(arg7) __API_A(arg8) __API_A(arg9) __API_A(arg10) __API_A(arg11) __API_A(arg12) __API_A(arg13) + #define __API_AVAILABLE14(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) __API_A(arg7) __API_A(arg8) __API_A(arg9) __API_A(arg10) __API_A(arg11) __API_A(arg12) __API_A(arg13) __API_A(arg14) + #define __API_AVAILABLE15(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_A(arg0) __API_A(arg1) __API_A(arg2) __API_A(arg3) __API_A(arg4) __API_A(arg5) __API_A(arg6) __API_A(arg7) __API_A(arg8) __API_A(arg9) __API_A(arg10) __API_A(arg11) __API_A(arg12) __API_A(arg13) __API_A(arg14) __API_A(arg15) + #define __API_AVAILABLE_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,NAME,...) NAME #define __API_A_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_AVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO))) @@ -252,7 +260,14 @@ #define __API_AVAILABLE_BEGIN6(arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) #define __API_AVAILABLE_BEGIN7(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) __API_A_BEGIN(arg7) #define __API_AVAILABLE_BEGIN8(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) __API_A_BEGIN(arg7) __API_A_BEGIN(arg8) - #define __API_AVAILABLE_BEGIN_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME + #define __API_AVAILABLE_BEGIN9(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) __API_A_BEGIN(arg7) __API_A_BEGIN(arg8) __API_A_BEGIN(arg9) + #define __API_AVAILABLE_BEGIN10(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) __API_A_BEGIN(arg7) __API_A_BEGIN(arg8) __API_A_BEGIN(arg9) __API_A_BEGIN(arg10) + #define __API_AVAILABLE_BEGIN11(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) __API_A_BEGIN(arg7) __API_A_BEGIN(arg8) __API_A_BEGIN(arg9) __API_A_BEGIN(arg10) __API_A_BEGIN(arg11) + #define __API_AVAILABLE_BEGIN12(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) __API_A_BEGIN(arg7) __API_A_BEGIN(arg8) __API_A_BEGIN(arg9) __API_A_BEGIN(arg10) __API_A_BEGIN(arg11) __API_A_BEGIN(arg12) + #define __API_AVAILABLE_BEGIN13(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) __API_A_BEGIN(arg7) __API_A_BEGIN(arg8) __API_A_BEGIN(arg9) __API_A_BEGIN(arg10) __API_A_BEGIN(arg11) __API_A_BEGIN(arg12) __API_A_BEGIN(arg13) + #define __API_AVAILABLE_BEGIN14(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) __API_A_BEGIN(arg7) __API_A_BEGIN(arg8) __API_A_BEGIN(arg9) __API_A_BEGIN(arg10) __API_A_BEGIN(arg11) __API_A_BEGIN(arg12) __API_A_BEGIN(arg13) __API_A_BEGIN(arg14) + #define __API_AVAILABLE_BEGIN15(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_A_BEGIN(arg0) __API_A_BEGIN(arg1) __API_A_BEGIN(arg2) __API_A_BEGIN(arg3) __API_A_BEGIN(arg4) __API_A_BEGIN(arg5) __API_A_BEGIN(arg6) __API_A_BEGIN(arg7) __API_A_BEGIN(arg8) __API_A_BEGIN(arg9) __API_A_BEGIN(arg10) __API_A_BEGIN(arg11) __API_A_BEGIN(arg12) __API_A_BEGIN(arg13) __API_A_BEGIN(arg14) __API_A_BEGIN(arg15) + #define __API_AVAILABLE_BEGIN_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,NAME,...) NAME @@ -267,7 +282,14 @@ #define __API_DEPRECATED_MSG6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) #define __API_DEPRECATED_MSG7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) __API_D(msg,arg7) #define __API_DEPRECATED_MSG8(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) __API_D(msg,arg7) __API_D(msg,arg8) - #define __API_DEPRECATED_MSG_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME + #define __API_DEPRECATED_MSG9(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) __API_D(msg,arg7) __API_D(msg,arg8) __API_D(msg,arg9) + #define __API_DEPRECATED_MSG10(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) __API_D(msg,arg7) __API_D(msg,arg8) __API_D(msg,arg9) __API_D(msg,arg10) + #define __API_DEPRECATED_MSG11(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) __API_D(msg,arg7) __API_D(msg,arg8) __API_D(msg,arg9) __API_D(msg,arg10) __API_D(msg,arg11) + #define __API_DEPRECATED_MSG12(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) __API_D(msg,arg7) __API_D(msg,arg8) __API_D(msg,arg9) __API_D(msg,arg10) __API_D(msg,arg11) __API_D(msg,arg12) + #define __API_DEPRECATED_MSG13(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) __API_D(msg,arg7) __API_D(msg,arg8) __API_D(msg,arg9) __API_D(msg,arg10) __API_D(msg,arg11) __API_D(msg,arg12) __API_D(msg,arg13) + #define __API_DEPRECATED_MSG14(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) __API_D(msg,arg7) __API_D(msg,arg8) __API_D(msg,arg9) __API_D(msg,arg10) __API_D(msg,arg11) __API_D(msg,arg12) __API_D(msg,arg13) __API_D(msg,arg14) + #define __API_DEPRECATED_MSG15(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_D(msg,arg0) __API_D(msg,arg1) __API_D(msg,arg2) __API_D(msg,arg3) __API_D(msg,arg4) __API_D(msg,arg5) __API_D(msg,arg6) __API_D(msg,arg7) __API_D(msg,arg8) __API_D(msg,arg9) __API_D(msg,arg10) __API_D(msg,arg11) __API_D(msg,arg12) __API_D(msg,arg13) __API_D(msg,arg14) __API_D(msg,arg15) + #define __API_DEPRECATED_MSG_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,NAME,...) NAME #define __API_D_BEGIN(msg, x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg))), apply_to = __API_APPLY_TO))) @@ -280,41 +302,152 @@ #define __API_DEPRECATED_BEGIN6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) #define __API_DEPRECATED_BEGIN7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) __API_D_BEGIN(msg,arg7) #define __API_DEPRECATED_BEGIN8(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) __API_D_BEGIN(msg,arg7) __API_D_BEGIN(msg,arg8) - #define __API_DEPRECATED_BEGIN_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME + #define __API_DEPRECATED_BEGIN9(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) __API_D_BEGIN(msg,arg7) __API_D_BEGIN(msg,arg8) __API_D_BEGIN(msg,arg9) + #define __API_DEPRECATED_BEGIN10(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) __API_D_BEGIN(msg,arg7) __API_D_BEGIN(msg,arg8) __API_D_BEGIN(msg,arg9) __API_D_BEGIN(msg,arg10) + #define __API_DEPRECATED_BEGIN11(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) __API_D_BEGIN(msg,arg7) __API_D_BEGIN(msg,arg8) __API_D_BEGIN(msg,arg9) __API_D_BEGIN(msg,arg10) __API_D_BEGIN(msg,arg11) + #define __API_DEPRECATED_BEGIN12(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) __API_D_BEGIN(msg,arg7) __API_D_BEGIN(msg,arg8) __API_D_BEGIN(msg,arg9) __API_D_BEGIN(msg,arg10) __API_D_BEGIN(msg,arg11) __API_D_BEGIN(msg,arg12) + #define __API_DEPRECATED_BEGIN13(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) __API_D_BEGIN(msg,arg7) __API_D_BEGIN(msg,arg8) __API_D_BEGIN(msg,arg9) __API_D_BEGIN(msg,arg10) __API_D_BEGIN(msg,arg11) __API_D_BEGIN(msg,arg12) __API_D_BEGIN(msg,arg13) + #define __API_DEPRECATED_BEGIN14(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) __API_D_BEGIN(msg,arg7) __API_D_BEGIN(msg,arg8) __API_D_BEGIN(msg,arg9) __API_D_BEGIN(msg,arg10) __API_D_BEGIN(msg,arg11) __API_D_BEGIN(msg,arg12) __API_D_BEGIN(msg,arg13) __API_D_BEGIN(msg,arg14) + #define __API_DEPRECATED_BEGIN15(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_D_BEGIN(msg,arg0) __API_D_BEGIN(msg,arg1) __API_D_BEGIN(msg,arg2) __API_D_BEGIN(msg,arg3) __API_D_BEGIN(msg,arg4) __API_D_BEGIN(msg,arg5) __API_D_BEGIN(msg,arg6) __API_D_BEGIN(msg,arg7) __API_D_BEGIN(msg,arg8) __API_D_BEGIN(msg,arg9) __API_D_BEGIN(msg,arg10) __API_D_BEGIN(msg,arg11) __API_D_BEGIN(msg,arg12) __API_D_BEGIN(msg,arg13) __API_D_BEGIN(msg,arg14) __API_D_BEGIN(msg,arg15) + #define __API_DEPRECATED_BEGIN_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,NAME,...) NAME #if __has_feature(attribute_availability_with_replacement) - #define __API_R(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))) + #define __API_DR(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))) #else - #define __API_R(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x))) + #define __API_DR(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x))) #endif - #define __API_DEPRECATED_REP0(msg,arg0) __API_R(msg,arg0) - #define __API_DEPRECATED_REP1(msg,arg0,arg1) __API_R(msg,arg0) __API_R(msg,arg1) - #define __API_DEPRECATED_REP2(msg,arg0,arg1,arg2) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) - #define __API_DEPRECATED_REP3(msg,arg0,arg1,arg2,arg3) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) - #define __API_DEPRECATED_REP4(msg,arg0,arg1,arg2,arg3,arg4) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) __API_R(msg,arg4) - #define __API_DEPRECATED_REP5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) __API_R(msg,arg4) __API_R(msg,arg5) - #define __API_DEPRECATED_REP6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) __API_R(msg,arg4) __API_R(msg,arg5) __API_R(msg,arg6) - #define __API_DEPRECATED_REP7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) __API_R(msg,arg4) __API_R(msg,arg5) __API_R(msg,arg6) __API_R(msg,arg7) - #define __API_DEPRECATED_REP8(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_R(msg,arg0) __API_R(msg,arg1) __API_R(msg,arg2) __API_R(msg,arg3) __API_R(msg,arg4) __API_R(msg,arg5) __API_R(msg,arg6) __API_R(msg,arg7) __API_R(msg,arg8) - #define __API_DEPRECATED_REP_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME + #define __API_DEPRECATED_REP0(msg,arg0) __API_DR(msg,arg0) + #define __API_DEPRECATED_REP1(msg,arg0,arg1) __API_DR(msg,arg0) __API_DR(msg,arg1) + #define __API_DEPRECATED_REP2(msg,arg0,arg1,arg2) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) + #define __API_DEPRECATED_REP3(msg,arg0,arg1,arg2,arg3) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) + #define __API_DEPRECATED_REP4(msg,arg0,arg1,arg2,arg3,arg4) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) + #define __API_DEPRECATED_REP5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) + #define __API_DEPRECATED_REP6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) __API_DR(msg,arg6) + #define __API_DEPRECATED_REP7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) __API_DR(msg,arg6) __API_DR(msg,arg7) + #define __API_DEPRECATED_REP8(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) __API_DR(msg,arg6) __API_DR(msg,arg7) __API_DR(msg,arg8) + #define __API_DEPRECATED_REP9(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) __API_DR(msg,arg6) __API_DR(msg,arg7) __API_DR(msg,arg8) __API_DR(msg,arg9) + #define __API_DEPRECATED_REP10(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) __API_DR(msg,arg6) __API_DR(msg,arg7) __API_DR(msg,arg8) __API_DR(msg,arg9) __API_DR(msg,arg10) + #define __API_DEPRECATED_REP11(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) __API_DR(msg,arg6) __API_DR(msg,arg7) __API_DR(msg,arg8) __API_DR(msg,arg9) __API_DR(msg,arg10) __API_DR(msg,arg11) + #define __API_DEPRECATED_REP12(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) __API_DR(msg,arg6) __API_DR(msg,arg7) __API_DR(msg,arg8) __API_DR(msg,arg9) __API_DR(msg,arg10) __API_DR(msg,arg11) __API_DR(msg,arg12) + #define __API_DEPRECATED_REP13(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) __API_DR(msg,arg6) __API_DR(msg,arg7) __API_DR(msg,arg8) __API_DR(msg,arg9) __API_DR(msg,arg10) __API_DR(msg,arg11) __API_DR(msg,arg12) __API_DR(msg,arg13) + #define __API_DEPRECATED_REP14(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) __API_DR(msg,arg6) __API_DR(msg,arg7) __API_DR(msg,arg8) __API_DR(msg,arg9) __API_DR(msg,arg10) __API_DR(msg,arg11) __API_DR(msg,arg12) __API_DR(msg,arg13) __API_DR(msg,arg14) + #define __API_DEPRECATED_REP15(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_DR(msg,arg0) __API_DR(msg,arg1) __API_DR(msg,arg2) __API_DR(msg,arg3) __API_DR(msg,arg4) __API_DR(msg,arg5) __API_DR(msg,arg6) __API_DR(msg,arg7) __API_DR(msg,arg8) __API_DR(msg,arg9) __API_DR(msg,arg10) __API_DR(msg,arg11) __API_DR(msg,arg12) __API_DR(msg,arg13) __API_DR(msg,arg14) __API_DR(msg,arg15) + #define __API_DEPRECATED_REP_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,NAME,...) NAME #if __has_feature(attribute_availability_with_replacement) - #define __API_R_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))), apply_to = __API_APPLY_TO))) + #define __API_DR_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))), apply_to = __API_APPLY_TO))) #else - #define __API_R_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x))), apply_to = __API_APPLY_TO))) + #define __API_DR_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x))), apply_to = __API_APPLY_TO))) #endif - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN0(msg,arg0) __API_R_BEGIN(msg,arg0) - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN1(msg,arg0,arg1) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN2(msg,arg0,arg1,arg2) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN3(msg,arg0,arg1,arg2,arg3) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN4(msg,arg0,arg1,arg2,arg3,arg4) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN8(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) __API_R_BEGIN(msg,arg8) - #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,NAME,...) NAME + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN0(msg,arg0) __API_DR_BEGIN(msg,arg0) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN1(msg,arg0,arg1) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN2(msg,arg0,arg1,arg2) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN3(msg,arg0,arg1,arg2,arg3) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN4(msg,arg0,arg1,arg2,arg3,arg4) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) __API_DR_BEGIN(msg,arg6) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) __API_DR_BEGIN(msg,arg6) __API_DR_BEGIN(msg,arg7) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN8(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) __API_DR_BEGIN(msg,arg6) __API_DR_BEGIN(msg,arg7) __API_DR_BEGIN(msg,arg8) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN9(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) __API_DR_BEGIN(msg,arg6) __API_DR_BEGIN(msg,arg7) __API_DR_BEGIN(msg,arg8) __API_DR_BEGIN(msg,arg9) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN10(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) __API_DR_BEGIN(msg,arg6) __API_DR_BEGIN(msg,arg7) __API_DR_BEGIN(msg,arg8) __API_DR_BEGIN(msg,arg9) __API_DR_BEGIN(msg,arg10) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN11(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) __API_DR_BEGIN(msg,arg6) __API_DR_BEGIN(msg,arg7) __API_DR_BEGIN(msg,arg8) __API_DR_BEGIN(msg,arg9) __API_DR_BEGIN(msg,arg10) __API_DR_BEGIN(msg,arg11) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN12(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) __API_DR_BEGIN(msg,arg6) __API_DR_BEGIN(msg,arg7) __API_DR_BEGIN(msg,arg8) __API_DR_BEGIN(msg,arg9) __API_DR_BEGIN(msg,arg10) __API_DR_BEGIN(msg,arg11) __API_DR_BEGIN(msg,arg12) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN13(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) __API_DR_BEGIN(msg,arg6) __API_DR_BEGIN(msg,arg7) __API_DR_BEGIN(msg,arg8) __API_DR_BEGIN(msg,arg9) __API_DR_BEGIN(msg,arg10) __API_DR_BEGIN(msg,arg11) __API_DR_BEGIN(msg,arg12) __API_DR_BEGIN(msg,arg13) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN14(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) __API_DR_BEGIN(msg,arg6) __API_DR_BEGIN(msg,arg7) __API_DR_BEGIN(msg,arg8) __API_DR_BEGIN(msg,arg9) __API_DR_BEGIN(msg,arg10) __API_DR_BEGIN(msg,arg11) __API_DR_BEGIN(msg,arg12) __API_DR_BEGIN(msg,arg13) __API_DR_BEGIN(msg,arg14) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN15(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_DR_BEGIN(msg,arg0) __API_DR_BEGIN(msg,arg1) __API_DR_BEGIN(msg,arg2) __API_DR_BEGIN(msg,arg3) __API_DR_BEGIN(msg,arg4) __API_DR_BEGIN(msg,arg5) __API_DR_BEGIN(msg,arg6) __API_DR_BEGIN(msg,arg7) __API_DR_BEGIN(msg,arg8) __API_DR_BEGIN(msg,arg9) __API_DR_BEGIN(msg,arg10) __API_DR_BEGIN(msg,arg11) __API_DR_BEGIN(msg,arg12) __API_DR_BEGIN(msg,arg13) __API_DR_BEGIN(msg,arg14) __API_DR_BEGIN(msg,arg15) + #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,NAME,...) NAME + + + +#define __API_O(msg,x) __attribute__((availability(__API_OBSOLETED_PLATFORM_##x,message=msg))) + + #define __API_OBSOLETED_MSG0(msg,arg0) __API_O(msg,arg0) + #define __API_OBSOLETED_MSG1(msg,arg0,arg1) __API_O(msg,arg0) __API_O(msg,arg1) + #define __API_OBSOLETED_MSG2(msg,arg0,arg1,arg2) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) + #define __API_OBSOLETED_MSG3(msg,arg0,arg1,arg2,arg3) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) + #define __API_OBSOLETED_MSG4(msg,arg0,arg1,arg2,arg3,arg4) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) + #define __API_OBSOLETED_MSG5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) + #define __API_OBSOLETED_MSG6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) __API_O(msg,arg6) + #define __API_OBSOLETED_MSG7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) __API_O(msg,arg6) __API_O(msg,arg7) + #define __API_OBSOLETED_MSG8(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) __API_O(msg,arg6) __API_O(msg,arg7) __API_O(msg,arg8) + #define __API_OBSOLETED_MSG9(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) __API_O(msg,arg6) __API_O(msg,arg7) __API_O(msg,arg8) __API_O(msg,arg9) + #define __API_OBSOLETED_MSG10(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) __API_O(msg,arg6) __API_O(msg,arg7) __API_O(msg,arg8) __API_O(msg,arg9) __API_O(msg,arg10) + #define __API_OBSOLETED_MSG11(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) __API_O(msg,arg6) __API_O(msg,arg7) __API_O(msg,arg8) __API_O(msg,arg9) __API_O(msg,arg10) __API_O(msg,arg11) + #define __API_OBSOLETED_MSG12(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) __API_O(msg,arg6) __API_O(msg,arg7) __API_O(msg,arg8) __API_O(msg,arg9) __API_O(msg,arg10) __API_O(msg,arg11) __API_O(msg,arg12) + #define __API_OBSOLETED_MSG13(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) __API_O(msg,arg6) __API_O(msg,arg7) __API_O(msg,arg8) __API_O(msg,arg9) __API_O(msg,arg10) __API_O(msg,arg11) __API_O(msg,arg12) __API_O(msg,arg13) + #define __API_OBSOLETED_MSG14(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) __API_O(msg,arg6) __API_O(msg,arg7) __API_O(msg,arg8) __API_O(msg,arg9) __API_O(msg,arg10) __API_O(msg,arg11) __API_O(msg,arg12) __API_O(msg,arg13) __API_O(msg,arg14) + #define __API_OBSOLETED_MSG15(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_O(msg,arg0) __API_O(msg,arg1) __API_O(msg,arg2) __API_O(msg,arg3) __API_O(msg,arg4) __API_O(msg,arg5) __API_O(msg,arg6) __API_O(msg,arg7) __API_O(msg,arg8) __API_O(msg,arg9) __API_O(msg,arg10) __API_O(msg,arg11) __API_O(msg,arg12) __API_O(msg,arg13) __API_O(msg,arg14) __API_O(msg,arg15) + #define __API_OBSOLETED_MSG_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,NAME,...) NAME + +#define __API_O_BEGIN(msg, x, y) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_OBSOLETED_PLATFORM_##x,message=msg))), apply_to = __API_APPLY_TO))) + + #define __API_OBSOLETED_BEGIN0(msg,arg0) __API_O_BEGIN(msg,arg0) + #define __API_OBSOLETED_BEGIN1(msg,arg0,arg1) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) + #define __API_OBSOLETED_BEGIN2(msg,arg0,arg1,arg2) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) + #define __API_OBSOLETED_BEGIN3(msg,arg0,arg1,arg2,arg3) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) + #define __API_OBSOLETED_BEGIN4(msg,arg0,arg1,arg2,arg3,arg4) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) + #define __API_OBSOLETED_BEGIN5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) + #define __API_OBSOLETED_BEGIN6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) __API_O_BEGIN(msg,arg6) + #define __API_OBSOLETED_BEGIN7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) __API_O_BEGIN(msg,arg6) __API_O_BEGIN(msg,arg7) + #define __API_OBSOLETED_BEGIN8(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) __API_O_BEGIN(msg,arg6) __API_O_BEGIN(msg,arg7) __API_O_BEGIN(msg,arg8) + #define __API_OBSOLETED_BEGIN9(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) __API_O_BEGIN(msg,arg6) __API_O_BEGIN(msg,arg7) __API_O_BEGIN(msg,arg8) __API_O_BEGIN(msg,arg9) + #define __API_OBSOLETED_BEGIN10(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) __API_O_BEGIN(msg,arg6) __API_O_BEGIN(msg,arg7) __API_O_BEGIN(msg,arg8) __API_O_BEGIN(msg,arg9) __API_O_BEGIN(msg,arg10) + #define __API_OBSOLETED_BEGIN11(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) __API_O_BEGIN(msg,arg6) __API_O_BEGIN(msg,arg7) __API_O_BEGIN(msg,arg8) __API_O_BEGIN(msg,arg9) __API_O_BEGIN(msg,arg10) __API_O_BEGIN(msg,arg11) + #define __API_OBSOLETED_BEGIN12(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) __API_O_BEGIN(msg,arg6) __API_O_BEGIN(msg,arg7) __API_O_BEGIN(msg,arg8) __API_O_BEGIN(msg,arg9) __API_O_BEGIN(msg,arg10) __API_O_BEGIN(msg,arg11) __API_O_BEGIN(msg,arg12) + #define __API_OBSOLETED_BEGIN13(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) __API_O_BEGIN(msg,arg6) __API_O_BEGIN(msg,arg7) __API_O_BEGIN(msg,arg8) __API_O_BEGIN(msg,arg9) __API_O_BEGIN(msg,arg10) __API_O_BEGIN(msg,arg11) __API_O_BEGIN(msg,arg12) __API_O_BEGIN(msg,arg13) + #define __API_OBSOLETED_BEGIN14(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) __API_O_BEGIN(msg,arg6) __API_O_BEGIN(msg,arg7) __API_O_BEGIN(msg,arg8) __API_O_BEGIN(msg,arg9) __API_O_BEGIN(msg,arg10) __API_O_BEGIN(msg,arg11) __API_O_BEGIN(msg,arg12) __API_O_BEGIN(msg,arg13) __API_O_BEGIN(msg,arg14) + #define __API_OBSOLETED_BEGIN15(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_O_BEGIN(msg,arg0) __API_O_BEGIN(msg,arg1) __API_O_BEGIN(msg,arg2) __API_O_BEGIN(msg,arg3) __API_O_BEGIN(msg,arg4) __API_O_BEGIN(msg,arg5) __API_O_BEGIN(msg,arg6) __API_O_BEGIN(msg,arg7) __API_O_BEGIN(msg,arg8) __API_O_BEGIN(msg,arg9) __API_O_BEGIN(msg,arg10) __API_O_BEGIN(msg,arg11) __API_O_BEGIN(msg,arg12) __API_O_BEGIN(msg,arg13) __API_O_BEGIN(msg,arg14) __API_O_BEGIN(msg,arg15) + #define __API_OBSOLETED_BEGIN_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,NAME,...) NAME + +#if __has_feature(attribute_availability_with_replacement) + #define __API_OR(rep,x) __attribute__((availability(__API_OBSOLETED_PLATFORM_##x,replacement=rep))) +#else + #define __API_OR(rep,x) __attribute__((availability(__API_OBSOLETED_PLATFORM_##x))) +#endif + + #define __API_OBSOLETED_REP0(msg,arg0) __API_OR(msg,arg0) + #define __API_OBSOLETED_REP1(msg,arg0,arg1) __API_OR(msg,arg0) __API_OR(msg,arg1) + #define __API_OBSOLETED_REP2(msg,arg0,arg1,arg2) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) + #define __API_OBSOLETED_REP3(msg,arg0,arg1,arg2,arg3) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) + #define __API_OBSOLETED_REP4(msg,arg0,arg1,arg2,arg3,arg4) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) + #define __API_OBSOLETED_REP5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) + #define __API_OBSOLETED_REP6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) __API_OR(msg,arg6) + #define __API_OBSOLETED_REP7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) __API_OR(msg,arg6) __API_OR(msg,arg7) + #define __API_OBSOLETED_REP8(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) __API_OR(msg,arg6) __API_OR(msg,arg7) __API_OR(msg,arg8) + #define __API_OBSOLETED_REP9(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) __API_OR(msg,arg6) __API_OR(msg,arg7) __API_OR(msg,arg8) __API_OR(msg,arg9) + #define __API_OBSOLETED_REP10(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) __API_OR(msg,arg6) __API_OR(msg,arg7) __API_OR(msg,arg8) __API_OR(msg,arg9) __API_OR(msg,arg10) + #define __API_OBSOLETED_REP11(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) __API_OR(msg,arg6) __API_OR(msg,arg7) __API_OR(msg,arg8) __API_OR(msg,arg9) __API_OR(msg,arg10) __API_OR(msg,arg11) + #define __API_OBSOLETED_REP12(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) __API_OR(msg,arg6) __API_OR(msg,arg7) __API_OR(msg,arg8) __API_OR(msg,arg9) __API_OR(msg,arg10) __API_OR(msg,arg11) __API_OR(msg,arg12) + #define __API_OBSOLETED_REP13(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) __API_OR(msg,arg6) __API_OR(msg,arg7) __API_OR(msg,arg8) __API_OR(msg,arg9) __API_OR(msg,arg10) __API_OR(msg,arg11) __API_OR(msg,arg12) __API_OR(msg,arg13) + #define __API_OBSOLETED_REP14(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) __API_OR(msg,arg6) __API_OR(msg,arg7) __API_OR(msg,arg8) __API_OR(msg,arg9) __API_OR(msg,arg10) __API_OR(msg,arg11) __API_OR(msg,arg12) __API_OR(msg,arg13) __API_OR(msg,arg14) + #define __API_OBSOLETED_REP15(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_OR(msg,arg0) __API_OR(msg,arg1) __API_OR(msg,arg2) __API_OR(msg,arg3) __API_OR(msg,arg4) __API_OR(msg,arg5) __API_OR(msg,arg6) __API_OR(msg,arg7) __API_OR(msg,arg8) __API_OR(msg,arg9) __API_OR(msg,arg10) __API_OR(msg,arg11) __API_OR(msg,arg12) __API_OR(msg,arg13) __API_OR(msg,arg14) __API_OR(msg,arg15) + #define __API_OBSOLETED_REP_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,NAME,...) NAME + +#if __has_feature(attribute_availability_with_replacement) + #define __API_OR_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_OBSOLETED_PLATFORM_##x,replacement=rep))), apply_to = __API_APPLY_TO))) +#else + #define __API_OR_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_OBSOLETED_PLATFORM_##x))), apply_to = __API_APPLY_TO))) +#endif + + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN0(msg,arg0) __API_R_BEGIN(msg,arg0) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN1(msg,arg0,arg1) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN2(msg,arg0,arg1,arg2) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN3(msg,arg0,arg1,arg2,arg3) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN4(msg,arg0,arg1,arg2,arg3,arg4) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN5(msg,arg0,arg1,arg2,arg3,arg4,arg5) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN6(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN7(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN8(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) __API_R_BEGIN(msg,arg8) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN9(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) __API_R_BEGIN(msg,arg8) __API_R_BEGIN(msg,arg9) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN10(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) __API_R_BEGIN(msg,arg8) __API_R_BEGIN(msg,arg9) __API_R_BEGIN(msg,arg10) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN11(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) __API_R_BEGIN(msg,arg8) __API_R_BEGIN(msg,arg9) __API_R_BEGIN(msg,arg10) __API_R_BEGIN(msg,arg11) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN12(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) __API_R_BEGIN(msg,arg8) __API_R_BEGIN(msg,arg9) __API_R_BEGIN(msg,arg10) __API_R_BEGIN(msg,arg11) __API_R_BEGIN(msg,arg12) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN13(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) __API_R_BEGIN(msg,arg8) __API_R_BEGIN(msg,arg9) __API_R_BEGIN(msg,arg10) __API_R_BEGIN(msg,arg11) __API_R_BEGIN(msg,arg12) __API_R_BEGIN(msg,arg13) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN14(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) __API_R_BEGIN(msg,arg8) __API_R_BEGIN(msg,arg9) __API_R_BEGIN(msg,arg10) __API_R_BEGIN(msg,arg11) __API_R_BEGIN(msg,arg12) __API_R_BEGIN(msg,arg13) __API_R_BEGIN(msg,arg14) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN15(msg,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_R_BEGIN(msg,arg0) __API_R_BEGIN(msg,arg1) __API_R_BEGIN(msg,arg2) __API_R_BEGIN(msg,arg3) __API_R_BEGIN(msg,arg4) __API_R_BEGIN(msg,arg5) __API_R_BEGIN(msg,arg6) __API_R_BEGIN(msg,arg7) __API_R_BEGIN(msg,arg8) __API_R_BEGIN(msg,arg9) __API_R_BEGIN(msg,arg10) __API_R_BEGIN(msg,arg11) __API_R_BEGIN(msg,arg12) __API_R_BEGIN(msg,arg13) __API_R_BEGIN(msg,arg14) __API_R_BEGIN(msg,arg15) + #define __API_OBSOLETED_WITH_REPLACEMENT_BEGIN_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,NAME,...) NAME /* * API Unavailability @@ -336,7 +469,14 @@ #define __API_UNAVAILABLE6(arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) #define __API_UNAVAILABLE7(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) __API_U(arg7) #define __API_UNAVAILABLE8(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) __API_U(arg7) __API_U(arg8) - #define __API_UNAVAILABLE_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME + #define __API_UNAVAILABLE9(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) __API_U(arg7) __API_U(arg8) __API_U(arg9) + #define __API_UNAVAILABLE10(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) __API_U(arg7) __API_U(arg8) __API_U(arg9) __API_U(arg10) + #define __API_UNAVAILABLE11(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) __API_U(arg7) __API_U(arg8) __API_U(arg9) __API_U(arg10) __API_U(arg11) + #define __API_UNAVAILABLE12(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) __API_U(arg7) __API_U(arg8) __API_U(arg9) __API_U(arg10) __API_U(arg11) __API_U(arg12) + #define __API_UNAVAILABLE13(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) __API_U(arg7) __API_U(arg8) __API_U(arg9) __API_U(arg10) __API_U(arg11) __API_U(arg12) __API_U(arg13) + #define __API_UNAVAILABLE14(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) __API_U(arg7) __API_U(arg8) __API_U(arg9) __API_U(arg10) __API_U(arg11) __API_U(arg12) __API_U(arg13) __API_U(arg14) + #define __API_UNAVAILABLE15(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_U(arg0) __API_U(arg1) __API_U(arg2) __API_U(arg3) __API_U(arg4) __API_U(arg5) __API_U(arg6) __API_U(arg7) __API_U(arg8) __API_U(arg9) __API_U(arg10) __API_U(arg11) __API_U(arg12) __API_U(arg13) __API_U(arg14) __API_U(arg15) + #define __API_UNAVAILABLE_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,NAME,...) NAME #define __API_U_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO))) @@ -349,7 +489,14 @@ #define __API_UNAVAILABLE_BEGIN6(arg0,arg1,arg2,arg3,arg4,arg5,arg6) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) #define __API_UNAVAILABLE_BEGIN7(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) __API_U_BEGIN(arg7) #define __API_UNAVAILABLE_BEGIN8(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) __API_U_BEGIN(arg7) __API_U_BEGIN(arg8) - #define __API_UNAVAILABLE_BEGIN_GET_MACRO(_0,_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME + #define __API_UNAVAILABLE_BEGIN9(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) __API_U_BEGIN(arg7) __API_U_BEGIN(arg8) __API_U_BEGIN(arg9) + #define __API_UNAVAILABLE_BEGIN10(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) __API_U_BEGIN(arg7) __API_U_BEGIN(arg8) __API_U_BEGIN(arg9) __API_U_BEGIN(arg10) + #define __API_UNAVAILABLE_BEGIN11(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) __API_U_BEGIN(arg7) __API_U_BEGIN(arg8) __API_U_BEGIN(arg9) __API_U_BEGIN(arg10) __API_U_BEGIN(arg11) + #define __API_UNAVAILABLE_BEGIN12(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) __API_U_BEGIN(arg7) __API_U_BEGIN(arg8) __API_U_BEGIN(arg9) __API_U_BEGIN(arg10) __API_U_BEGIN(arg11) __API_U_BEGIN(arg12) + #define __API_UNAVAILABLE_BEGIN13(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) __API_U_BEGIN(arg7) __API_U_BEGIN(arg8) __API_U_BEGIN(arg9) __API_U_BEGIN(arg10) __API_U_BEGIN(arg11) __API_U_BEGIN(arg12) __API_U_BEGIN(arg13) + #define __API_UNAVAILABLE_BEGIN14(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) __API_U_BEGIN(arg7) __API_U_BEGIN(arg8) __API_U_BEGIN(arg9) __API_U_BEGIN(arg10) __API_U_BEGIN(arg11) __API_U_BEGIN(arg12) __API_U_BEGIN(arg13) __API_U_BEGIN(arg14) + #define __API_UNAVAILABLE_BEGIN15(arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15) __API_U_BEGIN(arg0) __API_U_BEGIN(arg1) __API_U_BEGIN(arg2) __API_U_BEGIN(arg3) __API_U_BEGIN(arg4) __API_U_BEGIN(arg5) __API_U_BEGIN(arg6) __API_U_BEGIN(arg7) __API_U_BEGIN(arg8) __API_U_BEGIN(arg9) __API_U_BEGIN(arg10) __API_U_BEGIN(arg11) __API_U_BEGIN(arg12) __API_U_BEGIN(arg13) __API_U_BEGIN(arg14) __API_U_BEGIN(arg15) + #define __API_UNAVAILABLE_BEGIN_GET_MACRO_93585900(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,NAME,...) NAME #endif /* __has_attribute(availability) */ #endif /* #if defined(__has_feature) && defined(__has_attribute) */ @@ -375,3 +522,15 @@ #endif #endif /* __AVAILABILITY_INTERNAL__ */ + + +#ifndef __OPEN_SOURCE__ +// This is explicitly outside the header guard +#ifndef __AVAILABILITY_VERSIONS_VERSION_HASH +#define __AVAILABILITY_VERSIONS_VERSION_HASH 93585900U +#define __AVAILABILITY_VERSIONS_VERSION_STRING "Local" +#define __AVAILABILITY_FILE "AvailabilityInternal.h" +#elif __AVAILABILITY_VERSIONS_VERSION_HASH != 93585900U +#pragma GCC error "Already found AvailabilityVersions version " __AVAILABILITY_FILE " from " __AVAILABILITY_VERSIONS_VERSION_STRING ", which is incompatible with AvailabilityInternal.h from Local. Mixing and matching Availability from different SDKs is not supported" +#endif /* __AVAILABILITY_VERSIONS_VERSION_HASH */ +#endif /* __OPEN_SOURCE__ */ diff --git a/lib/libc/include/any-macos-any/AvailabilityVersions.h b/lib/libc/include/any-macos-any/AvailabilityVersions.h index bdcc3e1198..b93b1d05b2 100644 --- a/lib/libc/include/any-macos-any/AvailabilityVersions.h +++ b/lib/libc/include/any-macos-any/AvailabilityVersions.h @@ -80,15 +80,21 @@ #define __MAC_13_4 130400 #define __MAC_13_5 130500 #define __MAC_13_6 130600 +#define __MAC_13_7 130700 #define __MAC_14_0 140000 #define __MAC_14_1 140100 #define __MAC_14_2 140200 #define __MAC_14_3 140300 #define __MAC_14_4 140400 #define __MAC_14_5 140500 +#define __MAC_14_6 140600 +#define __MAC_14_7 140700 #define __MAC_15_0 150000 #define __MAC_15_1 150100 #define __MAC_15_2 150200 +#define __MAC_15_3 150300 +#define __MAC_15_4 150400 +#define __MAC_15_5 150500 /* __MAC__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */ #define __IPHONE_2_0 20000 @@ -171,9 +177,14 @@ #define __IPHONE_17_3 170300 #define __IPHONE_17_4 170400 #define __IPHONE_17_5 170500 +#define __IPHONE_17_6 170600 +#define __IPHONE_17_7 170700 #define __IPHONE_18_0 180000 #define __IPHONE_18_1 180100 #define __IPHONE_18_2 180200 +#define __IPHONE_18_3 180300 +#define __IPHONE_18_4 180400 +#define __IPHONE_18_5 180500 /* __IPHONE__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */ #define __WATCHOS_1_0 10000 @@ -223,9 +234,14 @@ #define __WATCHOS_10_3 100300 #define __WATCHOS_10_4 100400 #define __WATCHOS_10_5 100500 +#define __WATCHOS_10_6 100600 +#define __WATCHOS_10_7 100700 #define __WATCHOS_11_0 110000 #define __WATCHOS_11_1 110100 #define __WATCHOS_11_2 110200 +#define __WATCHOS_11_3 110300 +#define __WATCHOS_11_4 110400 +#define __WATCHOS_11_5 110500 /* __WATCHOS__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */ #define __TVOS_9_0 90000 @@ -276,9 +292,13 @@ #define __TVOS_17_3 170300 #define __TVOS_17_4 170400 #define __TVOS_17_5 170500 +#define __TVOS_17_6 170600 #define __TVOS_18_0 180000 #define __TVOS_18_1 180100 #define __TVOS_18_2 180200 +#define __TVOS_18_3 180300 +#define __TVOS_18_4 180400 +#define __TVOS_18_5 180500 /* __TVOS__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */ #define __BRIDGEOS_2_0 20000 @@ -308,9 +328,13 @@ #define __BRIDGEOS_8_3 80300 #define __BRIDGEOS_8_4 80400 #define __BRIDGEOS_8_5 80500 +#define __BRIDGEOS_8_6 80600 #define __BRIDGEOS_9_0 90000 #define __BRIDGEOS_9_1 90100 #define __BRIDGEOS_9_2 90200 +#define __BRIDGEOS_9_3 90300 +#define __BRIDGEOS_9_4 90400 +#define __BRIDGEOS_9_5 90500 #define __DRIVERKIT_19_0 190000 @@ -326,21 +350,31 @@ #define __DRIVERKIT_23_3 230300 #define __DRIVERKIT_23_4 230400 #define __DRIVERKIT_23_5 230500 +#define __DRIVERKIT_23_6 230600 #define __DRIVERKIT_24_0 240000 #define __DRIVERKIT_24_1 240100 #define __DRIVERKIT_24_2 240200 +#define __DRIVERKIT_24_3 240300 +#define __DRIVERKIT_24_4 240400 +#define __DRIVERKIT_24_5 240500 /* __DRIVERKIT__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */ #define __VISIONOS_1_0 10000 #define __VISIONOS_1_1 10100 #define __VISIONOS_1_2 10200 +#define __VISIONOS_1_3 10300 #define __VISIONOS_2_0 20000 #define __VISIONOS_2_1 20100 #define __VISIONOS_2_2 20200 +#define __VISIONOS_2_3 20300 +#define __VISIONOS_2_4 20400 +#define __VISIONOS_2_5 20500 /* __VISIONOS__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */ +/* __KERNELKIT__NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */ + #ifndef __OPEN_SOURCE__ @@ -408,17 +442,33 @@ #define MAC_OS_VERSION_13_4 __MAC_13_4 #define MAC_OS_VERSION_13_5 __MAC_13_5 #define MAC_OS_VERSION_13_6 __MAC_13_6 +#define MAC_OS_VERSION_13_7 __MAC_13_7 #define MAC_OS_VERSION_14_0 __MAC_14_0 #define MAC_OS_VERSION_14_1 __MAC_14_1 #define MAC_OS_VERSION_14_2 __MAC_14_2 #define MAC_OS_VERSION_14_3 __MAC_14_3 #define MAC_OS_VERSION_14_4 __MAC_14_4 #define MAC_OS_VERSION_14_5 __MAC_14_5 +#define MAC_OS_VERSION_14_6 __MAC_14_6 +#define MAC_OS_VERSION_14_7 __MAC_14_7 #define MAC_OS_VERSION_15_0 __MAC_15_0 #define MAC_OS_VERSION_15_1 __MAC_15_1 #define MAC_OS_VERSION_15_2 __MAC_15_2 +#define MAC_OS_VERSION_15_3 __MAC_15_3 +#define MAC_OS_VERSION_15_4 __MAC_15_4 +#define MAC_OS_VERSION_15_5 __MAC_15_5 #endif /* #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || defined(_DARWIN_C_SOURCE) */ #endif /* __AVAILABILITY_VERSIONS__ */ +#ifndef __OPEN_SOURCE__ +// This is explicitly outside the header guard +#ifndef __AVAILABILITY_VERSIONS_VERSION_HASH +#define __AVAILABILITY_VERSIONS_VERSION_HASH 93585900U +#define __AVAILABILITY_VERSIONS_VERSION_STRING "Local" +#define __AVAILABILITY_FILE "AvailabilityVersions.h" +#elif __AVAILABILITY_VERSIONS_VERSION_HASH != 93585900U +#pragma GCC error "Already found AvailabilityVersions version " __AVAILABILITY_FILE " from " __AVAILABILITY_VERSIONS_VERSION_STRING ", which is incompatible with AvailabilityVersions.h from Local. Mixing and matching Availability from different SDKs is not supported" +#endif /* __AVAILABILITY_VERSIONS_VERSION_HASH */ +#endif /* __OPEN_SOURCE__ */ diff --git a/lib/libc/include/any-macos-any/Block.h b/lib/libc/include/any-macos-any/Block.h index 153871c96b..14f8a5bc42 100644 --- a/lib/libc/include/any-macos-any/Block.h +++ b/lib/libc/include/any-macos-any/Block.h @@ -18,12 +18,6 @@ # endif #endif -#if __has_include() -#include -#else -#define __OSX_AVAILABLE_STARTING(m,i) -#endif - #include #include @@ -34,28 +28,20 @@ extern "C" { // Create a heap based copy of a Block or simply add a reference to an existing one. // This must be paired with Block_release to recover memory, even when running // under Objective-C Garbage Collection. -BLOCK_EXPORT void *__single _Block_copy(const void *__single aBlock) - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); +BLOCK_EXPORT void *__single _Block_copy(const void *__single aBlock); // Lose the reference, and if heap based and last reference, recover the memory -BLOCK_EXPORT void _Block_release(const void *__single aBlock) - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); - +BLOCK_EXPORT void _Block_release(const void *__single aBlock); // Used by the compiler. Do not call this function yourself. -BLOCK_EXPORT void _Block_object_assign(void *, const void *, const int) - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); +BLOCK_EXPORT void _Block_object_assign(void *, const void *, const int); // Used by the compiler. Do not call this function yourself. -BLOCK_EXPORT void _Block_object_dispose(const void *, const int) - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); +BLOCK_EXPORT void _Block_object_dispose(const void *, const int); // Used by the compiler. Do not use these variables yourself. -BLOCK_EXPORT void * _NSConcreteGlobalBlock[32] - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); -BLOCK_EXPORT void * _NSConcreteStackBlock[32] - __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); - +BLOCK_EXPORT void * _NSConcreteGlobalBlock[32]; +BLOCK_EXPORT void * _NSConcreteStackBlock[32]; #if __cplusplus } diff --git a/lib/libc/include/any-macos-any/TargetConditionals.h b/lib/libc/include/any-macos-any/TargetConditionals.h index 7b661b0505..8df6436371 100644 --- a/lib/libc/include/any-macos-any/TargetConditionals.h +++ b/lib/libc/include/any-macos-any/TargetConditionals.h @@ -175,7 +175,7 @@ /* "-target=arm64e-apple-xros1.0[-simulator]" */ - #if __is_target_vendor(apple) && __is_target_os(xros) + #if __is_target_vendor(apple) && __is_target_os(xros) && (!__is_target_environment(exclavekit) && !__is_target_environment(exclavecore)) #define TARGET_OS_MAC 1 #define TARGET_OS_IPHONE 1 diff --git a/lib/libc/include/any-macos-any/___wctype.h b/lib/libc/include/any-macos-any/___wctype.h index e700e8e088..6c81b445d9 100644 --- a/lib/libc/include/any-macos-any/___wctype.h +++ b/lib/libc/include/any-macos-any/___wctype.h @@ -56,11 +56,14 @@ #define ___WCTYPE_H_ #include +#include <_bounds.h> #include <_types.h> #include #include <_types/_wctype_t.h> +_LIBC_SINGLE_BY_DEFAULT() + #ifndef WEOF #define WEOF __DARWIN_WEOF #endif diff --git a/lib/libc/include/any-macos-any/__xlocale.h b/lib/libc/include/any-macos-any/__xlocale.h index 900e714172..9156efd80b 100644 --- a/lib/libc/include/any-macos-any/__xlocale.h +++ b/lib/libc/include/any-macos-any/__xlocale.h @@ -25,10 +25,11 @@ #define __XLOCALE_H_ #include +#include <_bounds.h> #include <_mb_cur_max.h> +#include <_types/_locale_t.h> -struct _xlocale; /* forward reference */ -typedef struct _xlocale * locale_t; +_LIBC_SINGLE_BY_DEFAULT() __BEGIN_DECLS int ___mb_cur_max_l(locale_t); diff --git a/lib/libc/include/any-macos-any/_abort.h b/lib/libc/include/any-macos-any/_abort.h index 2865ed80eb..f4f916deb4 100644 --- a/lib/libc/include/any-macos-any/_abort.h +++ b/lib/libc/include/any-macos-any/_abort.h @@ -25,6 +25,9 @@ #define __ABORT_H_ #include +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() __BEGIN_DECLS void abort(void) __cold __dead2; diff --git a/lib/libc/include/any-macos-any/_assert.h b/lib/libc/include/any-macos-any/_assert.h index 96d886f87f..7812efb7e8 100644 --- a/lib/libc/include/any-macos-any/_assert.h +++ b/lib/libc/include/any-macos-any/_assert.h @@ -43,6 +43,9 @@ #define __ASSERT_H_ #include +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() #ifndef __GNUC__ @@ -69,7 +72,7 @@ __END_DECLS #else /* 8462256: modified __assert_rtn() replaces deprecated __eprintf() */ #define __assert(e, file, line) \ - __assert_rtn ((const char *)-1L, file, line, e) + __assert_rtn (__unsafe_forge_null_terminated(const char *, -1L), file, line, e) #endif #endif /* __GNUC__ */ diff --git a/lib/libc/include/any-macos-any/_bounds.h b/lib/libc/include/any-macos-any/_bounds.h new file mode 100644 index 0000000000..eb3f70a68a --- /dev/null +++ b/lib/libc/include/any-macos-any/_bounds.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2024 Apple Inc. All rights reserved. + * + * @APPLE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this + * file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_LICENSE_HEADER_END@ + */ + +#ifndef _LIBC_BOUNDS_H_ +#define _LIBC_BOUNDS_H_ + +#include + +#ifdef __LIBC_STAGED_BOUNDS_SAFETY_ATTRIBUTES /* compiler-defined */ + +#define _LIBC_COUNT(x) __counted_by(x) +#define _LIBC_COUNT_OR_NULL(x) __counted_by_or_null(x) +#define _LIBC_SIZE(x) __sized_by(x) +#define _LIBC_SIZE_OR_NULL(x) __sized_by_or_null(x) +#define _LIBC_ENDED_BY(x) __ended_by(x) +#define _LIBC_SINGLE __single +#define _LIBC_UNSAFE_INDEXABLE __unsafe_indexable +#define _LIBC_CSTR __null_terminated +#define _LIBC_NULL_TERMINATED __null_terminated +#define _LIBC_FLEX_COUNT(FIELD, INTCOUNT) __counted_by(FIELD) + +#define _LIBC_SINGLE_BY_DEFAULT() __ptrcheck_abi_assume_single() +#define _LIBC_PTRCHECK_REPLACED(R) __ptrcheck_unavailable_r(R) + +#else /* _LIBC_ANNOTATE_BOUNDS */ + +#define _LIBC_COUNT(x) +#define _LIBC_COUNT_OR_NULL(x) +#define _LIBC_SIZE(x) +#define _LIBC_SIZE_OR_NULL(x) +#define _LIBC_ENDED_BY(x) +#define _LIBC_SINGLE +#define _LIBC_UNSAFE_INDEXABLE +#define _LIBC_CSTR +#define _LIBC_NULL_TERMINATED +#define _LIBC_FLEX_COUNT(FIELD, INTCOUNT) (INTCOUNT) + +#define _LIBC_SINGLE_BY_DEFAULT() +#define _LIBC_PTRCHECK_REPLACED(R) + +#endif /* _LIBC_ANNOTATE_BOUNDS */ + +#endif /* _LIBC_BOUNDS_H_ */ diff --git a/lib/libc/include/any-macos-any/_ctermid.h b/lib/libc/include/any-macos-any/_ctermid.h index 5bbd721a0d..fc0ec073b2 100644 --- a/lib/libc/include/any-macos-any/_ctermid.h +++ b/lib/libc/include/any-macos-any/_ctermid.h @@ -25,10 +25,15 @@ #define _CTERMID_H_ #include +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() __BEGIN_DECLS -char *ctermid(char *); +#define L_ctermid 1024 /* size for ctermid(); PATH_MAX */ + +char *_LIBC_CSTR ctermid(char *_LIBC_COUNT_OR_NULL(L_ctermid)); __END_DECLS diff --git a/lib/libc/include/any-macos-any/_ctype.h b/lib/libc/include/any-macos-any/_ctype.h index cbee2fb58d..8f48974e72 100644 --- a/lib/libc/include/any-macos-any/_ctype.h +++ b/lib/libc/include/any-macos-any/_ctype.h @@ -68,8 +68,11 @@ #define __CTYPE_H_ #include +#include <_bounds.h> #include +_LIBC_SINGLE_BY_DEFAULT() + #define _CTYPE_A 0x00000100L /* Alpha */ #define _CTYPE_C 0x00000200L /* Control */ #define _CTYPE_D 0x00000400L /* Digit */ diff --git a/lib/libc/include/any-macos-any/_inttypes.h b/lib/libc/include/any-macos-any/_inttypes.h index 13ca56a23b..017177c796 100644 --- a/lib/libc/include/any-macos-any/_inttypes.h +++ b/lib/libc/include/any-macos-any/_inttypes.h @@ -221,6 +221,7 @@ # define SCNxMAX __SCN_MAX_LENGTH_MODIFIER__ "x" #include +#include <_bounds.h> #include #include <_types.h> @@ -230,6 +231,8 @@ __BEGIN_DECLS +_LIBC_SINGLE_BY_DEFAULT() + /* 7.8.2.1 */ __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) extern intmax_t @@ -249,26 +252,26 @@ imaxdiv(intmax_t __numer, intmax_t __denom); __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) extern intmax_t strtoimax(const char * __restrict __nptr, - char ** __restrict __endptr, + char *_LIBC_CSTR * __restrict __endptr, int __base); __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) extern uintmax_t strtoumax(const char * __restrict __nptr, - char ** __restrict __endptr, + char *_LIBC_CSTR * __restrict __endptr, int __base); /* 7.8.2.4 */ __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) extern intmax_t wcstoimax(const wchar_t * __restrict __nptr, - wchar_t ** __restrict __endptr, + wchar_t *_LIBC_CSTR * __restrict __endptr, int __base); __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0) extern uintmax_t wcstoumax(const wchar_t * __restrict __nptr, - wchar_t ** __restrict __endptr, + wchar_t *_LIBC_CSTR * __restrict __endptr, int __base); /* Poison the following routines if -fshort-wchar is set */ diff --git a/lib/libc/include/any-macos-any/_langinfo.h b/lib/libc/include/any-macos-any/_langinfo.h index e04ddb6381..7577ddb4c5 100644 --- a/lib/libc/include/any-macos-any/_langinfo.h +++ b/lib/libc/include/any-macos-any/_langinfo.h @@ -29,9 +29,12 @@ #ifndef _LANGINFO_H_ #define _LANGINFO_H_ +#include <_bounds.h> #include <_types.h> #include <_types/_nl_item.h> +_LIBC_SINGLE_BY_DEFAULT() + #define CODESET 0 /* codeset name */ #define D_T_FMT 1 /* string for formatting date and time */ #define D_FMT 2 /* date format string */ @@ -110,7 +113,7 @@ #endif __BEGIN_DECLS -char *nl_langinfo(nl_item); +char *_LIBC_CSTR nl_langinfo(nl_item); __END_DECLS #endif /* !_LANGINFO_H_ */ diff --git a/lib/libc/include/any-macos-any/_locale.h b/lib/libc/include/any-macos-any/_locale.h index b87458ddf5..540d16b070 100644 --- a/lib/libc/include/any-macos-any/_locale.h +++ b/lib/libc/include/any-macos-any/_locale.h @@ -38,19 +38,22 @@ #define __LOCALE_H_ #include +#include <_bounds.h> #include <_types.h> +_LIBC_SINGLE_BY_DEFAULT() + struct lconv { - char *decimal_point; - char *thousands_sep; - char *grouping; - char *int_curr_symbol; - char *currency_symbol; - char *mon_decimal_point; - char *mon_thousands_sep; - char *mon_grouping; - char *positive_sign; - char *negative_sign; + char *_LIBC_CSTR decimal_point; + char *_LIBC_CSTR thousands_sep; + char *_LIBC_CSTR grouping; + char *_LIBC_CSTR int_curr_symbol; + char *_LIBC_CSTR currency_symbol; + char *_LIBC_CSTR mon_decimal_point; + char *_LIBC_CSTR mon_thousands_sep; + char *_LIBC_CSTR mon_grouping; + char *_LIBC_CSTR positive_sign; + char *_LIBC_CSTR negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; @@ -69,8 +72,33 @@ struct lconv { #include +#define LC_ALL_MASK ( LC_COLLATE_MASK \ + | LC_CTYPE_MASK \ + | LC_MESSAGES_MASK \ + | LC_MONETARY_MASK \ + | LC_NUMERIC_MASK \ + | LC_TIME_MASK ) +#define LC_COLLATE_MASK (1 << 0) +#define LC_CTYPE_MASK (1 << 1) +#define LC_MESSAGES_MASK (1 << 2) +#define LC_MONETARY_MASK (1 << 3) +#define LC_NUMERIC_MASK (1 << 4) +#define LC_TIME_MASK (1 << 5) + +#define _LC_NUM_MASK 6 +#define _LC_LAST_MASK (1 << (_LC_NUM_MASK - 1)) + +#define LC_GLOBAL_LOCALE ((locale_t)-1) +#define LC_C_LOCALE ((locale_t)NULL) + +#include <_types/_locale_t.h> + __BEGIN_DECLS +locale_t duplocale(locale_t); +int freelocale(locale_t); struct lconv *localeconv(void); +locale_t newlocale(int, __const char *, locale_t); +locale_t uselocale(locale_t); __END_DECLS #endif /* __LOCALE_H_ */ diff --git a/lib/libc/include/any-macos-any/_mb_cur_max.h b/lib/libc/include/any-macos-any/_mb_cur_max.h index bb91f9a9e4..7ebfcf6d95 100644 --- a/lib/libc/include/any-macos-any/_mb_cur_max.h +++ b/lib/libc/include/any-macos-any/_mb_cur_max.h @@ -25,6 +25,9 @@ #define __MB_CUR_MAX_H_ #include +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() __BEGIN_DECLS int ___mb_cur_max(void); diff --git a/lib/libc/include/any-macos-any/_monetary.h b/lib/libc/include/any-macos-any/_monetary.h index ca70fe50f7..6970a5531a 100644 --- a/lib/libc/include/any-macos-any/_monetary.h +++ b/lib/libc/include/any-macos-any/_monetary.h @@ -30,12 +30,15 @@ #define _MONETARY_H_ #include +#include <_bounds.h> #include <_types.h> #include #include +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS -ssize_t strfmon(char *, size_t, const char *, ...); +ssize_t strfmon(char *_LIBC_COUNT(__maxsize), size_t __maxsize, const char *, ...); __END_DECLS #endif /* !_MONETARY_H_ */ diff --git a/lib/libc/include/any-macos-any/_printf.h b/lib/libc/include/any-macos-any/_printf.h index 4e9df834ef..97a39b3ea2 100644 --- a/lib/libc/include/any-macos-any/_printf.h +++ b/lib/libc/include/any-macos-any/_printf.h @@ -25,6 +25,9 @@ #define __PRINTF_H_ #include +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() __BEGIN_DECLS diff --git a/lib/libc/include/any-macos-any/_regex.h b/lib/libc/include/any-macos-any/_regex.h index fc7b043ba6..76bd384873 100644 --- a/lib/libc/include/any-macos-any/_regex.h +++ b/lib/libc/include/any-macos-any/_regex.h @@ -94,10 +94,13 @@ #define _REGEX_H_ #define __REGEX_H_ +#include <_bounds.h> #include <_types.h> #include #include +_LIBC_SINGLE_BY_DEFAULT() + /*********/ /* types */ /*********/ @@ -110,7 +113,7 @@ typedef __darwin_off_t regoff_t; typedef struct { int re_magic; size_t re_nsub; /* number of parenthesized subexpressions */ - const char *re_endp; /* end pointer for REG_PEND */ + const char *_LIBC_UNSAFE_INDEXABLE re_endp; /* end pointer for REG_PEND */ struct re_guts *re_g; /* none of your business :-) */ } regex_t; @@ -207,32 +210,32 @@ typedef struct { __BEGIN_DECLS int regcomp(regex_t * __restrict, const char * __restrict, int) __DARWIN_ALIAS(regcomp); -size_t regerror(int, const regex_t * __restrict, char * __restrict, size_t) __cold; +size_t regerror(int, const regex_t * __restrict, char *_LIBC_COUNT(__errbuf_size) __restrict, size_t __errbuf_size) __cold; /* * gcc under c99 mode won't compile "[ __restrict]" by itself. As a workaround, * a dummy argument name is added. */ -int regexec(const regex_t * __restrict, const char * __restrict, size_t, - regmatch_t __pmatch[ __restrict], int); +int regexec(const regex_t * __restrict, const char * __restrict, size_t __nmatch, + regmatch_t __pmatch[ __restrict _LIBC_COUNT(__nmatch)], int); void regfree(regex_t *); #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL /* Darwin extensions */ -int regncomp(regex_t * __restrict, const char * __restrict, size_t, int) +int regncomp(regex_t * __restrict, const char *_LIBC_COUNT(__len) __restrict, size_t __len, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); -int regnexec(const regex_t * __restrict, const char * __restrict, size_t, - size_t, regmatch_t __pmatch[ __restrict], int) +int regnexec(const regex_t * __restrict, const char *_LIBC_COUNT(__len) __restrict, size_t __len, + size_t __nmatch, regmatch_t __pmatch[ __restrict _LIBC_COUNT(__nmatch)], int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); int regwcomp(regex_t * __restrict, const wchar_t * __restrict, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); -int regwexec(const regex_t * __restrict, const wchar_t * __restrict, size_t, - regmatch_t __pmatch[ __restrict], int) +int regwexec(const regex_t * __restrict, const wchar_t * __restrict, size_t __nmatch, + regmatch_t __pmatch[ __restrict _LIBC_COUNT(__nmatch)], int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); -int regwncomp(regex_t * __restrict, const wchar_t * __restrict, size_t, int) +int regwncomp(regex_t * __restrict, const wchar_t * _LIBC_COUNT(__len) __restrict, size_t __len, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); -int regwnexec(const regex_t * __restrict, const wchar_t * __restrict, - size_t, size_t, regmatch_t __pmatch[ __restrict], int) +int regwnexec(const regex_t * __restrict, const wchar_t * _LIBC_COUNT(__len) __restrict, + size_t __len, size_t __nmatch, regmatch_t __pmatch[ __restrict _LIBC_COUNT(__nmatch)], int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0); #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ diff --git a/lib/libc/include/any-macos-any/_stdio.h b/lib/libc/include/any-macos-any/_stdio.h index 78395ca6b8..e8b463566e 100644 --- a/lib/libc/include/any-macos-any/_stdio.h +++ b/lib/libc/include/any-macos-any/_stdio.h @@ -66,6 +66,7 @@ #define _STDIO_H_ #define __STDIO_H_ +#include <_bounds.h> #include #include @@ -80,6 +81,8 @@ #include #include <_printf.h> +_LIBC_SINGLE_BY_DEFAULT() + typedef __darwin_off_t fpos_t; #define _FSTDIO /* Define for new stdio with functions. */ @@ -92,7 +95,7 @@ typedef __darwin_off_t fpos_t; /* stdio buffers */ struct __sbuf { - unsigned char *_base; + unsigned char *_LIBC_COUNT(_size) _base; int _size; }; @@ -126,7 +129,7 @@ struct __sFILEX; * NB: see WARNING above before changing the layout of this structure! */ typedef struct __sFILE { - unsigned char *_p; /* current position in (some) buffer */ + unsigned char *_LIBC_UNSAFE_INDEXABLE _p; /* current position in (some) buffer */ int _r; /* read space left for getc() */ int _w; /* write space left for putc() */ short _flags; /* flags, below; this FILE is free if 0 */ @@ -137,9 +140,9 @@ typedef struct __sFILE { /* operations */ void *_cookie; /* cookie passed to io functions */ int (* _Nullable _close)(void *); - int (* _Nullable _read) (void *, char *, int); + int (* _Nullable _read) (void *, char *_LIBC_COUNT(__n), int __n); fpos_t (* _Nullable _seek) (void *, fpos_t, int); - int (* _Nullable _write)(void *, const char *, int); + int (* _Nullable _write)(void *, const char *_LIBC_COUNT(__n), int __n); /* separate buffer for long sequences of ungetc() */ struct __sbuf _ub; /* ungetc buffer */ @@ -233,7 +236,7 @@ int ferror(FILE *); int fflush(FILE *); int fgetc(FILE *); int fgetpos(FILE * __restrict, fpos_t *); -char *fgets(char * __restrict, int, FILE *); +char *_LIBC_CSTR fgets(char * __restrict _LIBC_COUNT(__size), int __size, FILE *); #if defined(_DARWIN_UNLIMITED_STREAMS) || defined(_DARWIN_C_SOURCE) FILE *fopen(const char * __restrict __filename, const char * __restrict __mode) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(fopen)); #else /* !_DARWIN_UNLIMITED_STREAMS && !_DARWIN_C_SOURCE */ @@ -242,21 +245,21 @@ FILE *fopen(const char * __restrict __filename, const char * __restrict __mode) int fprintf(FILE * __restrict, const char * __restrict, ...) __printflike(2, 3); int fputc(int, FILE *); int fputs(const char * __restrict, FILE * __restrict) __DARWIN_ALIAS(fputs); -size_t fread(void * __restrict __ptr, size_t __size, size_t __nitems, FILE * __restrict __stream); +size_t fread(void * __restrict _LIBC_SIZE(__size * __nitems) __ptr, size_t __size, size_t __nitems, FILE * __restrict __stream); FILE *freopen(const char * __restrict, const char * __restrict, FILE * __restrict) __DARWIN_ALIAS(freopen); int fscanf(FILE * __restrict, const char * __restrict, ...) __scanflike(2, 3); int fseek(FILE *, long, int); int fsetpos(FILE *, const fpos_t *); long ftell(FILE *); -size_t fwrite(const void * __restrict __ptr, size_t __size, size_t __nitems, FILE * __restrict __stream) __DARWIN_ALIAS(fwrite); +size_t fwrite(const void * __restrict _LIBC_SIZE(__size * __nitems) __ptr, size_t __size, size_t __nitems, FILE * __restrict __stream) __DARWIN_ALIAS(fwrite); int getc(FILE *); int getchar(void); #if !defined(_POSIX_C_SOURCE) __deprecated_msg("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of gets(3), it is highly recommended that you use fgets(3) instead.") #endif -char *gets(char *); +char *_LIBC_CSTR gets(char *_LIBC_UNSAFE_INDEXABLE) _LIBC_PTRCHECK_REPLACED(fgets); void perror(const char *) __cold; int putc(int, FILE *); @@ -266,14 +269,15 @@ int remove(const char *); int rename (const char *__old, const char *__new); void rewind(FILE *); int scanf(const char * __restrict, ...) __scanflike(1, 2); -void setbuf(FILE * __restrict, char * __restrict); -int setvbuf(FILE * __restrict, char * __restrict, int, size_t); +void setbuf(FILE * __restrict, char * __restrict _LIBC_COUNT_OR_NULL(BUFSIZ)); +int setvbuf(FILE * __restrict, char * __restrict _LIBC_COUNT_OR_NULL(__size), int, size_t __size); __swift_unavailable("Use snprintf instead.") +_LIBC_PTRCHECK_REPLACED("snprintf") #if !defined(_POSIX_C_SOURCE) __deprecated_msg("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.") #endif -int sprintf(char * __restrict, const char * __restrict, ...) __printflike(2, 3); +int sprintf(char * __restrict _LIBC_UNSAFE_INDEXABLE, const char * __restrict, ...) __printflike(2, 3) _LIBC_PTRCHECK_REPLACED(snprintf); int sscanf(const char * __restrict, const char * __restrict, ...) __scanflike(2, 3); FILE *tmpfile(void); @@ -282,17 +286,18 @@ __swift_unavailable("Use mkstemp(3) instead.") #if !defined(_POSIX_C_SOURCE) __deprecated_msg("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of tmpnam(3), it is highly recommended that you use mkstemp(3) instead.") #endif -char *tmpnam(char *); +char *_LIBC_CSTR tmpnam(char *_LIBC_COUNT(L_tmpnam)); int ungetc(int, FILE *); int vfprintf(FILE * __restrict, const char * __restrict, va_list) __printflike(2, 0); int vprintf(const char * __restrict, va_list) __printflike(1, 0); __swift_unavailable("Use vsnprintf instead.") +_LIBC_PTRCHECK_REPLACED("vsnprintf") #if !defined(_POSIX_C_SOURCE) __deprecated_msg("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use vsnprintf(3) instead.") #endif -int vsprintf(char * __restrict, const char * __restrict, va_list) __printflike(2, 0); +int vsprintf(char * __restrict _LIBC_UNSAFE_INDEXABLE, const char * __restrict, va_list) __printflike(2, 0) _LIBC_PTRCHECK_REPLACED(vsnprintf); __END_DECLS @@ -302,7 +307,6 @@ __END_DECLS */ #if __DARWIN_C_LEVEL >= 198808L -#define L_ctermid 1024 /* size for ctermid(); PATH_MAX */ #include <_ctermid.h> @@ -398,7 +402,7 @@ __swift_unavailable("Use mkstemp(3) instead.") #if !defined(_POSIX_C_SOURCE) __deprecated_msg("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of tempnam(3), it is highly recommended that you use mkstemp(3) instead.") #endif -char *tempnam(const char *__dir, const char *__prefix) __DARWIN_ALIAS(tempnam); +char *_LIBC_CSTR tempnam(const char *__dir, const char *__prefix) __DARWIN_ALIAS(tempnam); __END_DECLS #ifndef lint @@ -428,10 +432,10 @@ __END_DECLS #if __DARWIN_C_LEVEL >= 200112L || defined(_C99_SOURCE) || defined(__cplusplus) __BEGIN_DECLS -int snprintf(char * __restrict __str, size_t __size, const char * __restrict __format, ...) __printflike(3, 4); +int snprintf(char * __restrict _LIBC_COUNT(__size) __str, size_t __size, const char * __restrict __format, ...) __printflike(3, 4); int vfscanf(FILE * __restrict __stream, const char * __restrict __format, va_list) __scanflike(2, 0); int vscanf(const char * __restrict __format, va_list) __scanflike(1, 0); -int vsnprintf(char * __restrict __str, size_t __size, const char * __restrict __format, va_list) __printflike(3, 0); +int vsnprintf(char * __restrict _LIBC_COUNT(__size) __str, size_t __size, const char * __restrict __format, va_list) __printflike(3, 0); int vsscanf(const char * __restrict __str, const char * __restrict __format, va_list) __scanflike(2, 0); __END_DECLS #endif /* __DARWIN_C_LEVEL >= 200112L || defined(_C99_SOURCE) || defined(__cplusplus) */ @@ -448,10 +452,10 @@ __END_DECLS __BEGIN_DECLS int dprintf(int, const char * __restrict, ...) __printflike(2, 3) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); int vdprintf(int, const char * __restrict, va_list) __printflike(2, 0) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -ssize_t getdelim(char ** __restrict __linep, size_t * __restrict __linecapp, int __delimiter, FILE * __restrict __stream) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -ssize_t getline(char ** __restrict __linep, size_t * __restrict __linecapp, FILE * __restrict __stream) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -FILE *fmemopen(void * __restrict __buf, size_t __size, const char * __restrict __mode) __API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)); -FILE *open_memstream(char **__bufp, size_t *__sizep) __API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)); +ssize_t getdelim(char *_LIBC_COUNT(*__linecapp) *__restrict __linep, size_t * __restrict __linecapp, int __delimiter, FILE * __restrict __stream) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +ssize_t getline(char *_LIBC_COUNT(*__linecapp) *__restrict __linep, size_t * __restrict __linecapp, FILE * __restrict __stream) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +FILE *fmemopen(void * __restrict __buf _LIBC_SIZE(__size), size_t __size, const char * __restrict __mode) __API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)); +FILE *open_memstream(char *_LIBC_COUNT(*__sizep) *__bufp, size_t *__sizep) __API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)); __END_DECLS #endif /* __DARWIN_C_LEVEL >= 200809L */ @@ -464,22 +468,22 @@ __BEGIN_DECLS extern __const int sys_nerr; /* perror(3) external variables */ extern __const char *__const sys_errlist[]; -int asprintf(char ** __restrict, const char * __restrict, ...) __printflike(2, 3); -char *ctermid_r(char *); -char *fgetln(FILE *, size_t *); +int asprintf(char *_LIBC_CSTR *__restrict, const char * __restrict, ...) __printflike(2, 3); +char *_LIBC_CSTR ctermid_r(char *_LIBC_COUNT(L_ctermid)); +char *_LIBC_COUNT(*__len) fgetln(FILE *, size_t *__len); __const char *fmtcheck(const char *, const char *) __attribute__((format_arg(2))); int fpurge(FILE *); -void setbuffer(FILE *, char *, int); +void setbuffer(FILE *, char *_LIBC_COUNT_OR_NULL(__size), int __size); int setlinebuf(FILE *); -int vasprintf(char ** __restrict, const char * __restrict, va_list) __printflike(2, 0); +int vasprintf(char *_LIBC_CSTR *__restrict, const char * __restrict, va_list) __printflike(2, 0); /* * Stdio function-access interface. */ FILE *funopen(const void *, - int (* _Nullable)(void *, char *, int), - int (* _Nullable)(void *, const char *, int), + int (* _Nullable)(void *, char *_LIBC_COUNT(__n), int __n), + int (* _Nullable)(void *, const char *_LIBC_COUNT(__n), int __n), fpos_t (* _Nullable)(void *, fpos_t, int), int (* _Nullable)(void *)); __END_DECLS diff --git a/lib/libc/include/any-macos-any/_stdlib.h b/lib/libc/include/any-macos-any/_stdlib.h index 54c03b8f81..cfe404386b 100644 --- a/lib/libc/include/any-macos-any/_stdlib.h +++ b/lib/libc/include/any-macos-any/_stdlib.h @@ -58,14 +58,31 @@ #ifndef _STDLIB_H_ #define _STDLIB_H_ +#define _LIBC_COUNT__MB_LEN_MAX _LIBC_UNSAFE_INDEXABLE +#define _LIBC_COUNT__PATH_MAX _LIBC_UNSAFE_INDEXABLE + #include #include +#include <_bounds.h> #include <_types.h> #if !defined(_ANSI_SOURCE) #include #if (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) #include +#if defined(__LIBC_STAGED_BOUNDS_SAFETY_ATTRIBUTES) && __has_ptrcheck + +/* required for bounds annotations, but brings in unexpected names and may + * need adoption work from clients */ +#include /* for MB_LEN_MAX */ +#include /* for PATH_MAX */ + +#undef _LIBC_COUNT__MB_LEN_MAX +#undef _LIBC_COUNT__PATH_MAX +#define _LIBC_COUNT__MB_LEN_MAX _LIBC_COUNT(MB_LEN_MAX) +#define _LIBC_COUNT__PATH_MAX _LIBC_COUNT_OR_NULL(PATH_MAX) + +#endif /* defined(__LIBC_STAGED_BOUNDS_SAFETY_ATTRIBUTES) && __has_ptrcheck */ #endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */ #endif /* !_ANSI_SOURCE */ @@ -80,6 +97,8 @@ #include +_LIBC_SINGLE_BY_DEFAULT() + typedef struct { int quot; /* quotient */ int rem; /* remainder */ @@ -134,13 +153,13 @@ long atol(const char *); long long atoll(const char *); #endif /* !__DARWIN_NO_LONG_LONG */ -void *bsearch(const void *__key, const void *__base, size_t __nel, +void *bsearch(const void *_LIBC_SIZE(__width) __key, const void *_LIBC_SIZE(__width * __nel) __base, size_t __nel, size_t __width, int (* _Nonnull __compar)(const void *, const void *)); /* calloc is now declared in _malloc.h */ div_t div(int, int) __pure2; void exit(int) __dead2; /* free is now declared in _malloc.h */ -char *getenv(const char *); +char *_LIBC_CSTR getenv(const char *); long labs(long) __pure2; ldiv_t ldiv(long, long) __pure2; #if !__DARWIN_NO_LONG_LONG @@ -149,11 +168,11 @@ long long lldiv_t lldiv(long long, long long); #endif /* !__DARWIN_NO_LONG_LONG */ /* malloc is now declared in _malloc.h */ -int mblen(const char *__s, size_t __n); -size_t mbstowcs(wchar_t * __restrict , const char * __restrict, size_t); -int mbtowc(wchar_t * __restrict, const char * __restrict, size_t); +int mblen(const char *_LIBC_COUNT(__n) __s, size_t __n); +size_t mbstowcs(wchar_t * __restrict _LIBC_COUNT(__n), const char * __restrict, size_t __n); +int mbtowc(wchar_t * __restrict, const char * __restrict _LIBC_COUNT(__n), size_t __n); /* posix_memalign is now declared in _malloc.h */ -void qsort(void *__base, size_t __nel, size_t __width, +void qsort(void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (* _Nonnull __compar)(const void *, const void *)); #if (__DARWIN_C_LEVEL >= __DARWIN_C_FULL) || \ defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L @@ -162,20 +181,20 @@ void quick_exit(int) __dead2; int rand(void) __swift_unavailable("Use arc4random instead."); /* realloc is now declared in _malloc.h */ void srand(unsigned) __swift_unavailable("Use arc4random instead."); -double strtod(const char *, char **) __DARWIN_ALIAS(strtod); -float strtof(const char *, char **) __DARWIN_ALIAS(strtof); -long strtol(const char *__str, char **__endptr, int __base); +double strtod(const char *, char *_LIBC_CSTR *) __DARWIN_ALIAS(strtod); +float strtof(const char *, char *_LIBC_CSTR *) __DARWIN_ALIAS(strtof); +long strtol(const char *__str, char *_LIBC_CSTR *__endptr, int __base); long double - strtold(const char *, char **); + strtold(const char *, char *_LIBC_CSTR *); #if !__DARWIN_NO_LONG_LONG long long - strtoll(const char *__str, char **__endptr, int __base); + strtoll(const char *__str, char *_LIBC_CSTR *__endptr, int __base); #endif /* !__DARWIN_NO_LONG_LONG */ unsigned long - strtoul(const char *__str, char **__endptr, int __base); + strtoul(const char *__str, char *_LIBC_CSTR *__endptr, int __base); #if !__DARWIN_NO_LONG_LONG unsigned long long - strtoull(const char *__str, char **__endptr, int __base); + strtoull(const char *__str, char *_LIBC_CSTR *__endptr, int __base); #endif /* !__DARWIN_NO_LONG_LONG */ __swift_unavailable("Use posix_spawn APIs or NSTask instead. (On iOS, process spawning is unavailable.)") @@ -184,23 +203,25 @@ __WATCHOS_PROHIBITED __TVOS_PROHIBITED int system(const char *) __DARWIN_ALIAS_C(system); -size_t wcstombs(char * __restrict, const wchar_t * __restrict, size_t); -int wctomb(char *, wchar_t); +size_t wcstombs(char * __restrict _LIBC_COUNT(__n), const wchar_t * __restrict, size_t __n); +int wctomb(char *_LIBC_COUNT__MB_LEN_MAX, wchar_t); #ifndef _ANSI_SOURCE void _Exit(int) __dead2; long a64l(const char *); double drand48(void); -char *ecvt(double, int, int *__restrict, int *__restrict); /* LEGACY */ +char *_LIBC_CSTR ecvt(double, int, int *__restrict, int *__restrict); /* LEGACY */ double erand48(unsigned short[3]); -char *fcvt(double, int, int *__restrict, int *__restrict); /* LEGACY */ -char *gcvt(double, int, char *); /* LEGACY */ -int getsubopt(char **, char * const *, char **); +char *_LIBC_CSTR fcvt(double, int, int *__restrict, int *__restrict); /* LEGACY */ +char *_LIBC_CSTR gcvt(double, int, char *_LIBC_UNSAFE_INDEXABLE) _LIBC_PTRCHECK_REPLACED(snprintf); /* LEGACY */ +int getsubopt(char *_LIBC_CSTR *, char *_LIBC_CSTR const *_LIBC_NULL_TERMINATED, char *_LIBC_CSTR *); int grantpt(int); #if __DARWIN_UNIX03 -char *initstate(unsigned, char *, size_t); /* no __DARWIN_ALIAS needed */ +char *_LIBC_UNSAFE_INDEXABLE + initstate(unsigned, char *_LIBC_COUNT(__size), size_t __size); /* no __DARWIN_ALIAS needed */ #else /* !__DARWIN_UNIX03 */ -char *initstate(unsigned long, char *, long); +char *_LIBC_UNSAFE_INDEXABLE + initstate(unsigned long, char *_LIBC_COUNT(__size), long __size); #endif /* __DARWIN_UNIX03 */ long jrand48(unsigned short[3]) __swift_unavailable("Use arc4random instead."); char *l64a(long); @@ -209,34 +230,33 @@ long lrand48(void) __swift_unavailable("Use arc4random instead."); #if !defined(_POSIX_C_SOURCE) __deprecated_msg("This function is provided for compatibility reasons only. Due to security concerns inherent in the design of mktemp(3), it is highly recommended that you use mkstemp(3) instead.") #endif -char *mktemp(char *); -int mkstemp(char *); +char *_LIBC_CSTR mktemp(char *_LIBC_CSTR); +int mkstemp(char *_LIBC_CSTR); long mrand48(void) __swift_unavailable("Use arc4random instead."); long nrand48(unsigned short[3]) __swift_unavailable("Use arc4random instead."); int posix_openpt(int); -char *ptsname(int); +char *_LIBC_CSTR ptsname(int); #if (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) -int ptsname_r(int fildes, char *buffer, size_t buflen) __API_AVAILABLE(macos(10.13.4), ios(11.3), tvos(11.3), watchos(4.3)); +int ptsname_r(int fildes, char *_LIBC_COUNT(buflen) buffer, size_t buflen) __API_AVAILABLE(macos(10.13.4), ios(11.3), tvos(11.3), watchos(4.3)); #endif -int putenv(char *) __DARWIN_ALIAS(putenv); +int putenv(char *_LIBC_CSTR) __DARWIN_ALIAS(putenv); long random(void) __swift_unavailable("Use arc4random instead."); int rand_r(unsigned *) __swift_unavailable("Use arc4random instead."); #if (__DARWIN_UNIX03 && !defined(_POSIX_C_SOURCE)) || defined(_DARWIN_C_SOURCE) || defined(_DARWIN_BETTER_REALPATH) -char *realpath(const char * __restrict, char * __restrict) __DARWIN_EXTSN(realpath); +char *_LIBC_CSTR realpath(const char * __restrict, char * __restrict _LIBC_COUNT__PATH_MAX) __DARWIN_EXTSN(realpath); #else /* (!__DARWIN_UNIX03 || _POSIX_C_SOURCE) && !_DARWIN_C_SOURCE && !_DARWIN_BETTER_REALPATH */ -char *realpath(const char * __restrict, char * __restrict) __DARWIN_ALIAS(realpath); +char *_LIBC_CSTR realpath(const char * __restrict, char * __restrict _LIBC_COUNT__PATH_MAX) __DARWIN_ALIAS(realpath); #endif /* (__DARWIN_UNIX03 && _POSIX_C_SOURCE) || _DARWIN_C_SOURCE || _DARWIN_BETTER_REALPATH */ -unsigned short - *seed48(unsigned short[3]); +unsigned short *_LIBC_COUNT(3) seed48(unsigned short[3]); int setenv(const char * __name, const char * __value, int __overwrite) __DARWIN_ALIAS(setenv); #if __DARWIN_UNIX03 void setkey(const char *) __DARWIN_ALIAS(setkey); #else /* !__DARWIN_UNIX03 */ int setkey(const char *); #endif /* __DARWIN_UNIX03 */ -char *setstate(const char *); +char *_LIBC_UNSAFE_INDEXABLE setstate(const char *_LIBC_UNSAFE_INDEXABLE); void srand48(long); #if __DARWIN_UNIX03 void srandom(unsigned); @@ -260,12 +280,12 @@ __END_DECLS __BEGIN_DECLS uint32_t arc4random(void); -void arc4random_addrandom(unsigned char * /*dat*/, int /*datlen*/) +void arc4random_addrandom(unsigned char *_LIBC_COUNT(__datlen) /*dat*/, int __datlen) __OSX_DEPRECATED(10.0, 10.12, "use arc4random_stir") __IOS_DEPRECATED(2.0, 10.0, "use arc4random_stir") __TVOS_DEPRECATED(2.0, 10.0, "use arc4random_stir") __WATCHOS_DEPRECATED(1.0, 3.0, "use arc4random_stir"); -void arc4random_buf(void * __buf, size_t __nbytes) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +void arc4random_buf(void *_LIBC_SIZE(__nbytes) __buf, size_t __nbytes) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); void arc4random_stir(void); uint32_t arc4random_uniform(uint32_t __upper_bound) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); @@ -279,28 +299,28 @@ int atexit_b(void (^ _Nonnull)(void)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IP #define __bsearch_noescape #endif #endif /* __BLOCKS__ */ -void *bsearch_b(const void *__key, const void *__base, size_t __nel, +void *bsearch_b(const void *_LIBC_SIZE(__width) __key, const void *_LIBC_SIZE(__width * __nel) __base, size_t __nel, size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __bsearch_noescape) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); #endif /* __BLOCKS__ */ /* getcap(3) functions */ -char *cgetcap(char *, const char *, int); +char *_LIBC_CSTR cgetcap(char *_LIBC_CSTR, const char *, int); int cgetclose(void); -int cgetent(char **, char **, const char *); -int cgetfirst(char **, char **); +int cgetent(char *_LIBC_CSTR *, char *_LIBC_CSTR *_LIBC_NULL_TERMINATED, const char *); +int cgetfirst(char *_LIBC_CSTR *, char *_LIBC_CSTR *_LIBC_NULL_TERMINATED); int cgetmatch(const char *, const char *); -int cgetnext(char **, char **); -int cgetnum(char *, const char *, long *); +int cgetnext(char *_LIBC_CSTR *, char *_LIBC_CSTR *_LIBC_NULL_TERMINATED); +int cgetnum(char *_LIBC_CSTR, const char *, long *); int cgetset(const char *); -int cgetstr(char *, const char *, char **); -int cgetustr(char *, const char *, char **); +int cgetstr(char *_LIBC_CSTR, const char *, char *_LIBC_CSTR *); +int cgetustr(char *_LIBC_CSTR, const char *, char *_LIBC_CSTR *); int daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0, __MAC_10_5, __IPHONE_2_0, __IPHONE_2_0, "Use posix_spawn APIs instead.") __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -char *devname(dev_t, mode_t); -char *devname_r(dev_t, mode_t, char *buf, int len); -char *getbsize(int *, long *); -int getloadavg(double [], int); +char *_LIBC_CSTR devname(dev_t, mode_t); +char *_LIBC_CSTR devname_r(dev_t, mode_t, char *_LIBC_COUNT(len) buf, int len); +char *_LIBC_CSTR getbsize(int *, long *); +int getloadavg(double [_LIBC_COUNT(__nelem)], int __nelem); const char *getprogname(void); void setprogname(const char *); @@ -313,57 +333,57 @@ void setprogname(const char *); #endif #endif /* __BLOCKS__ */ -int heapsort(void *__base, size_t __nel, size_t __width, +int heapsort(void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (* _Nonnull __compar)(const void *, const void *)); #ifdef __BLOCKS__ -int heapsort_b(void *__base, size_t __nel, size_t __width, +int heapsort_b(void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); #endif /* __BLOCKS__ */ -int mergesort(void *__base, size_t __nel, size_t __width, +int mergesort(void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (* _Nonnull __compar)(const void *, const void *)); #ifdef __BLOCKS__ -int mergesort_b(void *__base, size_t __nel, size_t __width, +int mergesort_b(void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); #endif /* __BLOCKS__ */ -void psort(void *__base, size_t __nel, size_t __width, +void psort(void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (* _Nonnull __compar)(const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); #ifdef __BLOCKS__ -void psort_b(void *__base, size_t __nel, size_t __width, +void psort_b(void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); #endif /* __BLOCKS__ */ -void psort_r(void *__base, size_t __nel, size_t __width, void *, +void psort_r(void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, void *, int (* _Nonnull __compar)(void *, const void *, const void *)) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); #ifdef __BLOCKS__ -void qsort_b(void *__base, size_t __nel, size_t __width, +void qsort_b(void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, int (^ _Nonnull __compar)(const void *, const void *) __sort_noescape) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); #endif /* __BLOCKS__ */ -void qsort_r(void *__base, size_t __nel, size_t __width, void *, +void qsort_r(void *_LIBC_SIZE(__nel * __width) __base, size_t __nel, size_t __width, void *, int (* _Nonnull __compar)(void *, const void *, const void *)); -int radixsort(const unsigned char **__base, int __nel, const unsigned char *__table, +int radixsort(const unsigned char *_LIBC_UNSAFE_INDEXABLE *_LIBC_COUNT(__nel) __base, int __nel, const unsigned char *_LIBC_COUNT_OR_NULL(256) __table, unsigned __endbyte); int rpmatch(const char *) __API_AVAILABLE(macos(10.15), ios(13.0), tvos(13.0), watchos(6.0)); -int sradixsort(const unsigned char **__base, int __nel, const unsigned char *__table, +int sradixsort(const unsigned char *_LIBC_UNSAFE_INDEXABLE *_LIBC_COUNT(__nel) __base, int __nel, const unsigned char *_LIBC_COUNT_OR_NULL(256) __table, unsigned __endbyte); void sranddev(void); void srandomdev(void); /* reallocf is now declared in _malloc.h */ long long - strtonum(const char *__numstr, long long __minval, long long __maxval, const char **__errstrp) + strtonum(const char *__numstr, long long __minval, long long __maxval, const char *_LIBC_CSTR *__errstrp) __API_AVAILABLE(macos(11.0), ios(14.0), tvos(14.0), watchos(7.0)); #if !__DARWIN_NO_LONG_LONG long long - strtoq(const char *__str, char **__endptr, int __base); + strtoq(const char *__str, char *_LIBC_CSTR *__endptr, int __base); unsigned long long - strtouq(const char *__str, char **__endptr, int __base); + strtouq(const char *__str, char *_LIBC_CSTR *__endptr, int __base); #endif /* !__DARWIN_NO_LONG_LONG */ -extern char *suboptarg; /* getsubopt(3) external variable */ +extern char *_LIBC_CSTR suboptarg; /* getsubopt(3) external variable */ /* valloc is now declared in _malloc.h */ __END_DECLS #endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */ diff --git a/lib/libc/include/any-macos-any/_string.h b/lib/libc/include/any-macos-any/_string.h index 877123f69e..f06e5fef16 100644 --- a/lib/libc/include/any-macos-any/_string.h +++ b/lib/libc/include/any-macos-any/_string.h @@ -58,6 +58,7 @@ #ifndef _STRING_H_ #define _STRING_H_ +#include <_bounds.h> #include <_types.h> #include #include @@ -66,29 +67,49 @@ /* ANSI-C */ +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS -void *memchr(const void *__s, int __c, size_t __n); -int memcmp(const void *__s1, const void *__s2, size_t __n); -void *memcpy(void *__dst, const void *__src, size_t __n); -void *memmove(void *__dst, const void *__src, size_t __len); -void *memset(void *__b, int __c, size_t __len); -char *strcat(char *__s1, const char *__s2); -char *strchr(const char *__s, int __c); +void *_LIBC_SIZE(__n) + memchr(const void *_LIBC_SIZE(__n) __s, int __c, size_t __n); +int memcmp(const void *_LIBC_SIZE(__n) __s1, const void *_LIBC_SIZE(__n) __s2, + size_t __n); +void *_LIBC_SIZE(__n) + memcpy(void *_LIBC_SIZE(__n) __dst, const void *_LIBC_SIZE(__n) __src, + size_t __n); +void *_LIBC_SIZE(__len) + memmove(void *_LIBC_SIZE(__len) __dst, + const void *_LIBC_SIZE(__len) __src, size_t __len); +void *_LIBC_SIZE(__len) + memset(void *_LIBC_SIZE(__len) __b, int __c, size_t __len); +char *_LIBC_CSTR + strcat(char *_LIBC_UNSAFE_INDEXABLE __s1, const char *__s2) + _LIBC_PTRCHECK_REPLACED(strlcat); +char *_LIBC_CSTR strchr(const char *__s, int __c); int strcmp(const char *__s1, const char *__s2); int strcoll(const char *__s1, const char *__s2); -char *strcpy(char *__dst, const char *__src); +char *_LIBC_CSTR + strcpy(char *_LIBC_UNSAFE_INDEXABLE __dst, const char *__src) + _LIBC_PTRCHECK_REPLACED(strlcpy); size_t strcspn(const char *__s, const char *__charset); -char *strerror(int __errnum) __DARWIN_ALIAS(strerror); +char *_LIBC_CSTR strerror(int __errnum) __DARWIN_ALIAS(strerror); size_t strlen(const char *__s); -char *strncat(char *__s1, const char *__s2, size_t __n); -int strncmp(const char *__s1, const char *__s2, size_t __n); -char *strncpy(char *__dst, const char *__src, size_t __n); -char *strpbrk(const char *__s, const char *__charset); -char *strrchr(const char *__s, int __c); +char *_LIBC_CSTR + strncat(char *_LIBC_UNSAFE_INDEXABLE __s1, + const char *_LIBC_COUNT(__n) __s2, size_t __n) + _LIBC_PTRCHECK_REPLACED(strlcat); +int strncmp(const char *_LIBC_UNSAFE_INDEXABLE __s1, + const char *_LIBC_UNSAFE_INDEXABLE __s2, size_t __n); +char *_LIBC_UNSAFE_INDEXABLE + strncpy(char *_LIBC_COUNT(__n) __dst, + const char *_LIBC_UNSAFE_INDEXABLE __src, size_t __n) + _LIBC_PTRCHECK_REPLACED(strlcpy); +char *_LIBC_CSTR strpbrk(const char *__s, const char *__charset); +char *_LIBC_CSTR strrchr(const char *__s, int __c); size_t strspn(const char *__s, const char *__charset); -char *strstr(const char *__big, const char *__little); -char *strtok(char *__str, const char *__sep); -size_t strxfrm(char *__s1, const char *__s2, size_t __n); +char *_LIBC_CSTR strstr(const char *__big, const char *__little); +char *_LIBC_CSTR strtok(char *_LIBC_CSTR __str, const char *__sep); +size_t strxfrm(char *_LIBC_COUNT(__n) __s1, const char *__s2, size_t __n); __END_DECLS @@ -101,7 +122,9 @@ __END_DECLS #if __DARWIN_C_LEVEL >= 199506L __BEGIN_DECLS -char *strtok_r(char *__str, const char *__sep, char **__lasts); +char *_LIBC_CSTR + strtok_r(char *_LIBC_CSTR __str, const char *__sep, + char *_LIBC_CSTR *__lasts); __END_DECLS #endif /* __DARWIN_C_LEVEL >= 199506L */ @@ -113,9 +136,12 @@ __END_DECLS #if __DARWIN_C_LEVEL >= 200112L __BEGIN_DECLS -int strerror_r(int __errnum, char *__strerrbuf, size_t __buflen); -char *strdup(const char *__s1); -void *memccpy(void *__dst, const void *__src, int __c, size_t __n); +int strerror_r(int __errnum, char *_LIBC_COUNT(__buflen) __strerrbuf, + size_t __buflen); +char *_LIBC_CSTR strdup(const char *__s1); +void *_LIBC_UNSAFE_INDEXABLE /* in bounds of __dst */ + memccpy(void *_LIBC_SIZE(__n) __dst, const void *_LIBC_SIZE(__n) __src, + int __c, size_t __n); __END_DECLS #endif /* __DARWIN_C_LEVEL >= 200112L */ @@ -127,11 +153,16 @@ __END_DECLS #if __DARWIN_C_LEVEL >= 200809L __BEGIN_DECLS -char *stpcpy(char *__dst, const char *__src); -char *stpncpy(char *__dst, const char *__src, size_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -char *strndup(const char *__s1, size_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -size_t strnlen(const char *__s1, size_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -char *strsignal(int __sig); +char *_LIBC_CSTR + stpcpy(char *_LIBC_UNSAFE_INDEXABLE __dst, const char *__src) _LIBC_PTRCHECK_REPLACED(strlcpy); +char *_LIBC_CSTR + stpncpy(char *_LIBC_UNSAFE_INDEXABLE __dst, + const char *_LIBC_UNSAFE_INDEXABLE __src, size_t __n) + __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3) + _LIBC_PTRCHECK_REPLACED(strlcpy); +char *_LIBC_CSTR strndup(const char *_LIBC_COUNT(__n) __s1, size_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +size_t strnlen(const char *_LIBC_COUNT(__n) __s1, size_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +char *_LIBC_CSTR strsignal(int __sig); __END_DECLS #endif /* __DARWIN_C_LEVEL >= 200809L */ @@ -142,7 +173,7 @@ __END_DECLS #include __BEGIN_DECLS -errno_t memset_s(void *__s, rsize_t __smax, int __c, rsize_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); +errno_t memset_s(void *_LIBC_SIZE(__smax) __s, rsize_t __smax, int __c, rsize_t __n) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0); __END_DECLS #endif @@ -152,28 +183,37 @@ __END_DECLS #include __BEGIN_DECLS -void *memmem(const void *__big, size_t __big_len, const void *__little, size_t __little_len) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -void memset_pattern4(void *__b, const void *__pattern4, size_t __len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); -void memset_pattern8(void *__b, const void *__pattern8, size_t __len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); -void memset_pattern16(void *__b, const void *__pattern16, size_t __len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); +void *_LIBC_UNSAFE_INDEXABLE + memmem(const void *_LIBC_SIZE(__big_len) __big, size_t __big_len, + const void *_LIBC_SIZE(__little_len) __little, size_t __little_len) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +void memset_pattern4(void *_LIBC_SIZE(__len) __b, const void *_LIBC_SIZE(4) __pattern4, size_t __len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); +void memset_pattern8(void *_LIBC_SIZE(__len) __b, const void *_LIBC_SIZE(8) __pattern8, size_t __len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); +void memset_pattern16(void *_LIBC_SIZE(__len) __b, const void *_LIBC_SIZE(16) __pattern16, size_t __len) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0); -char *strcasestr(const char *__big, const char *__little); -char *strnstr(const char *__big, const char *__little, size_t __len); -size_t strlcat(char *__dst, const char *__source, size_t __size); -size_t strlcpy(char *__dst, const char *__source, size_t __size); -void strmode(int __mode, char *__bp); -char *strsep(char **__stringp, const char *__delim); +char *_LIBC_CSTR + strcasestr(const char *__big, const char *__little); +__OSX_AVAILABLE(15.4) __IOS_AVAILABLE(18.4) +__TVOS_AVAILABLE(18.4) __WATCHOS_AVAILABLE(11.4) +char *_LIBC_CSTR + strchrnul(const char *__s, int __c); +char *_LIBC_CSTR + strnstr(const char *_LIBC_COUNT(__len) __big, const char *__little, size_t __len); +size_t strlcat(char *_LIBC_COUNT(__size) __dst, const char *__source, size_t __size); +size_t strlcpy(char *_LIBC_COUNT(__size) __dst, const char *__source, size_t __size); +void strmode(int __mode, char *_LIBC_COUNT(12) __bp); +char *_LIBC_CSTR + strsep(char *_LIBC_CSTR *__stringp, const char *__delim); /* SUS places swab() in unistd.h. It is listed here for source compatibility */ -void swab(const void * __restrict, void * __restrict, ssize_t); +void swab(const void *_LIBC_SIZE(__len) __restrict, void *_LIBC_SIZE(__len) __restrict, ssize_t __len); __OSX_AVAILABLE(10.12.1) __IOS_AVAILABLE(10.1) __TVOS_AVAILABLE(10.0.1) __WATCHOS_AVAILABLE(3.1) -int timingsafe_bcmp(const void *__b1, const void *__b2, size_t __len); +int timingsafe_bcmp(const void *_LIBC_SIZE(__len) __b1, const void *_LIBC_SIZE(__len) __b2, size_t __len); __OSX_AVAILABLE(11.0) __IOS_AVAILABLE(14.0) __TVOS_AVAILABLE(14.0) __WATCHOS_AVAILABLE(7.0) -int strsignal_r(int __sig, char *__strsignalbuf, size_t __buflen); +int strsignal_r(int __sig, char *_LIBC_COUNT(__buflen) __strsignalbuf, size_t __buflen); __END_DECLS /* Some functions historically defined in string.h were placed in strings.h diff --git a/lib/libc/include/any-macos-any/_strings.h b/lib/libc/include/any-macos-any/_strings.h index 91b0b5627f..64ded45754 100644 --- a/lib/libc/include/any-macos-any/_strings.h +++ b/lib/libc/include/any-macos-any/_strings.h @@ -58,25 +58,28 @@ #ifndef __STRINGS_H_ #define __STRINGS_H_ +#include <_bounds.h> #include <_types.h> #include #include #include +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS /* Removed in Issue 7 */ #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200809L -int bcmp(const void *, const void *, size_t) __POSIX_C_DEPRECATED(200112L); -void bcopy(const void *, void *, size_t) __POSIX_C_DEPRECATED(200112L); -void bzero(void *, size_t) __POSIX_C_DEPRECATED(200112L); -char *index(const char *, int) __POSIX_C_DEPRECATED(200112L); -char *rindex(const char *, int) __POSIX_C_DEPRECATED(200112L); +int bcmp(const void *_LIBC_SIZE(__n), const void *_LIBC_SIZE(__n), size_t __n) __POSIX_C_DEPRECATED(200112L); +void bcopy(const void *_LIBC_SIZE(__n), void *_LIBC_SIZE(__n), size_t __n) __POSIX_C_DEPRECATED(200112L); +void bzero(void *_LIBC_SIZE(__n), size_t __n) __POSIX_C_DEPRECATED(200112L); +char *_LIBC_CSTR index(const char *, int) __POSIX_C_DEPRECATED(200112L); +char *_LIBC_CSTR rindex(const char *, int) __POSIX_C_DEPRECATED(200112L); #endif int ffs(int); int strcasecmp(const char *, const char *); -int strncasecmp(const char *, const char *, size_t); +int strncasecmp(const char *_LIBC_UNSAFE_INDEXABLE, const char *_LIBC_UNSAFE_INDEXABLE, size_t); __END_DECLS /* Darwin extensions */ diff --git a/lib/libc/include/any-macos-any/_time.h b/lib/libc/include/any-macos-any/_time.h index c1b72edb39..6c68c5f433 100644 --- a/lib/libc/include/any-macos-any/_time.h +++ b/lib/libc/include/any-macos-any/_time.h @@ -65,6 +65,7 @@ #include <_types.h> #include +#include <_bounds.h> #include #include #include @@ -72,6 +73,8 @@ #include #include +_LIBC_SINGLE_BY_DEFAULT() + struct tm { int tm_sec; /* seconds after the minute [0-60] */ int tm_min; /* minutes after the hour [0-59] */ @@ -83,7 +86,7 @@ struct tm { int tm_yday; /* days since January 1 [0-365] */ int tm_isdst; /* Daylight Savings Time flag */ long tm_gmtoff; /* offset from UTC in seconds */ - char *tm_zone; /* timezone abbreviation */ + char *_LIBC_CSTR tm_zone; /* timezone abbreviation */ }; #if __DARWIN_UNIX03 @@ -95,7 +98,7 @@ struct tm { #endif /* __DARWIN_UNIX03 */ #ifndef _ANSI_SOURCE -extern char *tzname[]; +extern char *_LIBC_CSTR tzname[_LIBC_COUNT(2)]; #endif extern int getdate_err; @@ -105,16 +108,16 @@ extern long timezone __DARWIN_ALIAS(timezone); extern int daylight; __BEGIN_DECLS -char *asctime(const struct tm *); +char *_LIBC_CSTR asctime(const struct tm *); clock_t clock(void) __DARWIN_ALIAS(clock); -char *ctime(const time_t *); +char *_LIBC_CSTR ctime(const time_t *); double difftime(time_t, time_t); struct tm *getdate(const char *); struct tm *gmtime(const time_t *); struct tm *localtime(const time_t *); time_t mktime(struct tm *) __DARWIN_ALIAS(mktime); -size_t strftime(char * __restrict, size_t, const char * __restrict, const struct tm * __restrict) __DARWIN_ALIAS(strftime); -char *strptime(const char * __restrict, const char * __restrict, struct tm * __restrict) __DARWIN_ALIAS(strptime); +size_t strftime(char *_LIBC_COUNT(__maxsize) __restrict, size_t __maxsize, const char * __restrict, const struct tm * __restrict) __DARWIN_ALIAS(strftime); +char *_LIBC_CSTR strptime(const char * __restrict, const char * __restrict, struct tm * __restrict) __DARWIN_ALIAS(strptime); time_t time(time_t *); #ifndef _ANSI_SOURCE @@ -122,15 +125,15 @@ void tzset(void); #endif /* not ANSI */ /* [TSF] Thread safe functions */ -char *asctime_r(const struct tm * __restrict, char * __restrict); -char *ctime_r(const time_t *, char *); +char *_LIBC_CSTR asctime_r(const struct tm * __restrict, char * __restrict _LIBC_COUNT(26)); +char *_LIBC_CSTR ctime_r(const time_t *, char *_LIBC_COUNT(26)); struct tm *gmtime_r(const time_t * __restrict, struct tm * __restrict); struct tm *localtime_r(const time_t * __restrict, struct tm * __restrict); #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) time_t posix2time(time_t); #if !__DARWIN_UNIX03 -char *timezone(int, int); +char *_LIBC_CSTR timezone(int, int); #endif /* !__DARWIN_UNIX03 */ void tzsetwall(void); time_t time2posix(time_t); diff --git a/lib/libc/include/any-macos-any/_types.h b/lib/libc/include/any-macos-any/_types.h index 83cd510175..c695ab645f 100644 --- a/lib/libc/include/any-macos-any/_types.h +++ b/lib/libc/include/any-macos-any/_types.h @@ -25,8 +25,11 @@ #define __TYPES_H_ #include +#include <_bounds.h> #include /* __uint32_t */ +_LIBC_SINGLE_BY_DEFAULT() + #if __GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ >= 7 #define __strfmonlike(fmtarg, firstvararg) \ __attribute__((__format__ (__strfmon__, fmtarg, firstvararg))) diff --git a/lib/libc/include/any-macos-any/_types/_locale_t.h b/lib/libc/include/any-macos-any/_types/_locale_t.h new file mode 100644 index 0000000000..5726d60391 --- /dev/null +++ b/lib/libc/include/any-macos-any/_types/_locale_t.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2024 Apple Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, + * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ + +#ifndef _LOCALE_T +#define _LOCALE_T + +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() + +struct _xlocale; /* forward reference */ +typedef struct _xlocale * locale_t; +#endif /* _LOCALE_T */ diff --git a/lib/libc/include/any-macos-any/_wchar.h b/lib/libc/include/any-macos-any/_wchar.h index 904c6fe720..3e728156c5 100644 --- a/lib/libc/include/any-macos-any/_wchar.h +++ b/lib/libc/include/any-macos-any/_wchar.h @@ -67,6 +67,7 @@ #ifndef _WCHAR_H_ #define _WCHAR_H_ +#include <_bounds.h> #include <_types.h> #include #include @@ -91,12 +92,15 @@ #include #include <__wctype.h> +_LIBC_SINGLE_BY_DEFAULT() /* Initially added in Issue 4 */ __BEGIN_DECLS wint_t btowc(int); wint_t fgetwc(FILE *); -wchar_t *fgetws(wchar_t * __restrict, int, FILE * __restrict); +wchar_t *_LIBC_CSTR + fgetws(wchar_t * __restrict _LIBC_COUNT(__n), int __n, + FILE * __restrict); wint_t fputwc(wchar_t, FILE *); int fputws(const wchar_t * __restrict, FILE * __restrict); int fwide(FILE *, int); @@ -104,57 +108,78 @@ int fwprintf(FILE * __restrict, const wchar_t * __restrict, ...); int fwscanf(FILE * __restrict, const wchar_t * __restrict, ...); wint_t getwc(FILE *); wint_t getwchar(void); -size_t mbrlen(const char * __restrict, size_t, mbstate_t * __restrict); -size_t mbrtowc(wchar_t * __restrict, const char * __restrict, size_t, - mbstate_t * __restrict); +size_t mbrlen(const char * __restrict _LIBC_COUNT(__n), size_t __n, + mbstate_t * __restrict); +size_t mbrtowc(wchar_t * __restrict, const char * __restrict _LIBC_COUNT(__n), + size_t __n, mbstate_t * __restrict); int mbsinit(const mbstate_t *); -size_t mbsrtowcs(wchar_t * __restrict, const char ** __restrict, size_t, - mbstate_t * __restrict); +size_t mbsrtowcs(wchar_t * __restrict _LIBC_COUNT(__len), + const char ** __restrict, size_t __len, mbstate_t * __restrict); wint_t putwc(wchar_t, FILE *); wint_t putwchar(wchar_t); -int swprintf(wchar_t * __restrict, size_t, const wchar_t * __restrict, ...); +int swprintf(wchar_t * __restrict _LIBC_COUNT(__maxlen), size_t __maxlen, + const wchar_t * __restrict, ...); int swscanf(const wchar_t * __restrict, const wchar_t * __restrict, ...); wint_t ungetwc(wint_t, FILE *); int vfwprintf(FILE * __restrict, const wchar_t * __restrict, __darwin_va_list); -int vswprintf(wchar_t * __restrict, size_t, const wchar_t * __restrict, - __darwin_va_list); +int vswprintf(wchar_t * __restrict _LIBC_COUNT(__maxlen), size_t __maxlen, + const wchar_t * __restrict, __darwin_va_list); int vwprintf(const wchar_t * __restrict, __darwin_va_list); size_t wcrtomb(char * __restrict, wchar_t, mbstate_t * __restrict); wchar_t *wcscat(wchar_t * __restrict, const wchar_t * __restrict); wchar_t *wcschr(const wchar_t *, wchar_t); int wcscmp(const wchar_t *, const wchar_t *); int wcscoll(const wchar_t *, const wchar_t *); -wchar_t *wcscpy(wchar_t * __restrict, const wchar_t * __restrict); +wchar_t *wcscpy(wchar_t * __restrict _LIBC_UNSAFE_INDEXABLE, + const wchar_t * __restrict) _LIBC_PTRCHECK_REPLACED(wcslcpy); size_t wcscspn(const wchar_t *, const wchar_t *); -size_t wcsftime(wchar_t * __restrict, size_t, const wchar_t * __restrict, - const struct tm * __restrict) __DARWIN_ALIAS(wcsftime); +size_t wcsftime(wchar_t * __restrict _LIBC_COUNT(__maxlen), size_t __maxlen, + const wchar_t * __restrict, const struct tm * __restrict) + __DARWIN_ALIAS(wcsftime); size_t wcslen(const wchar_t *); -wchar_t *wcsncat(wchar_t * __restrict, const wchar_t * __restrict, size_t); -int wcsncmp(const wchar_t *, const wchar_t *, size_t); -wchar_t *wcsncpy(wchar_t * __restrict , const wchar_t * __restrict, size_t); +wchar_t *_LIBC_UNSAFE_INDEXABLE + wcsncat(wchar_t * __restrict _LIBC_UNSAFE_INDEXABLE, + const wchar_t * __restrict _LIBC_COUNT(__n), size_t __n) + _LIBC_PTRCHECK_REPLACED(wcslcat); +int wcsncmp(const wchar_t *_LIBC_UNSAFE_INDEXABLE, + const wchar_t *_LIBC_UNSAFE_INDEXABLE, size_t); +wchar_t *_LIBC_COUNT(__n) + wcsncpy(wchar_t * __restrict _LIBC_COUNT(__n), + const wchar_t * __restrict _LIBC_UNSAFE_INDEXABLE, size_t __n) + _LIBC_PTRCHECK_REPLACED(wcslcpy); wchar_t *wcspbrk(const wchar_t *, const wchar_t *); wchar_t *wcsrchr(const wchar_t *, wchar_t); -size_t wcsrtombs(char * __restrict, const wchar_t ** __restrict, size_t, - mbstate_t * __restrict); +size_t wcsrtombs(char * __restrict _LIBC_COUNT(__len), + const wchar_t ** __restrict, size_t __len, mbstate_t * __restrict); size_t wcsspn(const wchar_t *, const wchar_t *); wchar_t *wcsstr(const wchar_t * __restrict, const wchar_t * __restrict); -size_t wcsxfrm(wchar_t * __restrict, const wchar_t * __restrict, size_t); +size_t wcsxfrm(wchar_t * __restrict _LIBC_COUNT(__n), + const wchar_t * __restrict, size_t __n); int wctob(wint_t); double wcstod(const wchar_t * __restrict, wchar_t ** __restrict); -wchar_t *wcstok(wchar_t * __restrict, const wchar_t * __restrict, - wchar_t ** __restrict); -long wcstol(const wchar_t * __restrict, wchar_t ** __restrict, int); +wchar_t *_LIBC_CSTR + wcstok(wchar_t * __restrict _LIBC_CSTR, const wchar_t * __restrict, + wchar_t *_LIBC_CSTR * __restrict); +long wcstol(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, + int); unsigned long - wcstoul(const wchar_t * __restrict, wchar_t ** __restrict, int); -wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); -int wmemcmp(const wchar_t *, const wchar_t *, size_t); -wchar_t *wmemcpy(wchar_t * __restrict, const wchar_t * __restrict, size_t); -wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); -wchar_t *wmemset(wchar_t *, wchar_t, size_t); + wcstoul(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, int); +wchar_t *_LIBC_UNSAFE_INDEXABLE /* in bounds of arg1 */ + wmemchr(const wchar_t *_LIBC_COUNT(__n) /*arg1*/, wchar_t, size_t __n); +int wmemcmp(const wchar_t *_LIBC_COUNT(__n), const wchar_t *_LIBC_COUNT(__n), + size_t __n); +wchar_t *_LIBC_COUNT(__n) + wmemcpy(wchar_t * __restrict _LIBC_COUNT(__n), + const wchar_t * __restrict _LIBC_COUNT(__n), size_t __n); +wchar_t *_LIBC_COUNT(__n) + wmemmove(wchar_t *_LIBC_COUNT(__n), const wchar_t *_LIBC_COUNT(__n), + size_t __n); +wchar_t *_LIBC_COUNT(__n) + wmemset(wchar_t *_LIBC_COUNT(__n), wchar_t, size_t __n); int wprintf(const wchar_t * __restrict, ...); int wscanf(const wchar_t * __restrict, ...); -int wcswidth(const wchar_t *, size_t); +int wcswidth(const wchar_t *_LIBC_COUNT(__n), size_t __n); int wcwidth(wchar_t); __END_DECLS @@ -172,14 +197,14 @@ int vfwscanf(FILE * __restrict, const wchar_t * __restrict, int vswscanf(const wchar_t * __restrict, const wchar_t * __restrict, __darwin_va_list); int vwscanf(const wchar_t * __restrict, __darwin_va_list); -float wcstof(const wchar_t * __restrict, wchar_t ** __restrict); +float wcstof(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict); long double - wcstold(const wchar_t * __restrict, wchar_t ** __restrict); + wcstold(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict); #if !__DARWIN_NO_LONG_LONG long long - wcstoll(const wchar_t * __restrict, wchar_t ** __restrict, int); + wcstoll(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, int); unsigned long long - wcstoull(const wchar_t * __restrict, wchar_t ** __restrict, int); + wcstoull(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, int); #endif /* !__DARWIN_NO_LONG_LONG */ __END_DECLS #endif @@ -192,17 +217,27 @@ __END_DECLS #if __DARWIN_C_LEVEL >= 200809L __BEGIN_DECLS -size_t mbsnrtowcs(wchar_t * __restrict, const char ** __restrict, size_t, - size_t, mbstate_t * __restrict); -wchar_t *wcpcpy(wchar_t * __restrict, const wchar_t * __restrict) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -wchar_t *wcpncpy(wchar_t * __restrict, const wchar_t * __restrict, size_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -wchar_t *wcsdup(const wchar_t *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +size_t mbsnrtowcs(wchar_t * __restrict _LIBC_COUNT(__len), + const char *_LIBC_UNSAFE_INDEXABLE* __restrict, size_t, size_t __len, + mbstate_t * __restrict); +wchar_t *_LIBC_UNSAFE_INDEXABLE wcpcpy( + wchar_t * __restrict _LIBC_UNSAFE_INDEXABLE, + const wchar_t * __restrict) _LIBC_PTRCHECK_REPLACED(wcslcpy) + __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3) + _LIBC_PTRCHECK_REPLACED(wcslcpy); +wchar_t *_LIBC_COUNT(__n) wcpncpy( + wchar_t * __restrict _LIBC_COUNT(__n), + const wchar_t * __restrict _LIBC_UNSAFE_INDEXABLE, size_t __n) + __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3) + _LIBC_PTRCHECK_REPLACED(wcslcpy); +wchar_t *_LIBC_CSTR wcsdup(const wchar_t *) + __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); int wcscasecmp(const wchar_t *, const wchar_t *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -int wcsncasecmp(const wchar_t *, const wchar_t *, size_t n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -size_t wcsnlen(const wchar_t *, size_t) __pure __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -size_t wcsnrtombs(char * __restrict, const wchar_t ** __restrict, size_t, - size_t, mbstate_t * __restrict); -FILE *open_wmemstream(wchar_t ** __bufp, size_t * __sizep) __API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)); +int wcsncasecmp(const wchar_t *_LIBC_UNSAFE_INDEXABLE, const wchar_t *_LIBC_UNSAFE_INDEXABLE, size_t n) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +size_t wcsnlen(const wchar_t *_LIBC_COUNT(__n), size_t __n) __pure __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +size_t wcsnrtombs(char * __restrict _LIBC_COUNT(__len), const wchar_t ** __restrict, size_t, + size_t __len, mbstate_t * __restrict); +FILE *open_wmemstream(wchar_t *_LIBC_COUNT(*__sizep) * __bufp, size_t * __sizep) __API_AVAILABLE(macos(10.13), ios(11.0), tvos(11.0), watchos(4.0)); __END_DECLS #endif /* __DARWIN_C_LEVEL >= 200809L */ @@ -212,9 +247,10 @@ __END_DECLS #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL __BEGIN_DECLS -wchar_t *fgetwln(FILE * __restrict, size_t *) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -size_t wcslcat(wchar_t *, const wchar_t *, size_t); -size_t wcslcpy(wchar_t *, const wchar_t *, size_t); +wchar_t *_LIBC_COUNT(*__len) + fgetwln(FILE * __restrict, size_t *__len) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +size_t wcslcat(wchar_t *_LIBC_COUNT(__len), const wchar_t *, size_t __len); +size_t wcslcpy(wchar_t *_LIBC_COUNT(__len), const wchar_t *, size_t __len); __END_DECLS #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ diff --git a/lib/libc/include/any-macos-any/_wctype.h b/lib/libc/include/any-macos-any/_wctype.h index dc4bfa116f..75e6a60208 100644 --- a/lib/libc/include/any-macos-any/_wctype.h +++ b/lib/libc/include/any-macos-any/_wctype.h @@ -32,6 +32,7 @@ #define _WCTYPE_H_ #include +#include <_bounds.h> #include <_types.h> #include <_types/_wctrans_t.h> @@ -40,6 +41,8 @@ #include <__wctype.h> #include +_LIBC_SINGLE_BY_DEFAULT() + /* * Use inline functions if we are allowed to and the compiler supports them. */ diff --git a/lib/libc/include/any-macos-any/_xlocale.h b/lib/libc/include/any-macos-any/_xlocale.h index 51bda307fb..6f290567eb 100644 --- a/lib/libc/include/any-macos-any/_xlocale.h +++ b/lib/libc/include/any-macos-any/_xlocale.h @@ -25,6 +25,7 @@ #define _XLOCALE_H_ #include +#include <_bounds.h> #ifndef _USE_EXTENDED_LOCALES_ #define _USE_EXTENDED_LOCALES_ @@ -33,34 +34,13 @@ #include <_locale.h> #include <__xlocale.h> -#define LC_ALL_MASK ( LC_COLLATE_MASK \ - | LC_CTYPE_MASK \ - | LC_MESSAGES_MASK \ - | LC_MONETARY_MASK \ - | LC_NUMERIC_MASK \ - | LC_TIME_MASK ) -#define LC_COLLATE_MASK (1 << 0) -#define LC_CTYPE_MASK (1 << 1) -#define LC_MESSAGES_MASK (1 << 2) -#define LC_MONETARY_MASK (1 << 3) -#define LC_NUMERIC_MASK (1 << 4) -#define LC_TIME_MASK (1 << 5) - -#define _LC_NUM_MASK 6 -#define _LC_LAST_MASK (1 << (_LC_NUM_MASK - 1)) - -#define LC_GLOBAL_LOCALE ((locale_t)-1) -#define LC_C_LOCALE ((locale_t)NULL) +_LIBC_SINGLE_BY_DEFAULT() __BEGIN_DECLS extern const locale_t _c_locale; -locale_t duplocale(locale_t); -int freelocale(locale_t); struct lconv * localeconv_l(locale_t); -locale_t newlocale(int, __const char *, locale_t); __const char * querylocale(int, locale_t); -locale_t uselocale(locale_t); __END_DECLS #endif /* _XLOCALE_H_ */ diff --git a/lib/libc/include/any-macos-any/alloca.h b/lib/libc/include/any-macos-any/alloca.h index 0264ae680d..003b963efd 100644 --- a/lib/libc/include/any-macos-any/alloca.h +++ b/lib/libc/include/any-macos-any/alloca.h @@ -25,11 +25,14 @@ #define _ALLOCA_H_ #include +#include <_bounds.h> #include <_types.h> #include +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS -void *alloca(size_t); /* built-in for gcc */ +void *_LIBC_SIZE(__size) alloca(size_t __size); /* built-in for gcc */ __END_DECLS #if defined(__GNUC__) && __GNUC__ >= 3 diff --git a/lib/libc/include/any-macos-any/ar.h b/lib/libc/include/any-macos-any/ar.h index e04874fcbd..cb28fef849 100644 --- a/lib/libc/include/any-macos-any/ar.h +++ b/lib/libc/include/any-macos-any/ar.h @@ -44,6 +44,10 @@ #ifndef _AR_H_ #define _AR_H_ +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() + /* Pre-4BSD archives had these magic numbers in them. */ #define OARMAG1 0177555 #define OARMAG2 0177545 diff --git a/lib/libc/include/any-macos-any/arpa/inet.h b/lib/libc/include/any-macos-any/arpa/inet.h index 46f44e1a82..d7ec7ef251 100644 --- a/lib/libc/include/any-macos-any/arpa/inet.h +++ b/lib/libc/include/any-macos-any/arpa/inet.h @@ -63,6 +63,7 @@ /* External definitions for functions in inet(3), addr2ascii(3) */ +#include <_bounds.h> #include #include #include /* uint32_t uint16_t */ @@ -70,26 +71,28 @@ #include /* htonl() and family if (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ #include /* in_addr */ +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS in_addr_t inet_addr(const char *); -char *inet_ntoa(struct in_addr); -const char *inet_ntop(int, const void *, char *, socklen_t); +char *_LIBC_CSTR inet_ntoa(struct in_addr); +const char *inet_ntop(int, const void *, char *_LIBC_COUNT(__size), socklen_t __size); int inet_pton(int, const char *, void *); #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) int ascii2addr(int, const char *, void *); -char *addr2ascii(int, const void *, int, char *); +char *_LIBC_CSTR addr2ascii(int, const void *_LIBC_SIZE(__size), int __size, char *_LIBC_UNSAFE_INDEXABLE); int inet_aton(const char *, struct in_addr *); in_addr_t inet_lnaof(struct in_addr); struct in_addr inet_makeaddr(in_addr_t, in_addr_t); in_addr_t inet_netof(struct in_addr); in_addr_t inet_network(const char *); -char *inet_net_ntop(int, const void *, int, char *, __darwin_size_t); -int inet_net_pton(int, const char *, void *, __darwin_size_t); -char *inet_neta(in_addr_t, char *, __darwin_size_t); -unsigned int inet_nsap_addr(const char *, unsigned char *, int); -char *inet_nsap_ntoa(int, const unsigned char *, char *); +char *_LIBC_CSTR inet_net_ntop(int, const void *, int, char *_LIBC_COUNT(__size), __darwin_size_t __size); +int inet_net_pton(int, const char *, void *_LIBC_SIZE(__size), __darwin_size_t __size); +char *_LIBC_CSTR inet_neta(in_addr_t, char *_LIBC_COUNT(__size), __darwin_size_t __size); +unsigned int inet_nsap_addr(const char *, unsigned char *_LIBC_COUNT(__maxlen), int __maxlen); +char *_LIBC_CSTR inet_nsap_ntoa(int __binlen, const unsigned char *_LIBC_COUNT(__binlen), char *_LIBC_COUNT_OR_NULL(2 + __binlen*2 + __binlen/2 + 1)); #endif /* (_POSIX_C_SOURCE && !_DARWIN_C_SOURCE) */ __END_DECLS diff --git a/lib/libc/include/any-macos-any/crt_externs.h b/lib/libc/include/any-macos-any/crt_externs.h index eb3729adad..4bc2292543 100644 --- a/lib/libc/include/any-macos-any/crt_externs.h +++ b/lib/libc/include/any-macos-any/crt_externs.h @@ -32,12 +32,15 @@ */ #include +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() __BEGIN_DECLS -extern char ***_NSGetArgv(void); +extern char *_LIBC_CSTR *_LIBC_NULL_TERMINATED *_NSGetArgv(void); extern int *_NSGetArgc(void); -extern char ***_NSGetEnviron(void); -extern char **_NSGetProgname(void); +extern char *_LIBC_CSTR *_LIBC_NULL_TERMINATED *_NSGetEnviron(void); +extern char *_LIBC_CSTR *_NSGetProgname(void); #ifdef __LP64__ extern struct mach_header_64 * #else /* !__LP64__ */ diff --git a/lib/libc/include/any-macos-any/dirent.h b/lib/libc/include/any-macos-any/dirent.h index 0791063fdf..040be482fc 100644 --- a/lib/libc/include/any-macos-any/dirent.h +++ b/lib/libc/include/any-macos-any/dirent.h @@ -61,12 +61,15 @@ /* * The kernel defines the format of directory entries */ +#include <_bounds.h> #include <_types.h> #include #include #include #include /* __darwin_pthread_mutex_t */ +_LIBC_SINGLE_BY_DEFAULT() + struct _telldir; /* forward reference */ /* structure describing an open directory. */ @@ -74,7 +77,7 @@ typedef struct { int __dd_fd; /* file descriptor associated with directory */ long __dd_loc; /* offset in current buffer */ long __dd_size; /* amount of data returned */ - char *__dd_buf; /* data buffer */ + char *_LIBC_COUNT(__dd_len) __dd_buf; /* data buffer */ int __dd_len; /* size of data buffer */ long __dd_seek; /* magic cookie returned */ __unused long __padding; /* (__dd_rewind space left for bincompat) */ @@ -168,7 +171,7 @@ __END_DECLS #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL __BEGIN_DECLS -int getdirentries(int, char *, int, long *) +int getdirentries(int, char *_LIBC_COUNT(__nbytes), int __nbytes, long *) #if __DARWIN_64_BIT_INO_T /* diff --git a/lib/libc/include/any-macos-any/dispatch/base.h b/lib/libc/include/any-macos-any/dispatch/base.h index f924b12b3c..048c0ca885 100644 --- a/lib/libc/include/any-macos-any/dispatch/base.h +++ b/lib/libc/include/any-macos-any/dispatch/base.h @@ -244,11 +244,13 @@ #define DISPATCH_SIZED_BY(X) #endif -#define DISPATCH_OSX_SUPPORTS_AT_LEAST(macos, ios, tvos, watchos) \ +#define DISPATCH_OSX_SUPPORTS_AT_LEAST(macos, ios, tvos, watchos, bridgeos, visionos) \ ( (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= macos) \ || (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= ios) \ || (defined(__TV_OS_VERSION_MIN_REQUIRED) && __TV_OS_VERSION_MIN_REQUIRED >= tvos) \ || (defined(__WATCH_OS_VERSION_MIN_REQUIRED) && __WATCH_OS_VERSION_MIN_REQUIRED >= watchos) \ + || (defined(__BRIDGE_OS_VERSION_MIN_REQUIRED) && __BRIDGE_OS_VERSION_MIN_REQUIRED >= bridgeos) \ + || (defined(__VISION_OS_VERSION_MIN_REQUIRED) && __VISION_OS_VERSION_MIN_REQUIRED >= visionos) \ ) #if !__has_feature(nullability) diff --git a/lib/libc/include/any-macos-any/dispatch/object.h b/lib/libc/include/any-macos-any/dispatch/object.h index b4f641be2f..4ba56a348c 100644 --- a/lib/libc/include/any-macos-any/dispatch/object.h +++ b/lib/libc/include/any-macos-any/dispatch/object.h @@ -71,7 +71,7 @@ DISPATCH_SWIFT_NAME(DispatchObject) OS_OBJECT_DECL_CLASS(dispatch_object); /* * DISPATCH_DECL_SERIAL_EXECUTOR_SWIFT is for declaring subclasses of a serial executor base class. */ -#if DISPATCH_OSX_SUPPORTS_AT_LEAST(140000, 170000, 170000, 100000) +#if DISPATCH_OSX_SUPPORTS_AT_LEAST(140000, 170000, 170000, 100000, 90400, 10000) #define DISPATCH_DECL_SERIAL_EXECUTOR_SWIFT(name, swift_name) \ DISPATCH_DECL_SUBCLASS_SWIFT(name, dispatch_queue_serial_executor, swift_name) #else @@ -159,6 +159,7 @@ typedef union { DISPATCH_EXPORT struct dispatch_source_type_s \ _dispatch_source_type_##name; \ DISPATCH_SWIFT_NAME(swift_name) \ + OS_OBJECT_SWIFT_SENDABLE \ OS_OBJECT_DECL_PROTOCOL(dispatch_source_##name, ); \ OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL( \ dispatch_source, dispatch_source_##name) @@ -173,7 +174,7 @@ typedef union { OS_OBJECT_DECL_PROTOCOL(name, ); \ OS_OBJECT_CLASS_IMPLEMENTS_PROTOCOL(name, name) #ifndef DISPATCH_DATA_DECL -#define DISPATCH_DATA_DECL(name) OS_OBJECT_DECL_SWIFT(name) +#define DISPATCH_DATA_DECL(name) OS_OBJECT_DECL_SENDABLE_SWIFT(name) #endif // DISPATCH_DATA_DECL #define DISPATCH_DATA_DECL_SWIFT(name, swift_name) \ DISPATCH_SWIFT_NAME(swift_name) \ diff --git a/lib/libc/include/any-macos-any/dlfcn.h b/lib/libc/include/any-macos-any/dlfcn.h index fe3b7ed508..73ee657e60 100644 --- a/lib/libc/include/any-macos-any/dlfcn.h +++ b/lib/libc/include/any-macos-any/dlfcn.h @@ -36,11 +36,10 @@ #include #include -#ifdef __DRIVERKIT_19_0 - #define __DYLDDL_DRIVERKIT_UNAVAILABLE __API_UNAVAILABLE(driverkit) -#else - #define __DYLDDL_DRIVERKIT_UNAVAILABLE -#endif +#define __DYLDDL_UNAVAILABLE __API_UNAVAILABLE(driverkit) + +#define __DYLDDL_DLSYM_UNAVAILABLE __API_UNAVAILABLE(driverkit) + #ifdef __cplusplus extern "C" { @@ -63,20 +62,21 @@ extern int dladdr(const void *, Dl_info *); #endif #else - #define __DYLDDL_DRIVERKIT_UNAVAILABLE +#define __DYLDDL_UNAVAILABLE +#define __DYLDDL_DLSYM_UNAVAILABLE #endif /* not POSIX */ #ifdef __cplusplus extern "C" { #endif -extern int dlclose(void * __handle) __DYLDDL_DRIVERKIT_UNAVAILABLE; -extern char * dlerror(void) __DYLDDL_DRIVERKIT_UNAVAILABLE; -extern void * dlopen(const char * __path, int __mode) __DYLDDL_DRIVERKIT_UNAVAILABLE; -extern void * dlsym(void * __handle, const char * __symbol); +extern int dlclose(void * __handle) __DYLDDL_UNAVAILABLE; +extern char * dlerror(void) __DYLDDL_UNAVAILABLE; +extern void * dlopen(const char * __path, int __mode) __DYLDDL_UNAVAILABLE; +extern void * dlsym(void * __handle, const char * __symbol) __DYLDDL_DLSYM_UNAVAILABLE; #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) -extern bool dlopen_preflight(const char* __path) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0) __DYLDDL_DRIVERKIT_UNAVAILABLE; +extern bool dlopen_preflight(const char* __path) __API_AVAILABLE(macos(10.5), ios(2.0)) __DYLDDL_UNAVAILABLE; #endif /* not POSIX */ diff --git a/lib/libc/include/any-macos-any/err.h b/lib/libc/include/any-macos-any/err.h index 0d005d0ab7..6cb230da3b 100644 --- a/lib/libc/include/any-macos-any/err.h +++ b/lib/libc/include/any-macos-any/err.h @@ -66,9 +66,12 @@ * __darwin_va_list from and use it. */ #include +#include <_bounds.h> #include <_types.h> #include +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS void err(int, const char *, ...) __cold __dead2 __printflike(2, 3); void verr(int, const char *, __darwin_va_list) __cold __dead2 __printflike(2, 0); diff --git a/lib/libc/include/any-macos-any/execinfo.h b/lib/libc/include/any-macos-any/execinfo.h index 5f598a73e7..153c8fc8eb 100644 --- a/lib/libc/include/any-macos-any/execinfo.h +++ b/lib/libc/include/any-macos-any/execinfo.h @@ -24,6 +24,7 @@ #define _EXECINFO_H_ 1 #include +#include <_bounds.h> #include #include #include @@ -31,16 +32,18 @@ #include #include +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS -int backtrace(void**,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); +int backtrace(void **_LIBC_COUNT(__size), int __size) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); API_AVAILABLE(macosx(10.14), ios(12.0), tvos(12.0), watchos(5.0)) OS_EXPORT -int backtrace_from_fp(void *startfp, void **array, int size); +int backtrace_from_fp(void *startfp, void **_LIBC_COUNT(size) array, int size); -char** backtrace_symbols(void* const*,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); -void backtrace_symbols_fd(void* const*,int,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); +char *_LIBC_CSTR *_LIBC_COUNT_OR_NULL(__size) backtrace_symbols(void* const* _LIBC_COUNT(__size), int __size) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); +void backtrace_symbols_fd(void* const* _LIBC_COUNT(__size),int __size,int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0); struct image_offset { /* @@ -56,7 +59,7 @@ struct image_offset { API_AVAILABLE(macosx(10.14), ios(12.0), tvos(12.0), watchos(5.0)) OS_EXPORT -void backtrace_image_offsets(void* const* array, +void backtrace_image_offsets(void* const* _LIBC_COUNT(size) array, struct image_offset *image_offsets, int size); /*! @@ -91,7 +94,7 @@ void backtrace_image_offsets(void* const* array, * The number of pointers actually written. */ API_AVAILABLE(macosx(12.0), ios(15.0), tvos(15.0), watchos(8.0)) -size_t backtrace_async(void** array, size_t length, uint32_t *task_id); +size_t backtrace_async(void** _LIBC_COUNT(length) array, size_t length, uint32_t *task_id); __END_DECLS diff --git a/lib/libc/include/any-macos-any/fmtmsg.h b/lib/libc/include/any-macos-any/fmtmsg.h index 05ff534ad3..febbb155fd 100644 --- a/lib/libc/include/any-macos-any/fmtmsg.h +++ b/lib/libc/include/any-macos-any/fmtmsg.h @@ -29,6 +29,10 @@ #ifndef _FMTMSG_H_ #define _FMTMSG_H_ +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() + /* Source of condition is... */ #define MM_HARD 0x0001 /* ...hardware. */ #define MM_SOFT 0x0002 /* ...software. */ diff --git a/lib/libc/include/any-macos-any/fnmatch.h b/lib/libc/include/any-macos-any/fnmatch.h index e1ffaea62a..e052d68152 100644 --- a/lib/libc/include/any-macos-any/fnmatch.h +++ b/lib/libc/include/any-macos-any/fnmatch.h @@ -58,8 +58,11 @@ #ifndef _FNMATCH_H_ #define _FNMATCH_H_ +#include <_bounds.h> #include +_LIBC_SINGLE_BY_DEFAULT() + #define FNM_NOMATCH 1 /* Match failed. */ #define FNM_NOESCAPE 0x01 /* Disable backslash escaping. */ diff --git a/lib/libc/include/any-macos-any/fts.h b/lib/libc/include/any-macos-any/fts.h index d7baee2675..42f4bbad6b 100644 --- a/lib/libc/include/any-macos-any/fts.h +++ b/lib/libc/include/any-macos-any/fts.h @@ -63,15 +63,18 @@ #include #include +#include <_bounds.h> #include +_LIBC_SINGLE_BY_DEFAULT() + #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wstrict-prototypes" typedef struct { struct _ftsent *fts_cur; /* current node */ struct _ftsent *fts_child; /* linked list of children */ - struct _ftsent **fts_array; /* sort array */ + struct _ftsent **_LIBC_COUNT(fts_nitems) fts_array; /* sort array */ dev_t fts_dev; /* starting device # */ char *fts_path; /* path for this descent */ int fts_rfd; /* fd for root */ @@ -117,8 +120,8 @@ typedef struct _ftsent { struct _ftsent *fts_link; /* next file in directory */ long fts_number; /* local numeric value */ void *fts_pointer; /* local address value */ - char *fts_accpath; /* access path */ - char *fts_path; /* root path */ + char *_LIBC_CSTR fts_accpath; /* access path */ + char *_LIBC_CSTR fts_path; /* root path */ int fts_errno; /* errno for this node */ int fts_symfd; /* fd for symlink or chdir */ unsigned short fts_pathlen; /* strlen(fts_path) */ @@ -162,7 +165,7 @@ typedef struct _ftsent { unsigned short fts_instr; /* fts_set() instructions */ struct stat *fts_statp; /* stat(2) information */ - char fts_name[1]; /* file name */ + char fts_name[1]; /* file name, unsafe with -fbounds-safety */ } FTSENT; #include @@ -171,7 +174,7 @@ typedef struct _ftsent { __BEGIN_DECLS FTSENT *fts_children(FTS *, int) __DARWIN_INODE64(fts_children); int fts_close(FTS *) __DARWIN_INODE64(fts_close); -FTS *fts_open(char * const *, int, +FTS *fts_open(char *_LIBC_CSTR const *, int, int (*)(const FTSENT **, const FTSENT **)) __DARWIN_INODE64(fts_open); #ifdef __BLOCKS__ #if __has_attribute(noescape) @@ -179,7 +182,7 @@ FTS *fts_open(char * const *, int, #else #define __fts_noescape #endif -FTS *fts_open_b(char * const *, int, +FTS *fts_open_b(char *_LIBC_CSTR const *, int, int (^)(const FTSENT **, const FTSENT **) __fts_noescape) __DARWIN_INODE64(fts_open_b) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2); #endif /* __BLOCKS__ */ diff --git a/lib/libc/include/any-macos-any/ftw.h b/lib/libc/include/any-macos-any/ftw.h index acf0bc54c6..c22acf9afa 100644 --- a/lib/libc/include/any-macos-any/ftw.h +++ b/lib/libc/include/any-macos-any/ftw.h @@ -24,6 +24,9 @@ #define _FTW_H #include +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() /* * Valid flags for the 3rd argument to the function that is passed as the diff --git a/lib/libc/include/any-macos-any/getopt.h b/lib/libc/include/any-macos-any/getopt.h index 3247fe01f3..01ba3d086a 100644 --- a/lib/libc/include/any-macos-any/getopt.h +++ b/lib/libc/include/any-macos-any/getopt.h @@ -41,8 +41,11 @@ #define _GETOPT_H_ #include +#include <_bounds.h> #include +_LIBC_SINGLE_BY_DEFAULT() + /* * GNU-like getopt_long()/getopt_long_only() with 4.4BSD optreset extension. * getopt() is declared here too for GNU programs. @@ -66,15 +69,15 @@ struct option { }; __BEGIN_DECLS -int getopt_long(int, char * const *, const char *, +int getopt_long(int __argc, char *_LIBC_CSTR const *_LIBC_COUNT(__argc), const char *, const struct option *, int *); -int getopt_long_only(int, char * const *, const char *, +int getopt_long_only(int __argc, char * const *_LIBC_COUNT(__argc), const char *, const struct option *, int *); #ifndef _GETOPT #define _GETOPT -int getopt(int, char * const [], const char *) __DARWIN_ALIAS(getopt); +int getopt(int __argc, char *_LIBC_CSTR const [_LIBC_COUNT(__argc)], const char *) __DARWIN_ALIAS(getopt); -extern char *optarg; /* getopt(3) external variables */ +extern char *_LIBC_CSTR optarg; /* getopt(3) external variables */ extern int optind, opterr, optopt; #endif #ifndef _OPTRESET diff --git a/lib/libc/include/any-macos-any/glob.h b/lib/libc/include/any-macos-any/glob.h index 50881d7a05..93a912df20 100644 --- a/lib/libc/include/any-macos-any/glob.h +++ b/lib/libc/include/any-macos-any/glob.h @@ -38,9 +38,12 @@ #include <_types.h> #include +#include <_bounds.h> #include #include +_LIBC_SINGLE_BY_DEFAULT() + #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) struct dirent; struct stat; @@ -50,7 +53,7 @@ typedef struct { int gl_matchc; /* Count of paths matching pattern. */ size_t gl_offs; /* Reserved at beginning of gl_pathv. */ int gl_flags; /* Copy of flags parameter to glob. */ - char **gl_pathv; /* List of paths matching pattern. */ + char *_LIBC_CSTR *_LIBC_COUNT(gl_matchc) gl_pathv; /* List of paths matching pattern. */ /* Copy of errfunc parameter to glob. */ #ifdef __BLOCKS__ union { diff --git a/lib/libc/include/any-macos-any/libgen.h b/lib/libc/include/any-macos-any/libgen.h index 28e7ed483c..d105f2980b 100644 --- a/lib/libc/include/any-macos-any/libgen.h +++ b/lib/libc/include/any-macos-any/libgen.h @@ -32,18 +32,21 @@ #define _LIBGEN_H_ #include +#include <_bounds.h> + +_LIBC_SINGLE_BY_DEFAULT() __BEGIN_DECLS #if __DARWIN_UNIX03 -char *basename(char *); -char *dirname(char *); +char *_LIBC_CSTR basename(char *_LIBC_CSTR); +char *_LIBC_CSTR dirname(char *_LIBC_CSTR); #else /* !__DARWIN_UNIX03 */ -char *basename(const char *); -char *dirname(const char *); +char *_LIBC_CSTR basename(const char *); +char *_LIBC_CSTR dirname(const char *); #endif /* __DARWIN_UNIX_03 */ @@ -51,14 +54,15 @@ __END_DECLS #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL #include +#include __BEGIN_DECLS -char *basename_r(const char *, char *) +char *_LIBC_CSTR basename_r(const char *, char *_LIBC_COUNT(PATH_MAX)) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); -char *dirname_r(const char *, char *) +char *_LIBC_CSTR dirname_r(const char *, char *_LIBC_COUNT(PATH_MAX)) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); diff --git a/lib/libc/include/any-macos-any/libkern/OSThermalNotification.h b/lib/libc/include/any-macos-any/libkern/OSThermalNotification.h index 60e8c264e4..72c93a2479 100644 --- a/lib/libc/include/any-macos-any/libkern/OSThermalNotification.h +++ b/lib/libc/include/any-macos-any/libkern/OSThermalNotification.h @@ -24,10 +24,13 @@ #ifndef _OSTHERMALNOTIFICATION_H_ #define _OSTHERMALNOTIFICATION_H_ +#include <_bounds.h> #include #include #include +_LIBC_SINGLE_BY_DEFAULT() + /* ** OSThermalNotification.h ** diff --git a/lib/libc/include/any-macos-any/locale.h b/lib/libc/include/any-macos-any/locale.h index ab28ceba40..3af5442bc3 100644 --- a/lib/libc/include/any-macos-any/locale.h +++ b/lib/libc/include/any-macos-any/locale.h @@ -37,8 +37,11 @@ #ifndef _LOCALE_H_ #define _LOCALE_H_ +#include <_bounds.h> #include <_locale.h> +_LIBC_SINGLE_BY_DEFAULT() + #define LC_ALL 0 #define LC_COLLATE 1 #define LC_CTYPE 2 @@ -50,7 +53,7 @@ #define _LC_LAST 7 /* marks end */ __BEGIN_DECLS -char *setlocale(int, const char *); +char *_LIBC_CSTR setlocale(int, const char *); __END_DECLS #endif /* _LOCALE_H_ */ diff --git a/lib/libc/include/any-macos-any/mach-o/dyld.h b/lib/libc/include/any-macos-any/mach-o/dyld.h index e14e670189..7cdeb19cbc 100644 --- a/lib/libc/include/any-macos-any/mach-o/dyld.h +++ b/lib/libc/include/any-macos-any/mach-o/dyld.h @@ -57,10 +57,10 @@ extern "C" { * will return the mach_header and name of an image, given an address in * the image. dladdr() is thread safe. */ -extern uint32_t _dyld_image_count(void) __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0); -extern const struct mach_header* _dyld_get_image_header(uint32_t image_index) __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0); -extern intptr_t _dyld_get_image_vmaddr_slide(uint32_t image_index) __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0); -extern const char* _dyld_get_image_name(uint32_t image_index) __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0); +extern uint32_t _dyld_image_count(void) __API_AVAILABLE(macos(10.1), ios(2.0)); +extern const struct mach_header* _dyld_get_image_header(uint32_t image_index) __API_AVAILABLE(macos(10.1), ios(2.0)); +extern intptr_t _dyld_get_image_vmaddr_slide(uint32_t image_index) __API_AVAILABLE(macos(10.1), ios(2.0)); +extern const char* _dyld_get_image_name(uint32_t image_index) __API_AVAILABLE(macos(10.1), ios(2.0)); /* @@ -71,8 +71,8 @@ extern const char* _dyld_get_image_name(uint32_t image_index) * _dyld_register_func_for_remove_image() is called after any terminators in an image are run * and before the image is un-memory-mapped. */ -extern void _dyld_register_func_for_add_image(void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide)) __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0); -extern void _dyld_register_func_for_remove_image(void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide)) __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0); +extern void _dyld_register_func_for_add_image(void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide)) __API_AVAILABLE(macos(10.1), ios(2.0)); +extern void _dyld_register_func_for_remove_image(void (*func)(const struct mach_header* mh, intptr_t vmaddr_slide)) __API_AVAILABLE(macos(10.1), ios(2.0)); /* @@ -80,7 +80,7 @@ extern void _dyld_register_func_for_remove_image(void (*func)(const struct mach_ * specifed by the libraryName. The libraryName parameter would be "bar" for /path/libbar.3.dylib and * "Foo" for /path/Foo.framework/Versions/A/Foo. It returns -1 if no such library is loaded. */ -extern int32_t NSVersionOfRunTimeLibrary(const char* libraryName) __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0); +extern int32_t NSVersionOfRunTimeLibrary(const char* libraryName) __API_AVAILABLE(macos(10.1), ios(2.0)); /* @@ -89,7 +89,7 @@ extern int32_t NSVersionOfRunTimeLibrary(const char* libraryName) __O * "Foo" for /path/Foo.framework/Versions/A/Foo. It returns -1 if the main executable did not link * against the specified library. */ -extern int32_t NSVersionOfLinkTimeLibrary(const char* libraryName) __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_2_0); +extern int32_t NSVersionOfLinkTimeLibrary(const char* libraryName) __API_AVAILABLE(macos(10.1), ios(2.0)); /* @@ -102,7 +102,7 @@ extern int32_t NSVersionOfLinkTimeLibrary(const char* libraryName) __O * That is the path may be a symbolic link and not the real file. With deep directories the total bufsize * needed could be more than MAXPATHLEN. */ -extern int _NSGetExecutablePath(char* buf, uint32_t* bufsize) __OSX_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_2_0); +extern int _NSGetExecutablePath(char* buf, uint32_t* bufsize) __API_AVAILABLE(macos(10.2), ios(2.0)); @@ -110,14 +110,14 @@ extern int _NSGetExecutablePath(char* buf, uint32_t* bufsize) __ * Registers a function to be called when the current thread terminates. * Called by c++ compiler to implement destructors on thread_local object variables. */ -extern void _tlv_atexit(void (*termFunc)(void* objAddr), void* objAddr) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0); +extern void _tlv_atexit(void (*termFunc)(void* objAddr), void* objAddr) __API_AVAILABLE(macos(10.10), ios(8.0)); /* * Never called. On-disk thread local variables contain a pointer to this. Once * the thread local is prepared, the pointer changes to a real handler such as tlv_get_addr. */ -extern void _tlv_bootstrap(void) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0) DYLD_DRIVERKIT_UNAVAILABLE ; +extern void _tlv_bootstrap(void) __API_AVAILABLE(macos(10.10), ios(8.0)) DYLD_DRIVERKIT_UNAVAILABLE ; /* diff --git a/lib/libc/include/any-macos-any/mach-o/loader.h b/lib/libc/include/any-macos-any/mach-o/loader.h index dc6e11fc0d..0f1ad45923 100644 --- a/lib/libc/include/any-macos-any/mach-o/loader.h +++ b/lib/libc/include/any-macos-any/mach-o/loader.h @@ -343,6 +343,11 @@ struct load_command { #define LC_DYLD_CHAINED_FIXUPS (0x34 | LC_REQ_DYLD) /* used with linkedit_data_command */ #define LC_FILESET_ENTRY (0x35 | LC_REQ_DYLD) /* used with fileset_entry_command */ #define LC_ATOM_INFO 0x36 /* used with linkedit_data_command */ +#define LC_FUNCTION_VARIANTS 0x37 /* used with linkedit_data_command */ +#define LC_FUNCTION_VARIANT_FIXUPS 0x38 /* used with linkedit_data_command */ +#define LC_TARGET_TRIPLE 0x39 /* target triple used to compile */ + + /* * A variable length string in a load command is represented by an lc_str @@ -1225,6 +1230,16 @@ struct rpath_command { union lc_str path; /* path to add to run path */ }; +/* + * The target_triple_command contains a string which specifies the + * target triple (e.g. "arm64e-apple-macosx15.0.0") used to compile the code. + */ +struct target_triple_command { + uint32_t cmd; /* LC_TARGET_TRIPLE */ + uint32_t cmdsize; /* including string */ + union lc_str triple; /* target triple string */ +}; + /* * The linkedit_data_command contains the offsets and sizes of a blob * of data in the __LINKEDIT segment. @@ -1234,7 +1249,8 @@ struct linkedit_data_command { LC_FUNCTION_STARTS, LC_DATA_IN_CODE, LC_DYLIB_CODE_SIGN_DRS, LC_ATOM_INFO, LC_LINKER_OPTIMIZATION_HINT, - LC_DYLD_EXPORTS_TRIE, or + LC_DYLD_EXPORTS_TRIE, + LC_FUNCTION_VARIANTS, LC_FUNCTION_VARIANT_FIXUPS, or LC_DYLD_CHAINED_FIXUPS. */ uint32_t cmdsize; /* sizeof(struct linkedit_data_command) */ uint32_t dataoff; /* file offset of data in __LINKEDIT segment */ @@ -1319,21 +1335,29 @@ struct build_tool_version { #define PLATFORM_VISIONOS 11 #define PLATFORM_VISIONOSSIMULATOR 12 -#ifndef __OPEN_SOURCE__ - -#endif /* __OPEN_SOURCE__ */ - #define PLATFORM_FIRMWARE 13 #define PLATFORM_SEPOS 14 -#ifndef __OPEN_SOURCE__ - -#endif /* __OPEN_SOURCE__ */ +#define PLATFORM_MACOS_EXCLAVECORE 15 +#define PLATFORM_MACOS_EXCLAVEKIT 16 +#define PLATFORM_IOS_EXCLAVECORE 17 +#define PLATFORM_IOS_EXCLAVEKIT 18 +#define PLATFORM_TVOS_EXCLAVECORE 19 +#define PLATFORM_TVOS_EXCLAVEKIT 20 +#define PLATFORM_WATCHOS_EXCLAVECORE 21 +#define PLATFORM_WATCHOS_EXCLAVEKIT 22 +#define PLATFORM_VISIONOS_EXCLAVECORE 23 +#define PLATFORM_VISIONOS_EXCLAVEKIT 24 #ifndef __OPEN_SOURCE__ #endif /* __OPEN_SOURCE__ */ + +#ifndef __OPEN_SOURCE__ + +#endif // __OPEN_SOURCE__ + /* Known values for the tool field above. */ #define TOOL_CLANG 1 #define TOOL_SWIFT 2 diff --git a/lib/libc/include/any-macos-any/mach/arm/_structs.h b/lib/libc/include/any-macos-any/mach/arm/_structs.h index a948a45da0..eb30f0ab46 100644 --- a/lib/libc/include/any-macos-any/mach/arm/_structs.h +++ b/lib/libc/include/any-macos-any/mach/arm/_structs.h @@ -611,6 +611,72 @@ _STRUCT_ARM_PAGEIN_STATE int __pagein_error; }; +#if __DARWIN_UNIX03 +#define _STRUCT_ARM_SME_STATE struct __darwin_arm_sme_state +_STRUCT_ARM_SME_STATE +{ + __uint64_t __svcr; + __uint64_t __tpidr2_el0; + __uint16_t __svl_b; +}; + +#define _STRUCT_ARM_SVE_Z_STATE struct __darwin_arm_sve_z_state +_STRUCT_ARM_SVE_Z_STATE +{ + char __z[16][256]; +} __attribute__((aligned(4))); + +#define _STRUCT_ARM_SVE_P_STATE struct __darwin_arm_sve_p_state +_STRUCT_ARM_SVE_P_STATE +{ + char __p[16][256 / 8]; +} __attribute__((aligned(4))); + +#define _STRUCT_ARM_SME_ZA_STATE struct __darwin_arm_sme_za_state +_STRUCT_ARM_SME_ZA_STATE +{ + char __za[4096]; +} __attribute__((aligned(4))); + +#define _STRUCT_ARM_SME2_STATE struct __darwin_arm_sme2_state +_STRUCT_ARM_SME2_STATE +{ + char __zt0[64]; +} __attribute__((aligned(4))); +#else /* !__DARWIN_UNIX03 */ +#define _STRUCT_ARM_SME_STATE struct arm_sme_state +_STRUCT_ARM_SME_STATE +{ + __uint64_t svcr; + __uint64_t tpidr2_el0; + __uint16_t svl_b; +}; + +#define _STRUCT_ARM_SVE_Z_STATE struct arm_sve_z_state +_STRUCT_ARM_SVE_Z_STATE +{ + char z[16][256]; +} __attribute__((aligned(4))); + +#define _STRUCT_ARM_SVE_P_STATE struct arm_sve_p_state +_STRUCT_ARM_SVE_P_STATE +{ + char p[16][256 / 8]; +} __attribute__((aligned(4))); + +#define _STRUCT_ARM_SME_ZA_STATE struct arm_sme_za_state +_STRUCT_ARM_SME_ZA_STATE +{ + char za[4096]; +} __attribute__((aligned(4))); + +#define _STRUCT_ARM_SME2_STATE struct arm_sme2_state +_STRUCT_ARM_SME2_STATE +{ + char zt0[64]; +} __attribute__((aligned(4))); +#endif /* __DARWIN_UNIX03 */ + /* * Debug State */ diff --git a/lib/libc/include/any-macos-any/mach/arm/thread_status.h b/lib/libc/include/any-macos-any/mach/arm/thread_status.h index 0cc15f58b4..9a6a06384d 100644 --- a/lib/libc/include/any-macos-any/mach/arm/thread_status.h +++ b/lib/libc/include/any-macos-any/mach/arm/thread_status.h @@ -73,8 +73,30 @@ #define ARM_PAGEIN_STATE 27 +/* API */ +#define ARM_SME_STATE 28 +#define ARM_SVE_Z_STATE1 29 +#define ARM_SVE_Z_STATE2 30 +#define ARM_SVE_P_STATE 31 +#define ARM_SME_ZA_STATE1 32 +#define ARM_SME_ZA_STATE2 33 +#define ARM_SME_ZA_STATE3 34 +#define ARM_SME_ZA_STATE4 35 +#define ARM_SME_ZA_STATE5 36 +#define ARM_SME_ZA_STATE6 37 +#define ARM_SME_ZA_STATE7 38 +#define ARM_SME_ZA_STATE8 39 +#define ARM_SME_ZA_STATE9 40 +#define ARM_SME_ZA_STATE10 41 +#define ARM_SME_ZA_STATE11 42 +#define ARM_SME_ZA_STATE12 42 +#define ARM_SME_ZA_STATE13 44 +#define ARM_SME_ZA_STATE14 45 +#define ARM_SME_ZA_STATE15 46 +#define ARM_SME_ZA_STATE16 47 +#define ARM_SME2_STATE 48 -#define THREAD_STATE_FLAVORS 29 /* This must be updated to 1 more than the highest numerical state flavor */ +#define THREAD_STATE_FLAVORS 50 /* This must be updated to 1 more than the highest numerical state flavor */ #ifndef ARM_STATE_FLAVOR_IS_OTHER_VALID #define ARM_STATE_FLAVOR_IS_OTHER_VALID(_flavor_) 0 @@ -101,6 +123,11 @@ (x == ARM_DEBUG_STATE64) || \ (x == ARM_PAGEIN_STATE) || \ (ARM_STATE_FLAVOR_IS_OTHER_VALID(x))) +/* + * VALID_THREAD_STATE_FLAVOR() intentionally excludes ARM_SME_STATE through + * ARM_SME2_STATE, since these are not currently supported inside Mach exception + * ports. + */ struct arm_state_hdr { uint32_t flavor; @@ -199,6 +226,12 @@ typedef _STRUCT_ARM_DEBUG_STATE64 arm_debug_state64_t; typedef _STRUCT_ARM_PAGEIN_STATE arm_pagein_state_t; +typedef _STRUCT_ARM_SME_STATE arm_sme_state_t; +typedef _STRUCT_ARM_SVE_Z_STATE arm_sve_z_state_t; +typedef _STRUCT_ARM_SVE_P_STATE arm_sve_p_state_t; +typedef _STRUCT_ARM_SME_ZA_STATE arm_sme_za_state_t; +typedef _STRUCT_ARM_SME2_STATE arm_sme2_state_t; + /* * Otherwise not ARM64 kernel and we must preserve legacy ARM definitions of * arm_debug_state for binary compatability of userland consumers of this file. @@ -241,6 +274,21 @@ typedef _STRUCT_ARM_LEGACY_DEBUG_STATE arm_debug_state_t; #define ARM_NEON_STATE64_COUNT ((mach_msg_type_number_t) \ (sizeof (arm_neon_state64_t)/sizeof(uint32_t))) +#define ARM_SME_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof (arm_sme_state_t)/sizeof(uint32_t))) + +#define ARM_SVE_Z_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof (arm_sve_z_state_t)/sizeof(uint32_t))) + +#define ARM_SVE_P_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof (arm_sve_p_state_t)/sizeof(uint32_t))) + +#define ARM_SME_ZA_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof (arm_sme_za_state_t)/sizeof(uint32_t))) + +#define ARM_SME2_STATE_COUNT ((mach_msg_type_number_t) \ + (sizeof (arm_sme2_state_t)/sizeof(uint32_t))) + #define MACHINE_THREAD_STATE ARM_THREAD_STATE #define MACHINE_THREAD_STATE_COUNT ARM_UNIFIED_THREAD_STATE_COUNT diff --git a/lib/libc/include/any-macos-any/mach/mach_init.h b/lib/libc/include/any-macos-any/mach/mach_init.h index 4838052e5c..1079b2080f 100644 --- a/lib/libc/include/any-macos-any/mach/mach_init.h +++ b/lib/libc/include/any-macos-any/mach/mach_init.h @@ -77,7 +77,7 @@ __API_AVAILABLE(macos(11.3), ios(14.5), tvos(14.5), watchos(7.3)) extern boolean_t mach_task_is_self(task_name_t task); extern kern_return_t host_page_size(host_t, vm_size_t *); -extern mach_port_t mach_task_self_; +extern __swift_nonisolated_unsafe mach_port_t mach_task_self_; #define mach_task_self() mach_task_self_ #define current_task() mach_task_self() diff --git a/lib/libc/include/any-macos-any/mach/mach_time.h b/lib/libc/include/any-macos-any/mach/mach_time.h index 67618e0076..4f47942697 100644 --- a/lib/libc/include/any-macos-any/mach/mach_time.h +++ b/lib/libc/include/any-macos-any/mach/mach_time.h @@ -67,6 +67,10 @@ uint64_t mach_continuous_time(void); __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0) uint64_t mach_continuous_approximate_time(void); +/* + * variant of mach_continuous_time that uses speculative timebase + */ + __END_DECLS diff --git a/lib/libc/include/any-macos-any/mach/mach_types.h b/lib/libc/include/any-macos-any/mach/mach_types.h index a8b8785452..85e4223dc9 100644 --- a/lib/libc/include/any-macos-any/mach/mach_types.h +++ b/lib/libc/include/any-macos-any/mach/mach_types.h @@ -218,7 +218,7 @@ typedef exception_handler_t exception_port_t; typedef exception_handler_array_t exception_port_arrary_t; typedef char vfs_path_t[4096]; /* - * 8K, c.f. FSGETPATH_MAXBUFLEN in bsd/vfs/vfs_syscalls.c. + * 8K, c.f. MAXLONGPATHLEN in sys/syslimits.h. * These types should NEVER be allocated on the stack. */ typedef char nspace_path_t[8192]; diff --git a/lib/libc/include/any-macos-any/mach/port.h b/lib/libc/include/any-macos-any/mach/port.h index b96ff9d3b6..bb9a2bc69e 100644 --- a/lib/libc/include/any-macos-any/mach/port.h +++ b/lib/libc/include/any-macos-any/mach/port.h @@ -394,48 +394,59 @@ typedef mach_port_options_t *mach_port_options_ptr_t; */ #define GUARD_TYPE_MACH_PORT 0x1 -/* Reasons for exception for a guarded mach port */ +/* + * Reasons for exception for a guarded mach port + * + * Arguments are documented in doc/mach_ipc/guard_exceptions.md, + * please update when adding a new type. + * + * Note: these had been designed as bitfields, + * hence the weird spaced values, + * but are truly an enum, please add new values in the "holes". + */ enum mach_port_guard_exception_codes { - kGUARD_EXC_DESTROY = 1, - kGUARD_EXC_MOD_REFS = 2, - kGUARD_EXC_INVALID_OPTIONS = 3, - kGUARD_EXC_SET_CONTEXT = 4, - kGUARD_EXC_THREAD_SET_STATE = 5, - kGUARD_EXC_EXCEPTION_BEHAVIOR_ENFORCE= 6, - kGUARD_EXC_UNGUARDED = 1u << 3, - kGUARD_EXC_INCORRECT_GUARD = 1u << 4, - kGUARD_EXC_IMMOVABLE = 1u << 5, - kGUARD_EXC_STRICT_REPLY = 1u << 6, - kGUARD_EXC_MSG_FILTERED = 1u << 7, + kGUARD_EXC_DESTROY = 1, + kGUARD_EXC_MOD_REFS = 2, + kGUARD_EXC_INVALID_OPTIONS = 3, + kGUARD_EXC_SET_CONTEXT = 4, + kGUARD_EXC_THREAD_SET_STATE = 5, + kGUARD_EXC_EXCEPTION_BEHAVIOR_ENFORCE = 6, + kGUARD_EXC_SERVICE_PORT_VIOLATION_FATAL = 7, /* unused, for future sp defense enablement */ + kGUARD_EXC_UNGUARDED = 8, + kGUARD_EXC_INCORRECT_GUARD = 16, + kGUARD_EXC_IMMOVABLE = 32, + kGUARD_EXC_STRICT_REPLY = 64, + kGUARD_EXC_MSG_FILTERED = 128, /* start of [optionally] non-fatal guards */ - kGUARD_EXC_INVALID_RIGHT = 1u << 8, - kGUARD_EXC_INVALID_NAME = 1u << 9, - kGUARD_EXC_INVALID_VALUE = 1u << 10, - kGUARD_EXC_INVALID_ARGUMENT = 1u << 11, - kGUARD_EXC_RIGHT_EXISTS = 1u << 12, - kGUARD_EXC_KERN_NO_SPACE = 1u << 13, - kGUARD_EXC_KERN_FAILURE = 1u << 14, - kGUARD_EXC_KERN_RESOURCE = 1u << 15, - kGUARD_EXC_SEND_INVALID_REPLY = 1u << 16, - kGUARD_EXC_SEND_INVALID_VOUCHER = 1u << 17, - kGUARD_EXC_SEND_INVALID_RIGHT = 1u << 18, - kGUARD_EXC_RCV_INVALID_NAME = 1u << 19, + kGUARD_EXC_INVALID_RIGHT = 256, + kGUARD_EXC_INVALID_NAME = 512, + kGUARD_EXC_INVALID_VALUE = 1u << 10, + kGUARD_EXC_INVALID_ARGUMENT = 1u << 11, /* really kGUARD_EXC_ALREADY_GUARDED */ + kGUARD_EXC_RIGHT_EXISTS = 1u << 12, /* unused */ + kGUARD_EXC_KERN_NO_SPACE = 1u << 13, /* unused */ + kGUARD_EXC_KERN_FAILURE = 1u << 14, /* really kGUARD_EXC_INVALID_PDREQUEST */ + kGUARD_EXC_KERN_RESOURCE = 1u << 15, /* unused */ + kGUARD_EXC_SEND_INVALID_REPLY = 1u << 16, + kGUARD_EXC_SEND_INVALID_VOUCHER = 1u << 17, + kGUARD_EXC_SEND_INVALID_RIGHT = 1u << 18, + kGUARD_EXC_RCV_INVALID_NAME = 1u << 19, /* start of always non-fatal guards */ - kGUARD_EXC_RCV_GUARDED_DESC = 1u << 20, /* for development only */ + kGUARD_EXC_RCV_GUARDED_DESC = 0x00100000, /* for development only */ + kGUARD_EXC_SERVICE_PORT_VIOLATION_NON_FATAL = 0x00100001, /* unused, for future sp defense enablement */ + kGUARD_EXC_PROVISIONAL_REPLY_PORT = 0x00100002, kGUARD_EXC_MOD_REFS_NON_FATAL = 1u << 21, kGUARD_EXC_IMMOVABLE_NON_FATAL = 1u << 22, kGUARD_EXC_REQUIRE_REPLY_PORT_SEMANTICS = 1u << 23, }; -#define MAX_FATAL_kGUARD_EXC_CODE (1u << 7) +#define MAX_FATAL_kGUARD_EXC_CODE kGUARD_EXC_MSG_FILTERED +#define MAX_OPTIONAL_kGUARD_EXC_CODE kGUARD_EXC_RCV_INVALID_NAME /* * Mach port guard flags. */ #define MPG_FLAGS_NONE (0x00ull) -#define MAX_OPTIONAL_kGUARD_EXC_CODE (1u << 19) - /* * These flags are used as bits in the subcode of kGUARD_EXC_STRICT_REPLY exceptions. */ diff --git a/lib/libc/include/any-macos-any/mach/task_info.h b/lib/libc/include/any-macos-any/mach/task_info.h index dce8583189..e9e9645fbe 100644 --- a/lib/libc/include/any-macos-any/mach/task_info.h +++ b/lib/libc/include/any-macos-any/mach/task_info.h @@ -502,6 +502,15 @@ typedef struct task_flags_info * task_flags_info_t; +#define TASK_SECURITY_CONFIG_INFO 32 /* Runtime security mitigations configuration for the task */ +struct task_security_config_info { + uint32_t config; /* Configuration bitmask */ +}; + +typedef struct task_security_config_info * task_security_config_info_t; +#define TASK_SECURITY_CONFIG_INFO_COUNT ((mach_msg_type_number_t) \ + (sizeof(struct task_security_config_info) / sizeof(natural_t))) + /* * Type to control EXC_GUARD delivery options for a task * via task_get/set_exc_guard_behavior interface(s). diff --git a/lib/libc/include/any-macos-any/mach/task_policy.h b/lib/libc/include/any-macos-any/mach/task_policy.h index 2ffe7166d0..c1bb833820 100644 --- a/lib/libc/include/any-macos-any/mach/task_policy.h +++ b/lib/libc/include/any-macos-any/mach/task_policy.h @@ -172,7 +172,7 @@ typedef struct task_qos_policy *task_qos_policy_t; #define PROC_FLAG_DARWINBG 0x8000 /* process in darwin background */ #define PROC_FLAG_EXT_DARWINBG 0x10000 /* process in darwin background - external enforcement */ #define PROC_FLAG_IOS_APPLEDAEMON 0x20000 /* process is apple ios daemon */ -#define PROC_FLAG_IOS_IMPPROMOTION 0x80000 /* process is apple ios daemon */ +#define PROC_FLAG_IOS_IMPPROMOTION 0x80000 /* process is able to receive an importance donation */ #define PROC_FLAG_ADAPTIVE 0x100000 /* Process is adaptive */ #define PROC_FLAG_ADAPTIVE_IMPORTANT 0x200000 /* Process is adaptive, and is currently important */ #define PROC_FLAG_IMPORTANCE_DONOR 0x400000 /* Process is marked as an importance donor */ diff --git a/lib/libc/include/any-macos-any/mach/vm_statistics.h b/lib/libc/include/any-macos-any/mach/vm_statistics.h index cbcc47742d..be49304820 100644 --- a/lib/libc/include/any-macos-any/mach/vm_statistics.h +++ b/lib/libc/include/any-macos-any/mach/vm_statistics.h @@ -66,6 +66,7 @@ #ifndef _MACH_VM_STATISTICS_H_ #define _MACH_VM_STATISTICS_H_ +#include #include #include @@ -330,12 +331,18 @@ typedef struct vm_purgeable_info *vm_purgeable_info_t; #define GUARD_TYPE_VIRT_MEMORY 0x5 /* Reasons for exception for virtual memory */ -enum virtual_memory_guard_exception_codes { - kGUARD_EXC_DEALLOC_GAP = 1u << 0, - kGUARD_EXC_RECLAIM_COPYIO_FAILURE = 1u << 1, - kGUARD_EXC_RECLAIM_INDEX_FAILURE = 1u << 2, - kGUARD_EXC_RECLAIM_DEALLOCATE_FAILURE = 1u << 3, -}; +__enum_decl(virtual_memory_guard_exception_code_t, uint32_t, { + kGUARD_EXC_DEALLOC_GAP = 1, + kGUARD_EXC_RECLAIM_COPYIO_FAILURE = 2, + kGUARD_EXC_SEC_LOOKUP_DENIED = 3, + kGUARD_EXC_RECLAIM_INDEX_FAILURE = 4, + kGUARD_EXC_SEC_RANGE_DENIED = 6, + kGUARD_EXC_SEC_ACCESS_FAULT = 7, + kGUARD_EXC_RECLAIM_DEALLOCATE_FAILURE = 8, + kGUARD_EXC_SEC_COPY_DENIED = 16, + kGUARD_EXC_SEC_SHARING_DENIED = 32, + kGUARD_EXC_SEC_ASYNC_ACCESS_FAULT = 64, +}); /* current accounting postmark */ diff --git a/lib/libc/include/any-macos-any/mach/vm_types.h b/lib/libc/include/any-macos-any/mach/vm_types.h index 2a21b70600..18b74c7815 100644 --- a/lib/libc/include/any-macos-any/mach/vm_types.h +++ b/lib/libc/include/any-macos-any/mach/vm_types.h @@ -77,6 +77,8 @@ typedef mach_port_t upl_t; typedef mach_port_t vm_named_entry_t; +typedef mach_vm_offset_t *mach_vm_offset_list_t; + #define VM_MAP_NULL ((vm_map_t) 0) #define VM_MAP_INSPECT_NULL ((vm_map_inspect_t) 0) #define VM_MAP_READ_NULL ((vm_map_read_t) 0) diff --git a/lib/libc/include/any-macos-any/malloc/_malloc_type.h b/lib/libc/include/any-macos-any/malloc/_malloc_type.h index 666fda5c59..44474cbb91 100644 --- a/lib/libc/include/any-macos-any/malloc/_malloc_type.h +++ b/lib/libc/include/any-macos-any/malloc/_malloc_type.h @@ -73,7 +73,7 @@ __END_DECLS /* Rewrite enablement */ #if defined(__has_feature) && __has_feature(typed_memory_operations) -#if __has_builtin(__is_target_os) && (__is_target_os(ios) || __is_target_os(driverkit) || __is_target_os(macos) || (__has_builtin(__is_target_environment) && (__is_target_environment(exclavekit) || __is_target_environment(exclavecore)))) +#if __has_builtin(__is_target_os) && (__is_target_os(ios) || __is_target_os(driverkit) || __is_target_os(macos) || __is_target_os(xros) || __is_target_os(watchos) || __is_target_os(tvos) || (__has_builtin(__is_target_environment) && (__is_target_environment(exclavekit) || __is_target_environment(exclavecore)))) #define _MALLOC_TYPED(override, type_param_pos) __attribute__((typed_memory_operation(override, type_param_pos))) #define _MALLOC_TYPE_ENABLED 1 #endif diff --git a/lib/libc/include/any-macos-any/math.h b/lib/libc/include/any-macos-any/math.h index 804c8199a8..d5b7ccf2a5 100644 --- a/lib/libc/include/any-macos-any/math.h +++ b/lib/libc/include/any-macos-any/math.h @@ -31,6 +31,11 @@ #include #include +#if __has_include() +#include +REALTIME_SAFE_BEGIN +#endif + __BEGIN_DECLS /****************************************************************************** @@ -41,7 +46,7 @@ __BEGIN_DECLS taking advantage of GCC's __FLT_EVAL_METHOD__ (which a compiler may define anytime and GCC does) that shadows FLT_EVAL_METHOD (which a compiler must define only in float.h). */ -#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1 +#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1 || __FLT_EVAL_METHOD__ == 16 typedef float float_t; typedef double double_t; #elif __FLT_EVAL_METHOD__ == 1 @@ -788,5 +793,10 @@ struct exception { #endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */ __END_DECLS + +#if __has_include() +REALTIME_SAFE_END +#endif + #endif /* __MATH_H__ */ diff --git a/lib/libc/include/any-macos-any/ndbm.h b/lib/libc/include/any-macos-any/ndbm.h index b400c6207e..113294a838 100644 --- a/lib/libc/include/any-macos-any/ndbm.h +++ b/lib/libc/include/any-macos-any/ndbm.h @@ -61,10 +61,13 @@ #ifndef _NDBM_H_ #define _NDBM_H_ +#include <_bounds.h> #include <_types.h> #include #include +_LIBC_SINGLE_BY_DEFAULT() + #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) /* Map dbm interface onto db(3). */ #include @@ -84,7 +87,7 @@ #endif typedef struct { - void *dptr; + void *_LIBC_SIZE(dsize) dptr; size_t dsize; } datum; diff --git a/lib/libc/include/any-macos-any/net/if.h b/lib/libc/include/any-macos-any/net/if.h index d1b9a1e1c5..7bb7c3874d 100644 --- a/lib/libc/include/any-macos-any/net/if.h +++ b/lib/libc/include/any-macos-any/net/if.h @@ -150,7 +150,7 @@ struct if_clonereq { #define IFCAP_VALID (IFCAP_HWCSUM | IFCAP_TSO | IFCAP_LRO | IFCAP_VLAN_MTU | \ IFCAP_VLAN_HWTAGGING | IFCAP_JUMBO_MTU | IFCAP_AV | IFCAP_TXSTATUS | \ IFCAP_SKYWALK | IFCAP_SW_TIMESTAMP | IFCAP_HW_TIMESTAMP | \ - IFCAP_CSUM_PARTIAL | IFCAP_CSUM_ZERO_INVERT) + IFCAP_CSUM_PARTIAL | IFCAP_CSUM_ZERO_INVERT | IFCAP_LRO_NUM_SEG) #define IFQ_MAXLEN 128 #define IFNET_SLOWHZ 1 /* granularity is 1 second */ diff --git a/lib/libc/include/any-macos-any/net/if_var.h b/lib/libc/include/any-macos-any/net/if_var.h index 6df4fa4cd1..3572aa6e56 100644 --- a/lib/libc/include/any-macos-any/net/if_var.h +++ b/lib/libc/include/any-macos-any/net/if_var.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2021 Apple Inc. All rights reserved. + * Copyright (c) 2000-2025 Apple Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * @@ -68,12 +68,6 @@ #include #include #include -#include /* get TAILQ macros */ -#ifdef BSD_KERN_PRIVATE -#include -#include -#endif - #ifdef __APPLE__ diff --git a/lib/libc/include/any-macos-any/nl_types.h b/lib/libc/include/any-macos-any/nl_types.h index 72d0da254d..3dd8f9069f 100644 --- a/lib/libc/include/any-macos-any/nl_types.h +++ b/lib/libc/include/any-macos-any/nl_types.h @@ -43,8 +43,11 @@ #include #include +#include <_bounds.h> #include <_types.h> +_LIBC_SINGLE_BY_DEFAULT() + #ifdef _NLS_PRIVATE /* * MESSAGE CATALOG FILE FORMAT. @@ -87,7 +90,7 @@ struct _nls_msg_hdr { #define NL_CAT_LOCALE 1 typedef struct __nl_cat_d { - void *__data; + void *_LIBC_SIZE(__size) __data; int __size; } *nl_catd; @@ -95,7 +98,7 @@ typedef struct __nl_cat_d { __BEGIN_DECLS nl_catd catopen(const char *, int); -char *catgets(nl_catd, int, int, const char *) +char *_LIBC_CSTR catgets(nl_catd, int, int, const char *) __attribute__((__format_arg__(4))); int catclose(nl_catd); __END_DECLS diff --git a/lib/libc/include/any-macos-any/os/availability.h b/lib/libc/include/any-macos-any/os/availability.h index 8b56821408..453633c646 100644 --- a/lib/libc/include/any-macos-any/os/availability.h +++ b/lib/libc/include/any-macos-any/os/availability.h @@ -65,7 +65,7 @@ #define API_TO_BE_DEPRECATED_DRIVERKIT 100000 #endif -#ifndef API_TO_BE_DEPRECATEDC_VISIONOS +#ifndef API_TO_BE_DEPRECATED_VISIONOS #define API_TO_BE_DEPRECATED_VISIONOS 100000 #endif @@ -90,44 +90,76 @@ * Use to specify the release that a particular API became available. * * Platform names: - * macos, ios, tvos, watchos + * macos, macOSApplicationExtension, macCatalyst, macCatalystApplicationExtension, + * ios, iOSApplicationExtension, tvos, tvOSApplicationExtension, watchos, + * watchOSApplicationExtension, driverkit, visionos, visionOSApplicationExtension * * Examples: * API_AVAILABLE(macos(10.10)) * API_AVAILABLE(macos(10.9), ios(10.0)) * API_AVAILABLE(macos(10.4), ios(8.0), watchos(2.0), tvos(10.0)) + * API_AVAILABLE(driverkit(19.0)) */ - #define API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE8,__API_AVAILABLE7,__API_AVAILABLE6,__API_AVAILABLE5,__API_AVAILABLE4,__API_AVAILABLE3,__API_AVAILABLE2,__API_AVAILABLE1,__API_AVAILABLE0,0)(__VA_ARGS__) - #define API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE_BEGIN8,__API_AVAILABLE_BEGIN7,__API_AVAILABLE_BEGIN6,__API_AVAILABLE_BEGIN5,__API_AVAILABLE_BEGIN4,__API_AVAILABLE_BEGIN3,__API_AVAILABLE_BEGIN2,__API_AVAILABLE_BEGIN1,__API_AVAILABLE_BEGIN0,0)(__VA_ARGS__) + #define API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO_93585900(__VA_ARGS__,__API_AVAILABLE15,__API_AVAILABLE14,__API_AVAILABLE13,__API_AVAILABLE12,__API_AVAILABLE11,__API_AVAILABLE10,__API_AVAILABLE9,__API_AVAILABLE8,__API_AVAILABLE7,__API_AVAILABLE6,__API_AVAILABLE5,__API_AVAILABLE4,__API_AVAILABLE3,__API_AVAILABLE2,__API_AVAILABLE1,__API_AVAILABLE0,0)(__VA_ARGS__) + #define API_AVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_AVAILABLE_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_AVAILABLE_BEGIN15,__API_AVAILABLE_BEGIN14,__API_AVAILABLE_BEGIN13,__API_AVAILABLE_BEGIN12,__API_AVAILABLE_BEGIN11,__API_AVAILABLE_BEGIN10,__API_AVAILABLE_BEGIN9,__API_AVAILABLE_BEGIN8,__API_AVAILABLE_BEGIN7,__API_AVAILABLE_BEGIN6,__API_AVAILABLE_BEGIN5,__API_AVAILABLE_BEGIN4,__API_AVAILABLE_BEGIN3,__API_AVAILABLE_BEGIN2,__API_AVAILABLE_BEGIN1,__API_AVAILABLE_BEGIN0,0)(__VA_ARGS__) #define API_AVAILABLE_END _Pragma("clang attribute pop") /* * API Deprecations * - * Use to specify the release that a particular API became unavailable. + * Use to specify the release that a particular API became deprecated. * * Platform names: - * macos, ios, tvos, watchos + * macos, macOSApplicationExtension, macCatalyst, macCatalystApplicationExtension, + * ios, iOSApplicationExtension, tvos, tvOSApplicationExtension, watchos, + * watchOSApplicationExtension, driverkit, visionos, visionOSApplicationExtension * * Examples: * - * API_DEPRECATED("No longer supported", macos(10.4, 10.8)) - * API_DEPRECATED("No longer supported", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0)) + * API_DEPRECATED("Deprecated", macos(10.4, 10.8)) + * API_DEPRECATED("Deprecated", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0)) * * API_DEPRECATED_WITH_REPLACEMENT("-setName:", tvos(10.0, 10.4), ios(9.0, 10.0)) * API_DEPRECATED_WITH_REPLACEMENT("SomeClassName", macos(10.4, 10.6), watchos(2.0, 3.0)) */ - #define API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7,__API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1,__API_DEPRECATED_MSG0,0,0)(__VA_ARGS__) - #define API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7,__API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1,__API_DEPRECATED_REP0,0,0)(__VA_ARGS__) + #define API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO_93585900(__VA_ARGS__,__API_DEPRECATED_MSG15,__API_DEPRECATED_MSG14,__API_DEPRECATED_MSG13,__API_DEPRECATED_MSG12,__API_DEPRECATED_MSG11,__API_DEPRECATED_MSG10,__API_DEPRECATED_MSG9,__API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7,__API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1,__API_DEPRECATED_MSG0,0,0)(__VA_ARGS__) + #define API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO_93585900(__VA_ARGS__,__API_DEPRECATED_REP15,__API_DEPRECATED_REP14,__API_DEPRECATED_REP13,__API_DEPRECATED_REP12,__API_DEPRECATED_REP11,__API_DEPRECATED_REP10,__API_DEPRECATED_REP9,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7,__API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1,__API_DEPRECATED_REP0,0,0)(__VA_ARGS__) - #define API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN8,__API_DEPRECATED_BEGIN7,__API_DEPRECATED_BEGIN6,__API_DEPRECATED_BEGIN5,__API_DEPRECATED_BEGIN4,__API_DEPRECATED_BEGIN3,__API_DEPRECATED_BEGIN2,__API_DEPRECATED_BEGIN1,__API_DEPRECATED_BEGIN0,0,0)(__VA_ARGS__) + #define API_DEPRECATED_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_DEPRECATED_BEGIN15,__API_DEPRECATED_BEGIN14,__API_DEPRECATED_BEGIN13,__API_DEPRECATED_BEGIN12,__API_DEPRECATED_BEGIN11,__API_DEPRECATED_BEGIN10,__API_DEPRECATED_BEGIN9,__API_DEPRECATED_BEGIN8,__API_DEPRECATED_BEGIN7,__API_DEPRECATED_BEGIN6,__API_DEPRECATED_BEGIN5,__API_DEPRECATED_BEGIN4,__API_DEPRECATED_BEGIN3,__API_DEPRECATED_BEGIN2,__API_DEPRECATED_BEGIN1,__API_DEPRECATED_BEGIN0,0,0)(__VA_ARGS__) #define API_DEPRECATED_END _Pragma("clang attribute pop") - #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_WITH_REPLACEMENT_BEGIN_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN8,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN7,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN6,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN5,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN4,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN3,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN2,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN1,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN0,0,0)(__VA_ARGS__) + #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_DEPRECATED_WITH_REPLACEMENT_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN15,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN14,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN13,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN12,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN11,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN10,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN9,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN8,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN7,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN6,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN5,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN4,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN3,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN2,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN1,__API_DEPRECATED_WITH_REPLACEMENT_BEGIN0,0,0)(__VA_ARGS__) #define API_DEPRECATED_WITH_REPLACEMENT_END _Pragma("clang attribute pop") + /* + * API Obsoletions + * + * Use to specify the release that a particular API became unavailable. + * + * Platform names: + * macos, macOSApplicationExtension, macCatalyst, macCatalystApplicationExtension, + * ios, iOSApplicationExtension, tvos, tvOSApplicationExtension, watchos, + * watchOSApplicationExtension, driverkit, visionos, visionOSApplicationExtension + * + * Examples: + * + * API_OBSOLETED("No longer supported", macos(10.4, 10.8, 11.0)) + * API_OBSOLETED("No longer supported", macos(10.4, 10.8, 11.0), ios(2.0, 3.0, 4.0), watchos(2.0, 3.0, 4.0), tvos(9.0, 10.0, 11.0)) + * + * API_OBSOLETED_WITH_REPLACEMENT("-setName:", tvos(10.0, 10.4, 12.0), ios(9.0, 10.0, 11.0)) + * API_OBSOLETED_WITH_REPLACEMENT("SomeClassName", macos(10.4, 10.6, 11.0), watchos(2.0, 3.0, 4.0)) + */ + #define API_OBSOLETED(...) __API_OBSOLETED_MSG_GET_MACRO_93585900(__VA_ARGS__,__API_OBSOLETED_MSG15,__API_OBSOLETED_MSG14,__API_OBSOLETED_MSG13,__API_OBSOLETED_MSG12,__API_OBSOLETED_MSG11,__API_OBSOLETED_MSG10,__API_OBSOLETED_MSG9,__API_OBSOLETED_MSG8,__API_OBSOLETED_MSG7,__API_OBSOLETED_MSG6,__API_OBSOLETED_MSG5,__API_OBSOLETED_MSG4,__API_OBSOLETED_MSG3,__API_OBSOLETED_MSG2,__API_OBSOLETED_MSG1,__API_OBSOLETED_MSG0,0,0)(__VA_ARGS__) + #define API_OBSOLETED_WITH_REPLACEMENT(...) __API_OBSOLETED_REP_GET_MACRO_93585900(__VA_ARGS__,__API_OBSOLETED_REP15,__API_OBSOLETED_REP14,__API_OBSOLETED_REP13,__API_OBSOLETED_REP12,__API_OBSOLETED_REP11,__API_OBSOLETED_REP10,__API_OBSOLETED_REP9,__API_OBSOLETED_REP8,__API_OBSOLETED_REP7,__API_OBSOLETED_REP6,__API_OBSOLETED_REP5,__API_OBSOLETED_REP4,__API_OBSOLETED_REP3,__API_OBSOLETED_REP2,__API_OBSOLETED_REP1,__API_OBSOLETED_REP0,0,0)(__VA_ARGS__) + + #define API_OBSOLETED_BEGIN(...) _Pragma("clang attribute push") __API_OBSOLETED_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_OBSOLETED_BEGIN15,__API_OBSOLETED_BEGIN14,__API_OBSOLETED_BEGIN13,__API_OBSOLETED_BEGIN12,__API_OBSOLETED_BEGIN11,__API_OBSOLETED_BEGIN10,__API_OBSOLETED_BEGIN9,__API_OBSOLETED_BEGIN8,__API_OBSOLETED_BEGIN7,__API_OBSOLETED_BEGIN6,__API_OBSOLETED_BEGIN5,__API_OBSOLETED_BEGIN4,__API_OBSOLETED_BEGIN3,__API_OBSOLETED_BEGIN2,__API_OBSOLETED_BEGIN1,__API_OBSOLETED_BEGIN0,0,0)(__VA_ARGS__) + #define API_OBSOLETED_END _Pragma("clang attribute pop") + + #define API_OBSOLETED_WITH_REPLACEMENT_BEGIN(...) _Pragma("clang attribute push") __API_OBSOLETED_WITH_REPLACEMENT_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN15,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN14,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN13,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN12,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN11,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN10,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN9,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN8,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN7,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN6,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN5,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN4,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN3,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN2,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN1,__API_OBSOLETED_WITH_REPLACEMENT_BEGIN0,0,0)(__VA_ARGS__) + #define API_OBSOLETED_WITH_REPLACEMENT_END _Pragma("clang attribute pop") + /* * API Unavailability * Use to specify that an API is unavailable for a particular platform. @@ -137,9 +169,9 @@ * API_UNAVAILABLE(watchos, tvos) */ - #define API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE8,__API_UNAVAILABLE7,__API_UNAVAILABLE6,__API_UNAVAILABLE5,__API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1,__API_UNAVAILABLE0,0)(__VA_ARGS__) + #define API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO_93585900(__VA_ARGS__,__API_UNAVAILABLE15,__API_UNAVAILABLE14,__API_UNAVAILABLE13,__API_UNAVAILABLE12,__API_UNAVAILABLE11,__API_UNAVAILABLE10,__API_UNAVAILABLE9,__API_UNAVAILABLE8,__API_UNAVAILABLE7,__API_UNAVAILABLE6,__API_UNAVAILABLE5,__API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1,__API_UNAVAILABLE0,0)(__VA_ARGS__) - #define API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN8,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6,__API_UNAVAILABLE_BEGIN5,__API_UNAVAILABLE_BEGIN4,__API_UNAVAILABLE_BEGIN3,__API_UNAVAILABLE_BEGIN2,__API_UNAVAILABLE_BEGIN1,__API_UNAVAILABLE_BEGIN0,0)(__VA_ARGS__) + #define API_UNAVAILABLE_BEGIN(...) _Pragma("clang attribute push") __API_UNAVAILABLE_BEGIN_GET_MACRO_93585900(__VA_ARGS__,__API_UNAVAILABLE_BEGIN15,__API_UNAVAILABLE_BEGIN14,__API_UNAVAILABLE_BEGIN13,__API_UNAVAILABLE_BEGIN12,__API_UNAVAILABLE_BEGIN11,__API_UNAVAILABLE_BEGIN10,__API_UNAVAILABLE_BEGIN9,__API_UNAVAILABLE_BEGIN8,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6,__API_UNAVAILABLE_BEGIN5,__API_UNAVAILABLE_BEGIN4,__API_UNAVAILABLE_BEGIN3,__API_UNAVAILABLE_BEGIN2,__API_UNAVAILABLE_BEGIN1,__API_UNAVAILABLE_BEGIN0,0)(__VA_ARGS__) #define API_UNAVAILABLE_END _Pragma("clang attribute pop") #endif /* __has_attribute(availability) */ #endif /* #if defined(__has_feature) && defined(__has_attribute) */ @@ -184,6 +216,30 @@ #define API_DEPRECATED_WITH_REPLACEMENT_END(...) #endif +#ifndef API_OBSOLETED + #define API_OBSOLETED(...) +#endif + +#ifndef API_OBSOLETED_BEGIN + #define API_OBSOLETED_BEGIN(...) +#endif + +#ifndef API_OBSOLETED_END + #define API_OBSOLETED_END(...) +#endif + +#ifndef API_OBSOLETED_WITH_REPLACEMENT + #define API_OBSOLETED_WITH_REPLACEMENT(...) +#endif + +#ifndef API_OBSOLETED_WITH_REPLACEMENT_BEGIN + #define API_OBSOLETED_WITH_REPLACEMENT_BEGIN(...) +#endif + +#ifndef API_OBSOLETED_WITH_REPLACEMENT_END + #define API_OBSOLETED_WITH_REPLACEMENT_END(...) +#endif + #ifndef API_UNAVAILABLE #define API_UNAVAILABLE(...) #endif @@ -225,3 +281,14 @@ #endif #endif /* __OS_AVAILABILITY__ */ + +#ifndef __OPEN_SOURCE__ +// This is explicitly outside the header guard +#ifndef __AVAILABILITY_VERSIONS_VERSION_HASH +#define __AVAILABILITY_VERSIONS_VERSION_HASH 93585900U +#define __AVAILABILITY_VERSIONS_VERSION_STRING "Local" +#define __AVAILABILITY_FILE "os/availability.h" +#elif __AVAILABILITY_VERSIONS_VERSION_HASH != 93585900U +#pragma GCC error "Already found AvailabilityVersions version " __AVAILABILITY_FILE " from " __AVAILABILITY_VERSIONS_VERSION_STRING ", which is incompatible with os/availability.h from Local. Mixing and matching Availability from different SDKs is not supported" +#endif /* __AVAILABILITY_VERSIONS_VERSION_HASH */ +#endif /* __OPEN_SOURCE__ */ diff --git a/lib/libc/include/any-macos-any/runetype.h b/lib/libc/include/any-macos-any/runetype.h index c4fc0a5ff0..007a8f6d23 100644 --- a/lib/libc/include/any-macos-any/runetype.h +++ b/lib/libc/include/any-macos-any/runetype.h @@ -39,8 +39,11 @@ #ifndef _RUNETYPE_H_ #define _RUNETYPE_H_ +#include <_bounds.h> #include <_types.h> +_LIBC_SINGLE_BY_DEFAULT() + #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) #include @@ -61,12 +64,12 @@ typedef struct { __darwin_rune_t __min; /* First rune of the range */ __darwin_rune_t __max; /* Last rune (inclusive) of the range */ __darwin_rune_t __map; /* What first maps to in maps */ - __uint32_t *__types; /* Array of types in range */ + __uint32_t *_LIBC_UNSAFE_INDEXABLE __types; /* Array of types in range */ } _RuneEntry; typedef struct { int __nranges; /* Number of ranges stored */ - _RuneEntry *__ranges; /* Pointer to the ranges */ + _RuneEntry *_LIBC_COUNT(__nranges) __ranges; /* Pointer to the ranges */ } _RuneRange; typedef struct { @@ -78,8 +81,8 @@ typedef struct { char __magic[8]; /* Magic saying what version we are */ char __encoding[32]; /* ASCII name of this encoding */ - __darwin_rune_t (*__sgetrune)(const char *, __darwin_size_t, char const **); - int (*__sputrune)(__darwin_rune_t, char *, __darwin_size_t, char **); + __darwin_rune_t (*__sgetrune)(const char *_LIBC_COUNT(__n) __string, __darwin_size_t __n, char const *_LIBC_UNSAFE_INDEXABLE /* NULL or within bounds of __string */ *); + int (*__sputrune)(__darwin_rune_t, char *_LIBC_COUNT(__n) __string, __darwin_size_t __n, char *_LIBC_UNSAFE_INDEXABLE /* NULL or within bounds of __string */ *); __darwin_rune_t __invalid_rune; /* Deprecated */ __uint32_t __runetype[_CACHED_RUNES]; @@ -95,14 +98,14 @@ typedef struct { _RuneRange __maplower_ext; _RuneRange __mapupper_ext; - void *__variable; /* Data which depends on the encoding */ + void *_LIBC_SIZE(__variable_len) __variable; /* Data which depends on the encoding */ int __variable_len; /* how long that data is */ /* * extra fields to deal with arbitrary character classes */ int __ncharclasses; - _RuneCharClass *__charclasses; + _RuneCharClass *_LIBC_COUNT(__ncharclasses) __charclasses; } _RuneLocale; #define _RUNE_MAGIC_A "RuneMagA" /* Indicates version A of RuneLocale */ diff --git a/lib/libc/include/any-macos-any/search.h b/lib/libc/include/any-macos-any/search.h index 58d69e76b7..0afa697fcd 100644 --- a/lib/libc/include/any-macos-any/search.h +++ b/lib/libc/include/any-macos-any/search.h @@ -10,11 +10,14 @@ #define _SEARCH_H_ #include +#include <_bounds.h> #include <_types.h> #include +_LIBC_SINGLE_BY_DEFAULT() + typedef struct entry { - char *key; + char *_LIBC_CSTR key; void *data; } ENTRY; @@ -31,7 +34,7 @@ typedef enum { #ifdef _SEARCH_PRIVATE typedef struct node { - char *key; + char *_LIBC_CSTR key; struct node *llink, *rlink; } node_t; @@ -46,9 +49,9 @@ int hcreate(size_t); void hdestroy(void); ENTRY *hsearch(ENTRY, ACTION); void insque(void *, void *); -void *lfind(const void *, const void *, size_t *, size_t, +void *lfind(const void *, const void *_LIBC_UNSAFE_INDEXABLE, size_t *, size_t, int (*)(const void *, const void *)); -void *lsearch(const void *, void *, size_t *, size_t, +void *lsearch(const void *, void *, size_t *_LIBC_UNSAFE_INDEXABLE, size_t, int (*)(const void *, const void *)); void remque(void *); void *tdelete(const void * __restrict, void ** __restrict, diff --git a/lib/libc/include/any-macos-any/secure/_stdio.h b/lib/libc/include/any-macos-any/secure/_stdio.h index f19e22c628..9046dac920 100644 --- a/lib/libc/include/any-macos-any/secure/_stdio.h +++ b/lib/libc/include/any-macos-any/secure/_stdio.h @@ -28,8 +28,11 @@ #ifndef _SECURE__STDIO_H_ #define _SECURE__STDIO_H_ +#include <_bounds.h> #include +_LIBC_SINGLE_BY_DEFAULT() + #if _USE_FORTIFY_LEVEL > 0 #ifndef __has_builtin @@ -39,7 +42,7 @@ /* sprintf, vsprintf, snprintf, vsnprintf */ #if __has_builtin(__builtin___sprintf_chk) || defined(__GNUC__) -extern int __sprintf_chk (char * __restrict, int, size_t, +extern int __sprintf_chk (char * __restrict _LIBC_UNSAFE_INDEXABLE, int, size_t, const char * __restrict, ...); #undef sprintf @@ -49,7 +52,7 @@ extern int __sprintf_chk (char * __restrict, int, size_t, #if __DARWIN_C_LEVEL >= 200112L #if __has_builtin(__builtin___snprintf_chk) || defined(__GNUC__) -extern int __snprintf_chk (char * __restrict, size_t, int, size_t, +extern int __snprintf_chk (char * __restrict _LIBC_COUNT(__maxlen), size_t __maxlen, int, size_t, const char * __restrict, ...); #undef snprintf @@ -58,7 +61,7 @@ extern int __snprintf_chk (char * __restrict, size_t, int, size_t, #endif #if __has_builtin(__builtin___vsprintf_chk) || defined(__GNUC__) -extern int __vsprintf_chk (char * __restrict, int, size_t, +extern int __vsprintf_chk (char * __restrict _LIBC_UNSAFE_INDEXABLE, int, size_t, const char * __restrict, va_list); #undef vsprintf @@ -67,7 +70,7 @@ extern int __vsprintf_chk (char * __restrict, int, size_t, #endif #if __has_builtin(__builtin___vsnprintf_chk) || defined(__GNUC__) -extern int __vsnprintf_chk (char * __restrict, size_t, int, size_t, +extern int __vsnprintf_chk (char * __restrict _LIBC_COUNT(__maxlen), size_t __maxlen, int, size_t, const char * __restrict, va_list); #undef vsnprintf diff --git a/lib/libc/include/any-macos-any/signal.h b/lib/libc/include/any-macos-any/signal.h index 496d02f1e0..055af4e481 100644 --- a/lib/libc/include/any-macos-any/signal.h +++ b/lib/libc/include/any-macos-any/signal.h @@ -59,12 +59,15 @@ #define _USER_SIGNAL_H #include +#include <_bounds.h> #include <_types.h> #include #include #include +_LIBC_SINGLE_BY_DEFAULT() + #if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) extern __const char *__const sys_signame[NSIG]; extern __const char *__const sys_siglist[NSIG]; diff --git a/lib/libc/include/any-macos-any/simd/common.h b/lib/libc/include/any-macos-any/simd/common.h index e593d0c62d..c5e26dad7d 100644 --- a/lib/libc/include/any-macos-any/simd/common.h +++ b/lib/libc/include/any-macos-any/simd/common.h @@ -4815,7 +4815,11 @@ static inline SIMD_CFUNC char simd_reduce_add(simd_char8 x) { } static inline SIMD_CFUNC char simd_reduce_add(simd_char16 x) { +#if defined __arm64__ || defined __aarch64__ + return vaddvq_s8(x); +#else return simd_reduce_add(x.lo + x.hi); +#endif } static inline SIMD_CFUNC char simd_reduce_add(simd_char32 x) { @@ -4843,7 +4847,11 @@ static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar8 x) { } static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar16 x) { +#if defined __arm64__ || defined __aarch64__ + return vaddvq_u8(x); +#else return simd_reduce_add(x.lo + x.hi); +#endif } static inline SIMD_CFUNC unsigned char simd_reduce_add(simd_uchar32 x) { @@ -4867,7 +4875,11 @@ static inline SIMD_CFUNC short simd_reduce_add(simd_short4 x) { } static inline SIMD_CFUNC short simd_reduce_add(simd_short8 x) { +#if defined __arm64__ || defined __aarch64__ + return vaddvq_s16(x); +#else return simd_reduce_add(x.lo + x.hi); +#endif } static inline SIMD_CFUNC short simd_reduce_add(simd_short16 x) { @@ -4891,7 +4903,11 @@ static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort4 x) { } static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort8 x) { +#if defined __arm64__ || defined __aarch64__ + return vaddvq_u16(x); +#else return simd_reduce_add(x.lo + x.hi); +#endif } static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort16 x) { @@ -4902,30 +4918,6 @@ static inline SIMD_CFUNC unsigned short simd_reduce_add(simd_ushort32 x) { return simd_reduce_add(x.lo + x.hi); } -static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half2 x) { - return x.x + x.y; -} - -static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half3 x) { - return x.x + x.y + x.z; -} - -static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half4 x) { - return simd_reduce_add(x.lo + x.hi); -} - -static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half8 x) { - return simd_reduce_add(x.lo + x.hi); -} - -static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half16 x) { - return simd_reduce_add(x.lo + x.hi); -} - -static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half32 x) { - return simd_reduce_add(x.lo + x.hi); -} - static inline SIMD_CFUNC int simd_reduce_add(simd_int2 x) { return x.x + x.y; } @@ -4935,7 +4927,11 @@ static inline SIMD_CFUNC int simd_reduce_add(simd_int3 x) { } static inline SIMD_CFUNC int simd_reduce_add(simd_int4 x) { +#if defined __arm64__ || defined __aarch64__ + return vaddvq_s32(x); +#else return simd_reduce_add(x.lo + x.hi); +#endif } static inline SIMD_CFUNC int simd_reduce_add(simd_int8 x) { @@ -4955,7 +4951,11 @@ static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint3 x) { } static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint4 x) { +#if defined __arm64__ || defined __aarch64__ + return vaddvq_u32(x); +#else return simd_reduce_add(x.lo + x.hi); +#endif } static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint8 x) { @@ -4966,26 +4966,6 @@ static inline SIMD_CFUNC unsigned int simd_reduce_add(simd_uint16 x) { return simd_reduce_add(x.lo + x.hi); } -static inline SIMD_CFUNC float simd_reduce_add(simd_float2 x) { - return x.x + x.y; -} - -static inline SIMD_CFUNC float simd_reduce_add(simd_float3 x) { - return x.x + x.y + x.z; -} - -static inline SIMD_CFUNC float simd_reduce_add(simd_float4 x) { - return simd_reduce_add(x.lo + x.hi); -} - -static inline SIMD_CFUNC float simd_reduce_add(simd_float8 x) { - return simd_reduce_add(x.lo + x.hi); -} - -static inline SIMD_CFUNC float simd_reduce_add(simd_float16 x) { - return simd_reduce_add(x.lo + x.hi); -} - static inline SIMD_CFUNC simd_long1 simd_reduce_add(simd_long2 x) { return x.x + x.y; } @@ -5018,6 +4998,50 @@ static inline SIMD_CFUNC simd_ulong1 simd_reduce_add(simd_ulong8 x) { return simd_reduce_add(x.lo + x.hi); } +static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half2 x) { + return x.x + x.y; +} + +static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half3 x) { + return x.x + x.y + x.z; +} + +static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half4 x) { + return simd_reduce_add(x.lo + x.hi); +} + +static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half8 x) { + return simd_reduce_add(x.lo + x.hi); +} + +static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half16 x) { + return simd_reduce_add(x.lo + x.hi); +} + +static inline SIMD_CFUNC _Float16 simd_reduce_add(simd_half32 x) { + return simd_reduce_add(x.lo + x.hi); +} + +static inline SIMD_CFUNC float simd_reduce_add(simd_float2 x) { + return x.x + x.y; +} + +static inline SIMD_CFUNC float simd_reduce_add(simd_float3 x) { + return x.x + x.y + x.z; +} + +static inline SIMD_CFUNC float simd_reduce_add(simd_float4 x) { + return simd_reduce_add(x.lo + x.hi); +} + +static inline SIMD_CFUNC float simd_reduce_add(simd_float8 x) { + return simd_reduce_add(x.lo + x.hi); +} + +static inline SIMD_CFUNC float simd_reduce_add(simd_float16 x) { + return simd_reduce_add(x.lo + x.hi); +} + static inline SIMD_CFUNC double simd_reduce_add(simd_double2 x) { return x.x + x.y; } diff --git a/lib/libc/include/any-macos-any/sys/_symbol_aliasing.h b/lib/libc/include/any-macos-any/sys/_symbol_aliasing.h index 0c6e448bba..c0a780342b 100644 --- a/lib/libc/include/any-macos-any/sys/_symbol_aliasing.h +++ b/lib/libc/include/any-macos-any/sys/_symbol_aliasing.h @@ -509,6 +509,18 @@ #define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_17_5(x) #endif +#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 170600 +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_17_6(x) x +#else +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_17_6(x) +#endif + +#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 170700 +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_17_7(x) x +#else +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_17_7(x) +#endif + #if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 180000 #define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_18_0(x) x #else @@ -527,6 +539,24 @@ #define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_18_2(x) #endif +#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 180300 +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_18_3(x) x +#else +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_18_3(x) +#endif + +#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 180400 +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_18_4(x) x +#else +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_18_4(x) +#endif + +#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 180500 +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_18_5(x) x +#else +#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_18_5(x) +#endif + #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1000 #define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x) x #else @@ -863,6 +893,12 @@ #define __DARWIN_ALIAS_STARTING_MAC___MAC_13_6(x) #endif +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 130700 +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_7(x) x +#else +#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_7(x) +#endif + #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 140000 #define __DARWIN_ALIAS_STARTING_MAC___MAC_14_0(x) x #else @@ -899,6 +935,18 @@ #define __DARWIN_ALIAS_STARTING_MAC___MAC_14_5(x) #endif +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 140600 +#define __DARWIN_ALIAS_STARTING_MAC___MAC_14_6(x) x +#else +#define __DARWIN_ALIAS_STARTING_MAC___MAC_14_6(x) +#endif + +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 140700 +#define __DARWIN_ALIAS_STARTING_MAC___MAC_14_7(x) x +#else +#define __DARWIN_ALIAS_STARTING_MAC___MAC_14_7(x) +#endif + #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 150000 #define __DARWIN_ALIAS_STARTING_MAC___MAC_15_0(x) x #else @@ -917,3 +965,21 @@ #define __DARWIN_ALIAS_STARTING_MAC___MAC_15_2(x) #endif +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 150300 +#define __DARWIN_ALIAS_STARTING_MAC___MAC_15_3(x) x +#else +#define __DARWIN_ALIAS_STARTING_MAC___MAC_15_3(x) +#endif + +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 150400 +#define __DARWIN_ALIAS_STARTING_MAC___MAC_15_4(x) x +#else +#define __DARWIN_ALIAS_STARTING_MAC___MAC_15_4(x) +#endif + +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 150500 +#define __DARWIN_ALIAS_STARTING_MAC___MAC_15_5(x) x +#else +#define __DARWIN_ALIAS_STARTING_MAC___MAC_15_5(x) +#endif + diff --git a/lib/libc/include/any-macos-any/sys/acl.h b/lib/libc/include/any-macos-any/sys/acl.h index fce4eafd0a..be4df84eca 100644 --- a/lib/libc/include/any-macos-any/sys/acl.h +++ b/lib/libc/include/any-macos-any/sys/acl.h @@ -24,9 +24,12 @@ #define _SYS_ACL_H #include +#include <_bounds.h> #include #include +_LIBC_SINGLE_BY_DEFAULT() + #define __DARWIN_ACL_READ_DATA (1<<1) #define __DARWIN_ACL_LIST_DIRECTORY __DARWIN_ACL_READ_DATA #define __DARWIN_ACL_WRITE_DATA (1<<2) @@ -200,13 +203,13 @@ extern int acl_set_file(const char *path_p, acl_type_t type, acl_t acl); extern int acl_set_link_np(const char *path_p, acl_type_t type, acl_t acl); /* 23.1.6.4 ACL Format translation */ -extern ssize_t acl_copy_ext(void *buf_p, acl_t acl, ssize_t size); -extern ssize_t acl_copy_ext_native(void *buf_p, acl_t acl, ssize_t size); -extern acl_t acl_copy_int(const void *buf_p); -extern acl_t acl_copy_int_native(const void *buf_p); -extern acl_t acl_from_text(const char *buf_p); +extern ssize_t acl_copy_ext(void *_LIBC_SIZE(size) buf_p, acl_t acl, ssize_t size); +extern ssize_t acl_copy_ext_native(void *_LIBC_SIZE(size) buf_p, acl_t acl, ssize_t size); +extern acl_t acl_copy_int(const void *_LIBC_UNSAFE_INDEXABLE buf_p); +extern acl_t acl_copy_int_native(const void *_LIBC_UNSAFE_INDEXABLE buf_p); +extern acl_t acl_from_text(const char *_LIBC_UNSAFE_INDEXABLE buf_p); extern ssize_t acl_size(acl_t acl); -extern char *acl_to_text(acl_t acl, ssize_t *len_p); +extern char *_LIBC_CSTR acl_to_text(acl_t acl, ssize_t *len_p); __END_DECLS #endif /* _SYS_ACL_H */ diff --git a/lib/libc/include/any-macos-any/sys/attr.h b/lib/libc/include/any-macos-any/sys/attr.h index 744718083c..52451bfcc6 100644 --- a/lib/libc/include/any-macos-any/sys/attr.h +++ b/lib/libc/include/any-macos-any/sys/attr.h @@ -129,6 +129,12 @@ typedef struct vol_capabilities_attr { */ #define ATTR_MAX_BUFFER 8192 + +/* + * Max size of attribute buffer if IOPOL_TYPE_VFS_SUPPORT_LONG_PATHS is enabled + */ +#define ATTR_MAX_BUFFER_LONGPATHS (ATTR_MAX_BUFFER - MAXPATHLEN + MAXLONGPATHLEN) + /* * VOL_CAP_FMT_PERSISTENTOBJECTIDS: When set, the volume has object IDs * that are persistent (retain their values even when the volume is @@ -491,13 +497,14 @@ typedef struct vol_attributes_attr { #define ATTR_VOL_MOUNTEXTFLAGS 0x00080000 #define ATTR_VOL_FSTYPENAME 0x00100000 #define ATTR_VOL_FSSUBTYPE 0x00200000 +#define ATTR_VOL_OWNER 0x00400000 #define ATTR_VOL_SPACEUSED 0x00800000 #define ATTR_VOL_QUOTA_SIZE 0x10000000 #define ATTR_VOL_RESERVED_SIZE 0x20000000 #define ATTR_VOL_ATTRIBUTES 0x40000000 #define ATTR_VOL_INFO 0x80000000 -#define ATTR_VOL_VALIDMASK 0xF0BFFFFF +#define ATTR_VOL_VALIDMASK 0xF0FFFFFF /* * The list of settable ATTR_VOL_* attributes include the following: diff --git a/lib/libc/include/any-macos-any/sys/cdefs.h b/lib/libc/include/any-macos-any/sys/cdefs.h index 317f7d4351..f75cf88c4f 100644 --- a/lib/libc/include/any-macos-any/sys/cdefs.h +++ b/lib/libc/include/any-macos-any/sys/cdefs.h @@ -965,6 +965,11 @@ #if __has_include() #include #else +#if __has_feature(bounds_safety) +#error -fbounds-safety is enabled, but is missing. \ + This will lead to difficult-to-diagnose compilation errors. +#endif /* __has_feature(bounds_safety) */ + /* * We intentionally define to nothing pointer attributes which do not have an * impact on the ABI. __indexable and __bidi_indexable are not defined because @@ -1108,4 +1113,5 @@ # define __xnu_returns_data_pointer #endif + #endif /* !_CDEFS_H_ */ diff --git a/lib/libc/include/any-macos-any/sys/fcntl.h b/lib/libc/include/any-macos-any/sys/fcntl.h index 963b1fa34e..7f04f1ff12 100644 --- a/lib/libc/include/any-macos-any/sys/fcntl.h +++ b/lib/libc/include/any-macos-any/sys/fcntl.h @@ -125,6 +125,8 @@ #define O_CREAT 0x00000200 /* create if nonexistant */ #define O_TRUNC 0x00000400 /* truncate to zero length */ #define O_EXCL 0x00000800 /* error if already exists */ +#define O_RESOLVE_BENEATH 0x00001000 /* only for open(2), same value as FMARK */ + #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) #define O_EVTONLY 0x00008000 /* descriptor requested for event notifications only */ diff --git a/lib/libc/include/any-macos-any/sys/mount.h b/lib/libc/include/any-macos-any/sys/mount.h index d05a58255f..23224f87d9 100644 --- a/lib/libc/include/any-macos-any/sys/mount.h +++ b/lib/libc/include/any-macos-any/sys/mount.h @@ -462,4 +462,5 @@ int unmount(const char *, int); int getvfsbyname(const char *, struct vfsconf *); __END_DECLS + #endif /* !_SYS_MOUNT_H_ */ diff --git a/lib/libc/include/any-macos-any/sys/param.h b/lib/libc/include/any-macos-any/sys/param.h index 8540595d3c..93a7278ded 100644 --- a/lib/libc/include/any-macos-any/sys/param.h +++ b/lib/libc/include/any-macos-any/sys/param.h @@ -202,7 +202,7 @@ #define isset(a, i) (((unsigned char *)(a))[(i)/NBBY] & (1u<<((i)%NBBY))) #define isclr(a, i) ((((unsigned char *)(a))[(i)/NBBY] & (1u<<((i)%NBBY))) == 0) -/* Macros for counting and rounding. */ +/* Macros for counting, rounding. */ #ifndef howmany #define howmany(x, y) ((((x) % (y)) == 0) ? ((x) / (y)) : (((x) / (y)) + 1)) #endif diff --git a/lib/libc/include/any-macos-any/sys/proc.h b/lib/libc/include/any-macos-any/sys/proc.h index 6e23ec6a12..621ef3c0b2 100644 --- a/lib/libc/include/any-macos-any/sys/proc.h +++ b/lib/libc/include/any-macos-any/sys/proc.h @@ -86,7 +86,6 @@ struct session; struct pgrp; struct proc; -struct proc_ident; /* Exported fields for kern sysctls */ struct extern_proc { @@ -216,6 +215,7 @@ struct extern_proc { #define P_DIRTY_LAUNCH_IN_PROGRESS 0x00000200 /* launch is in progress */ #define P_DIRTY_DEFER_ALWAYS 0x00000400 /* defer going to idle-exit after every dirty->clean transition. * For legacy jetsam policy only. This is the default with the other policies.*/ +#define P_DIRTY_SHUTDOWN_ON_CLEAN 0x00000800 /* process should shutdown on going clean */ #define P_DIRTY_IS_DIRTY (P_DIRTY | P_DIRTY_SHUTDOWN) #define P_DIRTY_IDLE_EXIT_ENABLED (P_DIRTY_TRACK|P_DIRTY_ALLOW_IDLE_EXIT) diff --git a/lib/libc/include/any-macos-any/sys/proc_info.h b/lib/libc/include/any-macos-any/sys/proc_info.h index 967e212230..aa9a4e74c3 100644 --- a/lib/libc/include/any-macos-any/sys/proc_info.h +++ b/lib/libc/include/any-macos-any/sys/proc_info.h @@ -825,6 +825,7 @@ struct channel_fdinfo { #define PROC_DIRTY_DEFER 0x4 #define PROC_DIRTY_LAUNCH_IN_PROGRESS 0x8 #define PROC_DIRTY_DEFER_ALWAYS 0x10 +#define PROC_DIRTY_SHUTDOWN_ON_CLEAN 0x20 /* proc_get_dirty() flags */ #define PROC_DIRTY_TRACKED 0x1 diff --git a/lib/libc/include/any-macos-any/sys/resource.h b/lib/libc/include/any-macos-any/sys/resource.h index 995007869c..207e96120e 100644 --- a/lib/libc/include/any-macos-any/sys/resource.h +++ b/lib/libc/include/any-macos-any/sys/resource.h @@ -551,8 +551,9 @@ struct proc_rlimit_control_wakeupmon { #define IOPOL_VFS_IGNORE_PERMISSIONS_OFF 0 #define IOPOL_VFS_IGNORE_PERMISSIONS_ON 1 -#define IOPOL_VFS_SKIP_MTIME_UPDATE_OFF 0 -#define IOPOL_VFS_SKIP_MTIME_UPDATE_ON 1 +#define IOPOL_VFS_SKIP_MTIME_UPDATE_OFF 0 +#define IOPOL_VFS_SKIP_MTIME_UPDATE_ON 1 +#define IOPOL_VFS_SKIP_MTIME_UPDATE_IGNORE 2 #define IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF 0 #define IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON 1 diff --git a/lib/libc/include/any-macos-any/sys/statvfs.h b/lib/libc/include/any-macos-any/sys/statvfs.h index a8d661a5c6..8f6faeb30f 100644 --- a/lib/libc/include/any-macos-any/sys/statvfs.h +++ b/lib/libc/include/any-macos-any/sys/statvfs.h @@ -27,12 +27,15 @@ #ifndef _SYS_STATVFS_H_ #define _SYS_STATVFS_H_ +#include <_bounds.h> #include #include #include #include +_LIBC_SINGLE_BY_DEFAULT() + /* Following structure is used as a statvfs/fstatvfs function parameter */ struct statvfs { unsigned long f_bsize; /* File system block size */ diff --git a/lib/libc/include/any-macos-any/sys/syslimits.h b/lib/libc/include/any-macos-any/sys/syslimits.h index 31e6e578cb..71ccc1c707 100644 --- a/lib/libc/include/any-macos-any/sys/syslimits.h +++ b/lib/libc/include/any-macos-any/sys/syslimits.h @@ -124,6 +124,8 @@ /* range: -20 - 20 */ /* (PRIO_MIN - PRIO_MAX) */ #endif /* __DARWIN_UNIX03 */ + + #endif /* !_ANSI_SOURCE */ #endif /* !_SYS_SYSLIMITS_H_ */ diff --git a/lib/libc/include/any-macos-any/sys/wait.h b/lib/libc/include/any-macos-any/sys/wait.h index e3cbb5833f..1fcee63450 100644 --- a/lib/libc/include/any-macos-any/sys/wait.h +++ b/lib/libc/include/any-macos-any/sys/wait.h @@ -202,8 +202,7 @@ union wait { w_Coredump:1, /* core dump indicator */ w_Retcode:8, /* exit code if w_termsig==0 */ w_Filler:16; /* upper bits filler */ -#endif -#if __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN +#elif __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN unsigned int w_Filler:16, /* upper bits filler */ w_Retcode:8, /* exit code if w_termsig==0 */ w_Coredump:1, /* core dump indicator */ @@ -220,8 +219,7 @@ union wait { unsigned int w_Stopval:8, /* == W_STOPPED if stopped */ w_Stopsig:8, /* signal that stopped us */ w_Filler:16; /* upper bits filler */ -#endif -#if __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN +#elif __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN unsigned int w_Filler:16, /* upper bits filler */ w_Stopsig:8, /* signal that stopped us */ w_Stopval:8; /* == W_STOPPED if stopped */ diff --git a/lib/libc/include/any-macos-any/termios.h b/lib/libc/include/any-macos-any/termios.h index 94f315b58c..81df6726f7 100644 --- a/lib/libc/include/any-macos-any/termios.h +++ b/lib/libc/include/any-macos-any/termios.h @@ -23,11 +23,14 @@ #ifndef __TERMIOS_H__ #define __TERMIOS_H__ +#include <_bounds.h> #include #include #include <_types.h> #include +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS pid_t tcgetsid(int); __END_DECLS diff --git a/lib/libc/include/any-macos-any/ulimit.h b/lib/libc/include/any-macos-any/ulimit.h index c6a451c75f..a2bd2a5416 100644 --- a/lib/libc/include/any-macos-any/ulimit.h +++ b/lib/libc/include/any-macos-any/ulimit.h @@ -30,10 +30,13 @@ #define _ULIMIT_H_ #include +#include <_bounds.h> #define UL_GETFSIZE 1 #define UL_SETFSIZE 2 +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS long ulimit(int, ...); __END_DECLS diff --git a/lib/libc/include/any-macos-any/unistd.h b/lib/libc/include/any-macos-any/unistd.h index 58cf62af62..21142adf17 100644 --- a/lib/libc/include/any-macos-any/unistd.h +++ b/lib/libc/include/any-macos-any/unistd.h @@ -68,9 +68,11 @@ #ifndef _UNISTD_H_ #define _UNISTD_H_ +#include <_bounds.h> #include <_types.h> #include #include +#include #include #include #include @@ -83,6 +85,8 @@ #include #include +_LIBC_SINGLE_BY_DEFAULT() + #define STDIN_FILENO 0 /* standard input file descriptor */ #define STDOUT_FILENO 1 /* standard output file descriptor */ #define STDERR_FILENO 2 /* standard error file descriptor */ @@ -441,21 +445,21 @@ int dup2(int, int); int execl(const char * __path, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; int execle(const char * __path, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; int execlp(const char * __file, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -int execv(const char * __path, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -int execve(const char * __file, char * const * __argv, char * const * __envp) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -int execvp(const char * __file, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; +int execv(const char * __path, char *_LIBC_CSTR const *_LIBC_NULL_TERMINATED __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; +int execve(const char * __file, char *_LIBC_CSTR const *_LIBC_NULL_TERMINATED __argv, char *_LIBC_CSTR const *_LIBC_NULL_TERMINATED __envp) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; +int execvp(const char * __file, char *_LIBC_CSTR const *_LIBC_NULL_TERMINATED __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; pid_t fork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; long fpathconf(int, int); -char *getcwd(char *, size_t); +char *_LIBC_CSTR getcwd(char *_LIBC_COUNT_OR_NULL(__size), size_t __size); gid_t getegid(void); uid_t geteuid(void); gid_t getgid(void); #if defined(_DARWIN_UNLIMITED_GETGROUPS) || defined(_DARWIN_C_SOURCE) -int getgroups(int, gid_t []) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(getgroups)); +int getgroups(int __gidsetsize, gid_t [_LIBC_COUNT(__gidsetsize)]) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(getgroups)); #else /* !_DARWIN_UNLIMITED_GETGROUPS && !_DARWIN_C_SOURCE */ -int getgroups(int, gid_t []); +int getgroups(int __gidsetsize, gid_t [_LIBC_COUNT(__gidsetsize)]); #endif /* _DARWIN_UNLIMITED_GETGROUPS || _DARWIN_C_SOURCE */ -char *getlogin(void); +char *_LIBC_CSTR getlogin(void); pid_t getpgrp(void); pid_t getpid(void); pid_t getppid(void); @@ -469,7 +473,7 @@ int pause(void) __DARWIN_ALIAS_C(pause); int pipe(int [2]); -ssize_t read(int, void *, size_t) __DARWIN_ALIAS_C(read); +ssize_t read(int, void *_LIBC_SIZE(__nbyte), size_t __nbyte) __DARWIN_ALIAS_C(read); int rmdir(const char *); int setgid(gid_t); @@ -483,17 +487,17 @@ unsigned int long sysconf(int); pid_t tcgetpgrp(int); int tcsetpgrp(int, pid_t); -char *ttyname(int); +char *_LIBC_CSTR ttyname(int); #if __DARWIN_UNIX03 -int ttyname_r(int, char *, size_t) __DARWIN_ALIAS(ttyname_r); +int ttyname_r(int, char *_LIBC_COUNT(__len), size_t __len) __DARWIN_ALIAS(ttyname_r); #else /* !__DARWIN_UNIX03 */ -char *ttyname_r(int, char *, size_t); +char *_LIBC_CSTR ttyname_r(int, char *_LIBC_COUNT(__len), size_t __len); #endif /* __DARWIN_UNIX03 */ int unlink(const char *); -ssize_t write(int __fd, const void * __buf, size_t __nbyte) __DARWIN_ALIAS_C(write); +ssize_t write(int __fd, const void *_LIBC_SIZE(__nbyte) __buf, size_t __nbyte) __DARWIN_ALIAS_C(write); __END_DECLS @@ -504,9 +508,9 @@ __END_DECLS #if __DARWIN_C_LEVEL >= 199209L __BEGIN_DECLS -size_t confstr(int, char *, size_t) __DARWIN_ALIAS(confstr); +size_t confstr(int, char *_LIBC_COUNT(__len), size_t __len) __DARWIN_ALIAS(confstr); -int getopt(int, char * const [], const char *) __DARWIN_ALIAS(getopt); +int getopt(int __argc, char *_LIBC_CSTR const [_LIBC_COUNT(__argc)], const char *) __DARWIN_ALIAS(getopt); extern char *optarg; /* getopt(3) external variables */ extern int optind, opterr, optopt; @@ -537,15 +541,15 @@ __END_DECLS #if !defined(_POSIX_C_SOURCE) __deprecated __WATCHOS_PROHIBITED __TVOS_PROHIBITED #endif -void *brk(const void *); +void *_LIBC_UNSAFE_INDEXABLE brk(const void *_LIBC_UNSAFE_INDEXABLE); int chroot(const char *) __POSIX_C_DEPRECATED(199506L); #endif -char *crypt(const char *, const char *); +char *_LIBC_CSTR crypt(const char *, const char *); #if __DARWIN_UNIX03 -void encrypt(char *, int) __DARWIN_ALIAS(encrypt); +void encrypt(char *_LIBC_COUNT(64), int) __DARWIN_ALIAS(encrypt); #else /* !__DARWIN_UNIX03 */ -int encrypt(char *, int); +int encrypt(char *_LIBC_COUNT(64), int); #endif /* __DARWIN_UNIX03 */ int fchdir(int); long gethostid(void); @@ -556,12 +560,12 @@ pid_t getsid(pid_t); #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L int getdtablesize(void) __POSIX_C_DEPRECATED(199506L); int getpagesize(void) __pure2 __POSIX_C_DEPRECATED(199506L); -char *getpass(const char *) __POSIX_C_DEPRECATED(199506L); +char *_LIBC_CSTR getpass(const char *) __POSIX_C_DEPRECATED(199506L); #endif /* Removed in Issue 7 */ #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200809L -char *getwd(char *) __POSIX_C_DEPRECATED(200112L); /* obsoleted by getcwd() */ +char *_LIBC_CSTR getwd(char *_LIBC_COUNT_OR_NULL(PATH_MAX)) __POSIX_C_DEPRECATED(200112L); /* obsoleted by getcwd() */ #endif int lchown(const char *, uid_t, gid_t) __DARWIN_ALIAS(lchown); @@ -570,9 +574,9 @@ int lockf(int, int, off_t) __DARWIN_ALIAS_C(lockf); int nice(int) __DARWIN_ALIAS(nice); -ssize_t pread(int __fd, void * __buf, size_t __nbyte, off_t __offset) __DARWIN_ALIAS_C(pread); +ssize_t pread(int __fd, void *_LIBC_SIZE(__nbyte) __buf, size_t __nbyte, off_t __offset) __DARWIN_ALIAS_C(pread); -ssize_t pwrite(int __fd, const void * __buf, size_t __nbyte, off_t __offset) __DARWIN_ALIAS_C(pwrite); +ssize_t pwrite(int __fd, const void *_LIBC_SIZE(__nbyte) __buf, size_t __nbyte, off_t __offset) __DARWIN_ALIAS_C(pwrite); /* Removed in Issue 6 */ #if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L @@ -581,7 +585,7 @@ ssize_t pwrite(int __fd, const void * __buf, size_t __nbyte, off_t __offset) __ #if !defined(_POSIX_C_SOURCE) __deprecated __WATCHOS_PROHIBITED __TVOS_PROHIBITED #endif -void *sbrk(int); +void *_LIBC_UNSAFE_INDEXABLE sbrk(int); #endif #if __DARWIN_UNIX03 @@ -594,7 +598,7 @@ int setregid(gid_t, gid_t) __DARWIN_ALIAS(setregid); int setreuid(uid_t, uid_t) __DARWIN_ALIAS(setreuid); -void swab(const void * __restrict, void * __restrict, ssize_t); +void swab(const void * __restrict _LIBC_SIZE(__nbytes), void * __restrict _LIBC_SIZE(__nbytes), ssize_t __nbytes); void sync(void); int truncate(const char *, off_t); useconds_t ualarm(useconds_t, useconds_t); @@ -609,7 +613,7 @@ pid_t vfork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; int fsync(int) __DARWIN_ALIAS_C(fsync); int ftruncate(int, off_t); -int getlogin_r(char *, size_t); +int getlogin_r(char *_LIBC_COUNT(__namelen), size_t __namelen); __END_DECLS #endif /* __DARWIN_C_LEVEL >= 199506L */ @@ -623,8 +627,8 @@ __END_DECLS #if __DARWIN_C_LEVEL >= 200112L __BEGIN_DECLS int fchown(int, uid_t, gid_t); -int gethostname(char *, size_t); -ssize_t readlink(const char * __restrict, char * __restrict, size_t); +int gethostname(char *_LIBC_COUNT(__namelen), size_t __namelen); +ssize_t readlink(const char * __restrict, char *_LIBC_COUNT(__bufsize) __restrict, size_t __bufsize); int setegid(gid_t); int seteuid(uid_t); int symlink(const char *, const char *); @@ -644,64 +648,64 @@ __END_DECLS __BEGIN_DECLS void _Exit(int) __dead2; -int accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t); +int accessx_np(const struct accessx_descriptor *_LIBC_SIZE(__sz), size_t __sz, int *, uid_t); int acct(const char *); -int add_profil(char *, size_t, unsigned long, unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; +int add_profil(char *_LIBC_COUNT(__bufsiz), size_t __bufsiz, unsigned long, unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; void endusershell(void); -int execvP(const char * __file, const char * __searchpath, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -char *fflagstostr(unsigned long); -int getdomainname(char *, int); -int getgrouplist(const char *, int, int *, int *); +int execvP(const char * __file, const char * __searchpath, char *_LIBC_CSTR const *_LIBC_NULL_TERMINATED __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; +char *_LIBC_CSTR fflagstostr(unsigned long); +int getdomainname(char *_LIBC_COUNT(__namelen), int __namelen); +int getgrouplist(const char *, int, int *_LIBC_COUNT(*__ngroups), int *__ngroups); __END_DECLS #include __BEGIN_DECLS mode_t getmode(const void *, mode_t); int getpeereid(int, uid_t *, gid_t *); int getsgroups_np(int *, uuid_t); -char *getusershell(void); +char *_LIBC_CSTR getusershell(void); int getwgroups_np(int *, uuid_t); int initgroups(const char *, int); int issetugid(void); -char *mkdtemp(char *); +char *_LIBC_CSTR mkdtemp(char *_LIBC_CSTR); int mknod(const char *, mode_t, dev_t); int mkpath_np(const char *path, mode_t omode) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_5_0); /* returns errno */ int mkpathat_np(int dfd, const char *path, mode_t omode) /* returns errno */ __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); -int mkstemp(char *); -int mkstemps(char *, int); -char *mktemp(char *); -int mkostemp(char *path, int oflags) +int mkstemp(char *_LIBC_CSTR); +int mkstemps(char *_LIBC_CSTR, int); +char *_LIBC_CSTR mktemp(char *_LIBC_CSTR); +int mkostemp(char *_LIBC_CSTR path, int oflags) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); -int mkostemps(char *path, int slen, int oflags) +int mkostemps(char *_LIBC_CSTR path, int slen, int oflags) __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); /* Non-portable mkstemp that uses open_dprotected_np */ -int mkstemp_dprotected_np(char *path, int dpclass, int dpflags) +int mkstemp_dprotected_np(char *_LIBC_CSTR path, int dpclass, int dpflags) __OSX_UNAVAILABLE __IOS_AVAILABLE(10.0) __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0); -char *mkdtempat_np(int dfd, char *path) +char *_LIBC_CSTR mkdtempat_np(int dfd, char *_LIBC_CSTR path) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0); -int mkstempsat_np(int dfd, char *path, int slen) +int mkstempsat_np(int dfd, char *_LIBC_CSTR path, int slen) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0); -int mkostempsat_np(int dfd, char *path, int slen, int oflags) +int mkostempsat_np(int dfd, char *_LIBC_CSTR path, int slen, int oflags) __OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0) __TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0); int nfssvc(int, void *); -int profil(char *, size_t, unsigned long, unsigned int); +int profil(char *_LIBC_COUNT(__bufsiz), size_t __bufsiz, unsigned long, unsigned int); __deprecated_msg("Use of per-thread security contexts is error-prone and discouraged.") int pthread_setugid_np(uid_t, gid_t); -int pthread_getugid_np( uid_t *, gid_t *); +int pthread_getugid_np(uid_t *, gid_t *); int reboot(int); int revoke(const char *); -__deprecated int rcmd(char **, int, const char *, const char *, const char *, int *); -__deprecated int rcmd_af(char **, int, const char *, const char *, const char *, int *, +__deprecated int rcmd(char *_LIBC_CSTR *, int, const char *, const char *, const char *, int *); +__deprecated int rcmd_af(char *_LIBC_CSTR *, int, const char *, const char *, const char *, int *, int); __deprecated int rresvport(int *); __deprecated int rresvport_af(int *, int); @@ -709,10 +713,10 @@ __deprecated int iruserok(unsigned long, int, const char *, const char *); __deprecated int iruserok_sa(const void *, int, int, const char *, const char *); __deprecated int ruserok(const char *, int, const char *, const char *); -int setdomainname(const char *, int); +int setdomainname(const char *_LIBC_COUNT(__namelen), int __namelen); int setgroups(int, const gid_t *); void sethostid(long); -int sethostname(const char *, int); +int sethostname(const char *_LIBC_COUNT(__namelen), int __namelen); #if __DARWIN_UNIX03 void setkey(const char *) __DARWIN_ALIAS(setkey); #else /* !__DARWIN_UNIX03 */ @@ -725,12 +729,12 @@ int setruid(uid_t); int setsgroups_np(int, const uuid_t); void setusershell(void); int setwgroups_np(int, const uuid_t); -int strtofflags(char **, unsigned long *, unsigned long *); +int strtofflags(char *_LIBC_CSTR *, unsigned long *, unsigned long *); int swapon(const char *); int ttyslot(void); int undelete(const char *); int unwhiteout(const char *); -void *valloc(size_t); +void *_LIBC_SIZE_OR_NULL(__size) valloc(size_t __size); /* __attribute__((malloc, alloc_size(1))) */ __WATCHOS_PROHIBITED __TVOS_PROHIBITED __OS_AVAILABILITY_MSG(ios,deprecated=10.0,"syscall(2) is unsupported; " @@ -740,27 +744,27 @@ __OS_AVAILABILITY_MSG(macosx,deprecated=10.12,"syscall(2) is unsupported; " int syscall(int, ...); extern char *suboptarg; /* getsubopt(3) external variable */ -int getsubopt(char **, char * const *, char **); +int getsubopt(char *_LIBC_CSTR *, char *_LIBC_CSTR const *_LIBC_NULL_TERMINATED, char *_LIBC_CSTR *); /* HFS & HFS Plus semantics system calls go here */ #ifdef __LP64__ -int fgetattrlist(int,void*,void*,size_t,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); -int fsetattrlist(int,void*,void*,size_t,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); -int getattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(getattrlist); -int setattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(setattrlist); +int fgetattrlist(int,void*,void *_LIBC_SIZE(__attrBufSize),size_t __attrBufSize,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); +int fsetattrlist(int,void*,void *_LIBC_SIZE(__attrBufSize),size_t __attrBufSize,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); +int getattrlist(const char*,void*,void *_LIBC_SIZE(__attrBufSize),size_t __attrBufSize,unsigned int) __DARWIN_ALIAS(getattrlist); +int setattrlist(const char*,void*,void *_LIBC_SIZE(__attrBufSize),size_t __attrBufSize,unsigned int) __DARWIN_ALIAS(setattrlist); int exchangedata(const char*,const char*,unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -int getdirentriesattr(int,void*,void*,size_t,unsigned int*,unsigned int*,unsigned int*,unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; +int getdirentriesattr(int,void*,void *_LIBC_SIZE(__attrBufSize),size_t __attrBufSize,unsigned int*,unsigned int*,unsigned int*,unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; #else /* __LP64__ */ -int fgetattrlist(int,void*,void*,size_t,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); -int fsetattrlist(int,void*,void*,size_t,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); -int getattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(getattrlist); -int setattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(setattrlist); +int fgetattrlist(int,void*,void *_LIBC_SIZE(__attrBufSize),size_t __attrBufSize,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); +int fsetattrlist(int,void*,void *_LIBC_SIZE(__attrBufSize),size_t __attrBufSize,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); +int getattrlist(const char*,void*,void *_LIBC_SIZE(__attrBufSize),size_t __attrBufSize,unsigned long) __DARWIN_ALIAS(getattrlist); +int setattrlist(const char*,void*,void *_LIBC_SIZE(__attrBufSize),size_t __attrBufSize,unsigned long) __DARWIN_ALIAS(setattrlist); int exchangedata(const char*,const char*,unsigned long) __OSX_DEPRECATED(10.0, 10.13, "use renamex_np with the RENAME_SWAP flag") __IOS_DEPRECATED(2.0, 11.0, "use renamex_np with the RENAME_SWAP flag") __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -int getdirentriesattr(int,void*,void*,size_t,unsigned long*,unsigned long*,unsigned long*,unsigned long) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; +int getdirentriesattr(int,void*,void *_LIBC_SIZE(__attrBufSize),size_t __attrBufSize,unsigned long*,unsigned long*,unsigned long*,unsigned long) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; #endif /* __LP64__ */ @@ -768,8 +772,8 @@ struct fssearchblock; struct searchstate; int searchfs(const char *, struct fssearchblock *, unsigned long *, unsigned int, unsigned int, struct searchstate *) __WATCHOS_PROHIBITED __TVOS_PROHIBITED; -int fsctl(const char *,unsigned long,void*,unsigned int); -int ffsctl(int,unsigned long,void*,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); +int fsctl(const char *,unsigned long,void *_LIBC_UNSAFE_INDEXABLE,unsigned int); +int ffsctl(int,unsigned long,void *_LIBC_UNSAFE_INDEXABLE,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0); #define SYNC_VOLUME_FULLSYNC 0x01 /* Flush data and metadata to platter, not just to disk cache */ #define SYNC_VOLUME_WAIT 0x02 /* Wait for sync to complete */ diff --git a/lib/libc/include/any-macos-any/utime.h b/lib/libc/include/any-macos-any/utime.h index 106e494940..62a9d3945b 100644 --- a/lib/libc/include/any-macos-any/utime.h +++ b/lib/libc/include/any-macos-any/utime.h @@ -58,9 +58,12 @@ #ifndef _UTIME_H_ #define _UTIME_H_ +#include <_bounds.h> #include <_types.h> #include +_LIBC_SINGLE_BY_DEFAULT() + struct utimbuf { time_t actime; /* Access time */ time_t modtime; /* Modification time */ diff --git a/lib/libc/include/any-macos-any/utmpx.h b/lib/libc/include/any-macos-any/utmpx.h index a461c9ecbc..7ee5b180cd 100644 --- a/lib/libc/include/any-macos-any/utmpx.h +++ b/lib/libc/include/any-macos-any/utmpx.h @@ -60,6 +60,7 @@ #ifndef _UTMPX_H_ #define _UTMPX_H_ +#include <_bounds.h> #include <_types.h> #include #include @@ -70,6 +71,8 @@ #include #endif /* !_POSIX_C_SOURCE || _DARWIN_C_SOURCE */ +_LIBC_SINGLE_BY_DEFAULT() + #define _PATH_UTMPX "/var/run/utmpx" #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) diff --git a/lib/libc/include/any-macos-any/wordexp.h b/lib/libc/include/any-macos-any/wordexp.h index 705b15c4e1..f19bf7cd9f 100644 --- a/lib/libc/include/any-macos-any/wordexp.h +++ b/lib/libc/include/any-macos-any/wordexp.h @@ -47,13 +47,16 @@ WITH THE ACCESS, USE OR PERFORMANCE OF THIS SOFTWARE. #define _WORDEXP_H #include +#include <_bounds.h> #include <_types.h> #include #include +_LIBC_SINGLE_BY_DEFAULT() + typedef struct { size_t we_wordc; - char **we_wordv; + char *_LIBC_CSTR *_LIBC_COUNT(we_wordc) we_wordv; size_t we_offs; } wordexp_t; diff --git a/lib/libc/include/any-macos-any/xlocale/___wctype.h b/lib/libc/include/any-macos-any/xlocale/___wctype.h index 52c488a5e5..04c73277c2 100644 --- a/lib/libc/include/any-macos-any/xlocale/___wctype.h +++ b/lib/libc/include/any-macos-any/xlocale/___wctype.h @@ -24,9 +24,12 @@ #ifndef _XLOCALE____WCTYPE_H_ #define _XLOCALE____WCTYPE_H_ +#include <_bounds.h> #include <___wctype.h> #include +_LIBC_SINGLE_BY_DEFAULT() + #if !defined(_DONT_USE_CTYPE_INLINE_) && \ (defined(_USE_CTYPE_INLINE_) || defined(__GNUC__) || defined(__cplusplus)) diff --git a/lib/libc/include/any-macos-any/xlocale/_ctype.h b/lib/libc/include/any-macos-any/xlocale/_ctype.h index 5fb364c217..68a42efff2 100644 --- a/lib/libc/include/any-macos-any/xlocale/_ctype.h +++ b/lib/libc/include/any-macos-any/xlocale/_ctype.h @@ -24,9 +24,12 @@ #ifndef _XLOCALE__CTYPE_H_ #define _XLOCALE__CTYPE_H_ +#include <_bounds.h> #include <_ctype.h> #include <__xlocale.h> +_LIBC_SINGLE_BY_DEFAULT() + /* * Use inline functions if we are allowed to and the compiler supports them. */ diff --git a/lib/libc/include/any-macos-any/xlocale/_inttypes.h b/lib/libc/include/any-macos-any/xlocale/_inttypes.h index 8b417d0de2..1e699b6594 100644 --- a/lib/libc/include/any-macos-any/xlocale/_inttypes.h +++ b/lib/libc/include/any-macos-any/xlocale/_inttypes.h @@ -25,19 +25,22 @@ #define _XLOCALE__INTTYPES_H_ #include +#include <_bounds.h> #include #include /* wchar_t */ #include <__xlocale.h> +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS -intmax_t strtoimax_l(const char * __restrict nptr, char ** __restrict endptr, - int base, locale_t); -uintmax_t strtoumax_l(const char * __restrict nptr, char ** __restrict endptr, - int base, locale_t); +intmax_t strtoimax_l(const char * __restrict nptr, + char *_LIBC_CSTR * __restrict endptr, int base, locale_t); +uintmax_t strtoumax_l(const char * __restrict nptr, + char *_LIBC_CSTR * __restrict endptr, int base, locale_t); intmax_t wcstoimax_l(const wchar_t * __restrict nptr, - wchar_t ** __restrict endptr, int base, locale_t); + wchar_t *_LIBC_CSTR * __restrict endptr, int base, locale_t); uintmax_t wcstoumax_l(const wchar_t * __restrict nptr, - wchar_t ** __restrict endptr, int base, locale_t); + wchar_t *_LIBC_CSTR * __restrict endptr, int base, locale_t); /* Poison the following routines if -fshort-wchar is set */ #if !defined(__cplusplus) && defined(__WCHAR_MAX__) && __WCHAR_MAX__ <= 0xffffU diff --git a/lib/libc/include/any-macos-any/xlocale/_langinfo.h b/lib/libc/include/any-macos-any/xlocale/_langinfo.h index d2e8c26989..77f465cf8a 100644 --- a/lib/libc/include/any-macos-any/xlocale/_langinfo.h +++ b/lib/libc/include/any-macos-any/xlocale/_langinfo.h @@ -25,11 +25,14 @@ #define _XLOCALE__LANGINFO_H_ #include +#include <_bounds.h> #include <_types/_nl_item.h> #include <__xlocale.h> +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS -char *nl_langinfo_l(nl_item, locale_t); +char *_LIBC_CSTR nl_langinfo_l(nl_item, locale_t); __END_DECLS #endif /* _XLOCALE__LANGINFO_H_ */ diff --git a/lib/libc/include/any-macos-any/xlocale/_monetary.h b/lib/libc/include/any-macos-any/xlocale/_monetary.h index 1eae3f86b8..d195ee2f8d 100644 --- a/lib/libc/include/any-macos-any/xlocale/_monetary.h +++ b/lib/libc/include/any-macos-any/xlocale/_monetary.h @@ -30,8 +30,10 @@ #include #include <__xlocale.h> +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS -ssize_t strfmon_l(char *, size_t, locale_t, const char *, ...) +ssize_t strfmon_l(char *_LIBC_COUNT(__maxsize), size_t __maxsize, locale_t, const char *, ...) __strfmonlike(4, 5); __END_DECLS diff --git a/lib/libc/include/any-macos-any/xlocale/_regex.h b/lib/libc/include/any-macos-any/xlocale/_regex.h index 4a8d89b58e..3bdd12da8e 100644 --- a/lib/libc/include/any-macos-any/xlocale/_regex.h +++ b/lib/libc/include/any-macos-any/xlocale/_regex.h @@ -29,6 +29,9 @@ #include <__xlocale.h> #endif +#include <_bounds.h> +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS int regcomp_l(regex_t * __restrict, const char * __restrict, int, @@ -37,14 +40,14 @@ int regcomp_l(regex_t * __restrict, const char * __restrict, int, #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL -int regncomp_l(regex_t * __restrict, const char * __restrict, size_t, - int, locale_t __restrict) +int regncomp_l(regex_t * __restrict, const char * __restrict _LIBC_COUNT(__len), + size_t __len, int, locale_t __restrict) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_NA); int regwcomp_l(regex_t * __restrict, const wchar_t * __restrict, int, locale_t __restrict) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_NA); -int regwnexec_l(const regex_t * __restrict, const wchar_t * __restrict, - size_t, size_t, regmatch_t __pmatch[ __restrict], int, +int regwnexec_l(const regex_t * __restrict, const wchar_t * __restrict _LIBC_COUNT(__len), + size_t __len, size_t __nmatch, regmatch_t __pmatch[ __restrict _LIBC_COUNT(__nmatch)], int, locale_t __restrict) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_NA); diff --git a/lib/libc/include/any-macos-any/xlocale/_stdio.h b/lib/libc/include/any-macos-any/xlocale/_stdio.h index 49bdbcaacf..9eb58e1a90 100644 --- a/lib/libc/include/any-macos-any/xlocale/_stdio.h +++ b/lib/libc/include/any-macos-any/xlocale/_stdio.h @@ -24,9 +24,12 @@ #ifndef _XLOCALE__STDIO_H_ #define _XLOCALE__STDIO_H_ +#include <_bounds.h> #include <_stdio.h> #include <__xlocale.h> +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS int fprintf_l(FILE * __restrict, locale_t __restrict, const char * __restrict, ...) @@ -37,25 +40,25 @@ int printf_l(locale_t __restrict, const char * __restrict, ...) __printflike(2, 3); int scanf_l(locale_t __restrict, const char * __restrict, ...) __scanflike(2, 3); -int sprintf_l(char * __restrict, locale_t __restrict, const char * __restrict, ...) - __printflike(3, 4) __swift_unavailable("Use snprintf_l instead."); +int sprintf_l(char * __restrict _LIBC_UNSAFE_INDEXABLE, locale_t __restrict, const char * __restrict, ...) + __printflike(3, 4) __swift_unavailable("Use snprintf_l instead.") _LIBC_PTRCHECK_REPLACED("snprintf_l"); int sscanf_l(const char * __restrict, locale_t __restrict, const char * __restrict, ...) __scanflike(3, 4); int vfprintf_l(FILE * __restrict, locale_t __restrict, const char * __restrict, va_list) __printflike(3, 0); int vprintf_l(locale_t __restrict, const char * __restrict, va_list) __printflike(2, 0); -int vsprintf_l(char * __restrict, locale_t __restrict, const char * __restrict, va_list) - __printflike(3, 0) __swift_unavailable("Use vsnprintf_l instead."); +int vsprintf_l(char * __restrict _LIBC_UNSAFE_INDEXABLE, locale_t __restrict, const char * __restrict, va_list) + __printflike(3, 0) __swift_unavailable("Use vsnprintf_l instead.") _LIBC_PTRCHECK_REPLACED("vsnprintf_l"); #if __DARWIN_C_LEVEL >= 200112L || defined(__cplusplus) -int snprintf_l(char * __restrict, size_t, locale_t __restrict, const char * __restrict, ...) +int snprintf_l(char * __restrict _LIBC_COUNT(__maxlen), size_t __maxlen, locale_t __restrict, const char * __restrict, ...) __printflike(4, 5); int vfscanf_l(FILE * __restrict, locale_t __restrict, const char * __restrict, va_list) __scanflike(3, 0); int vscanf_l(locale_t __restrict, const char * __restrict, va_list) __scanflike(2, 0); -int vsnprintf_l(char * __restrict, size_t, locale_t __restrict, const char * __restrict, va_list) +int vsnprintf_l(char * __restrict _LIBC_COUNT(__maxlen), size_t __maxlen, locale_t __restrict, const char * __restrict, va_list) __printflike(4, 0); int vsscanf_l(const char * __restrict, locale_t __restrict, const char * __restrict, va_list) __scanflike(3, 0); @@ -70,9 +73,9 @@ int vdprintf_l(int, locale_t __restrict, const char * __restrict, va_list) #if __DARWIN_C_LEVEL >= __DARWIN_C_FULL || defined(__cplusplus) -int asprintf_l(char ** __restrict, locale_t __restrict, const char * __restrict, ...) +int asprintf_l(char *_LIBC_CSTR * __restrict, locale_t __restrict, const char * __restrict, ...) __printflike(3, 4); -int vasprintf_l(char ** __restrict, locale_t __restrict, const char * __restrict, va_list) +int vasprintf_l(char *_LIBC_CSTR * __restrict, locale_t __restrict, const char * __restrict, va_list) __printflike(3, 0); #endif diff --git a/lib/libc/include/any-macos-any/xlocale/_stdlib.h b/lib/libc/include/any-macos-any/xlocale/_stdlib.h index d664e24429..a17d6546fd 100644 --- a/lib/libc/include/any-macos-any/xlocale/_stdlib.h +++ b/lib/libc/include/any-macos-any/xlocale/_stdlib.h @@ -24,11 +24,14 @@ #ifndef _XLOCALE__STDLIB_H_ #define _XLOCALE__STDLIB_H_ +#include <_bounds.h> #include #include #include #include <__xlocale.h> +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS double atof_l(const char *, locale_t); int atoi_l(const char *, locale_t); @@ -37,32 +40,32 @@ long atol_l(const char *, locale_t); long long atoll_l(const char *, locale_t); #endif /* !__DARWIN_NO_LONG_LONG */ -int mblen_l(const char *, size_t, locale_t); -size_t mbstowcs_l(wchar_t * __restrict , const char * __restrict, size_t, - locale_t); -int mbtowc_l(wchar_t * __restrict, const char * __restrict, size_t, - locale_t); -double strtod_l(const char *, char **, locale_t) __DARWIN_ALIAS(strtod_l); -float strtof_l(const char *, char **, locale_t) __DARWIN_ALIAS(strtof_l); -long strtol_l(const char *, char **, int, locale_t); +int mblen_l(const char *_LIBC_COUNT(__n), size_t __n, locale_t); +size_t mbstowcs_l(wchar_t * __restrict _LIBC_COUNT(__n), + const char * __restrict, size_t __n, locale_t); +int mbtowc_l(wchar_t * __restrict _LIBC_UNSAFE_INDEXABLE, + const char * __restrict _LIBC_COUNT(__n), size_t __n, locale_t); +double strtod_l(const char *, char *_LIBC_CSTR *, locale_t) __DARWIN_ALIAS(strtod_l); +float strtof_l(const char *, char *_LIBC_CSTR *, locale_t) __DARWIN_ALIAS(strtof_l); +long strtol_l(const char *, char *_LIBC_CSTR *, int, locale_t); long double - strtold_l(const char *, char **, locale_t); + strtold_l(const char *, char *_LIBC_CSTR *, locale_t); long long - strtoll_l(const char *, char **, int, locale_t); + strtoll_l(const char *, char *_LIBC_CSTR *, int, locale_t); #if !__DARWIN_NO_LONG_LONG long long - strtoq_l(const char *, char **, int, locale_t); + strtoq_l(const char *, char *_LIBC_CSTR *, int, locale_t); #endif /* !__DARWIN_NO_LONG_LONG */ unsigned long - strtoul_l(const char *, char **, int, locale_t); + strtoul_l(const char *, char *_LIBC_CSTR *, int, locale_t); unsigned long long - strtoull_l(const char *, char **, int, locale_t); + strtoull_l(const char *, char *_LIBC_CSTR *, int, locale_t); #if !__DARWIN_NO_LONG_LONG unsigned long long - strtouq_l(const char *, char **, int, locale_t); + strtouq_l(const char *, char *_LIBC_CSTR *, int, locale_t); #endif /* !__DARWIN_NO_LONG_LONG */ -size_t wcstombs_l(char * __restrict, const wchar_t * __restrict, size_t, - locale_t); +size_t wcstombs_l(char * __restric _LIBC_COUNT(__n), + const wchar_t * __restrict, size_t __n, locale_t); int wctomb_l(char *, wchar_t, locale_t); /* Poison the following routines if -fshort-wchar is set */ diff --git a/lib/libc/include/any-macos-any/xlocale/_string.h b/lib/libc/include/any-macos-any/xlocale/_string.h index 0c9bddf5bd..634272ca04 100644 --- a/lib/libc/include/any-macos-any/xlocale/_string.h +++ b/lib/libc/include/any-macos-any/xlocale/_string.h @@ -25,15 +25,19 @@ #define _XLOCALE__STRING_H_ #include +#include <_bounds.h> #include #include <__xlocale.h> +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS int strcoll_l(const char *, const char *, locale_t); -size_t strxfrm_l(char *, const char *, size_t, locale_t); +size_t strxfrm_l(char *_LIBC_COUNT(__n), const char *, size_t __n, locale_t); int strcasecmp_l(const char *, const char *, locale_t); char *strcasestr_l(const char *, const char *, locale_t); -int strncasecmp_l(const char *, const char *, size_t, locale_t); +int strncasecmp_l(const char *_LIBC_UNSAFE_INDEXABLE, + const char *_LIBC_UNSAFE_INDEXABLE, size_t, locale_t); __END_DECLS #endif /* _XLOCALE__STRING_H_ */ diff --git a/lib/libc/include/any-macos-any/xlocale/_time.h b/lib/libc/include/any-macos-any/xlocale/_time.h index ee94572265..3628c807cb 100644 --- a/lib/libc/include/any-macos-any/xlocale/_time.h +++ b/lib/libc/include/any-macos-any/xlocale/_time.h @@ -25,13 +25,16 @@ #define _XLOCALE__TIME_H_ #include +#include <_bounds.h> #include #include <_types.h> #include <__xlocale.h> +_LIBC_SINGLE_BY_DEFAULT() + __BEGIN_DECLS -size_t strftime_l(char * __restrict, size_t, const char * __restrict, - const struct tm * __restrict, locale_t) +size_t strftime_l(char * __restrict _LIBC_COUNT(__n), size_t __n, + const char * __restrict, const struct tm * __restrict, locale_t) __DARWIN_ALIAS(strftime_l) __strftimelike(3); char *strptime_l(const char * __restrict, const char * __restrict, struct tm * __restrict, locale_t) diff --git a/lib/libc/include/any-macos-any/xlocale/_wchar.h b/lib/libc/include/any-macos-any/xlocale/_wchar.h index f3ed34c7cf..61582ce1c6 100644 --- a/lib/libc/include/any-macos-any/xlocale/_wchar.h +++ b/lib/libc/include/any-macos-any/xlocale/_wchar.h @@ -24,59 +24,68 @@ #ifndef _XLOCALE__WCHAR_H_ #define _XLOCALE__WCHAR_H_ +#include <_bounds.h> #include <_stdio.h> #include <__xlocale.h> #include #include #include /* wchar_t */ +_LIBC_SINGLE_BY_DEFAULT() + /* Initially added in Issue 4 */ __BEGIN_DECLS wint_t btowc_l(int, locale_t); wint_t fgetwc_l(FILE *, locale_t); -wchar_t *fgetws_l(wchar_t * __restrict, int, FILE * __restrict, locale_t); +wchar_t *_LIBC_CSTR fgetws_l(wchar_t * __restrict _LIBC_COUNT(__n), int __n, + FILE * __restrict, locale_t); wint_t fputwc_l(wchar_t, FILE *, locale_t); int fputws_l(const wchar_t * __restrict, FILE * __restrict, locale_t); int fwprintf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, ...); int fwscanf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, ...); wint_t getwc_l(FILE *, locale_t); wint_t getwchar_l(locale_t); -size_t mbrlen_l(const char * __restrict, size_t, mbstate_t * __restrict, - locale_t); -size_t mbrtowc_l(wchar_t * __restrict, const char * __restrict, size_t, +size_t mbrlen_l(const char * __restrict _LIBC_COUNT(__n), size_t __n, mbstate_t * __restrict, locale_t); +size_t mbrtowc_l(wchar_t * __restrict _LIBC_UNSAFE_INDEXABLE, + const char * __restrict _LIBC_COUNT(__n), size_t __n, + mbstate_t * __restrict, locale_t); int mbsinit_l(const mbstate_t *, locale_t); -size_t mbsrtowcs_l(wchar_t * __restrict, const char ** __restrict, size_t, - mbstate_t * __restrict, locale_t); +size_t mbsrtowcs_l(wchar_t * __restrict _LIBC_COUNT(__len), + const char ** __restrict, size_t __len, mbstate_t * __restrict, + locale_t); wint_t putwc_l(wchar_t, FILE *, locale_t); wint_t putwchar_l(wchar_t, locale_t); -int swprintf_l(wchar_t * __restrict, size_t n, locale_t, +int swprintf_l(wchar_t * __restrict _LIBC_COUNT(n), size_t n, locale_t, const wchar_t * __restrict, ...); int swscanf_l(const wchar_t * __restrict, locale_t, const wchar_t * __restrict, ...); wint_t ungetwc_l(wint_t, FILE *, locale_t); int vfwprintf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, __darwin_va_list); -int vswprintf_l(wchar_t * __restrict, size_t n, locale_t, +int vswprintf_l(wchar_t * __restrict _LIBC_COUNT(n), size_t n, locale_t, const wchar_t * __restrict, __darwin_va_list); int vwprintf_l(locale_t, const wchar_t * __restrict, __darwin_va_list); -size_t wcrtomb_l(char * __restrict, wchar_t, mbstate_t * __restrict, - locale_t); +size_t wcrtomb_l( + char * __restrict _LIBC_UNSAFE_INDEXABLE /* __counted_by(MB_CUR_MAX), which is not a constant */, + wchar_t, mbstate_t * __restrict, locale_t); int wcscoll_l(const wchar_t *, const wchar_t *, locale_t); -size_t wcsftime_l(wchar_t * __restrict, size_t, const wchar_t * __restrict, - const struct tm * __restrict, locale_t) +size_t wcsftime_l(wchar_t * __restrict _LIBC_COUNT(__n), size_t __n, + const wchar_t * __restrict, const struct tm * __restrict, locale_t) __DARWIN_ALIAS(wcsftime_l); -size_t wcsrtombs_l(char * __restrict, const wchar_t ** __restrict, size_t, - mbstate_t * __restrict, locale_t); -double wcstod_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t); -long wcstol_l(const wchar_t * __restrict, wchar_t ** __restrict, int, - locale_t); +size_t wcsrtombs_l(char * __restrict _LIBC_COUNT(__len), + const wchar_t ** __restrict, size_t __len, mbstate_t * __restrict, + locale_t); +double wcstod_l(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, + locale_t); +long wcstol_l(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, + int, locale_t); unsigned long - wcstoul_l(const wchar_t * __restrict, wchar_t ** __restrict, int, - locale_t); -int wcswidth_l(const wchar_t *, size_t, locale_t); -size_t wcsxfrm_l(wchar_t * __restrict, const wchar_t * __restrict, size_t, + wcstoul_l(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, int, locale_t); +int wcswidth_l(const wchar_t *_LIBC_COUNT(__n), size_t __n, locale_t); +size_t wcsxfrm_l(wchar_t * __restrict _LIBC_COUNT(__n), + const wchar_t * __restrict, size_t __n, locale_t); int wctob_l(wint_t, locale_t); int wcwidth_l(wchar_t, locale_t); int wprintf_l(locale_t, const wchar_t * __restrict, ...); @@ -96,16 +105,18 @@ int vfwscanf_l(FILE * __restrict, locale_t, const wchar_t * __restrict, int vswscanf_l(const wchar_t * __restrict, locale_t, const wchar_t * __restrict, __darwin_va_list); int vwscanf_l(locale_t, const wchar_t * __restrict, __darwin_va_list); -float wcstof_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t); +float wcstof_l(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, + locale_t); long double - wcstold_l(const wchar_t * __restrict, wchar_t ** __restrict, locale_t); + wcstold_l(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, + locale_t); #if !__DARWIN_NO_LONG_LONG long long - wcstoll_l(const wchar_t * __restrict, wchar_t ** __restrict, int, + wcstoll_l(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, int, locale_t); unsigned long long - wcstoull_l(const wchar_t * __restrict, wchar_t ** __restrict, int, - locale_t); + wcstoull_l(const wchar_t * __restrict, wchar_t *_LIBC_CSTR * __restrict, + int, locale_t); #endif /* !__DARWIN_NO_LONG_LONG */ __END_DECLS #endif /* __DARWIN_C_LEVEL >= 200112L */ @@ -118,10 +129,12 @@ __END_DECLS #if __DARWIN_C_LEVEL >= 200809L __BEGIN_DECLS -size_t mbsnrtowcs_l(wchar_t * __restrict, const char ** __restrict, size_t, - size_t, mbstate_t * __restrict, locale_t); +size_t mbsnrtowcs_l(wchar_t * __restrict _LIBC_COUNT(__len), + const char ** __restrict, size_t, size_t __len, mbstate_t * __restrict, + locale_t); int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); -int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t n, locale_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); +int wcsncasecmp_l(const wchar_t *_LIBC_UNSAFE_INDEXABLE, + const wchar_t *_LIBC_UNSAFE_INDEXABLE, size_t n, locale_t) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3); size_t wcsnrtombs_l(char * __restrict, const wchar_t ** __restrict, size_t, size_t, mbstate_t * __restrict, locale_t); __END_DECLS diff --git a/lib/libc/include/any-macos-any/xlocale/_wctype.h b/lib/libc/include/any-macos-any/xlocale/_wctype.h index 2a900cfd14..12270ba6e9 100644 --- a/lib/libc/include/any-macos-any/xlocale/_wctype.h +++ b/lib/libc/include/any-macos-any/xlocale/_wctype.h @@ -24,10 +24,13 @@ #ifndef _XLOCALE__WCTYPE_H_ #define _XLOCALE__WCTYPE_H_ +#include <_bounds.h> #include <___wctype.h> #include <_types/_wctrans_t.h> #include +_LIBC_SINGLE_BY_DEFAULT() + #if !defined(_DONT_USE_CTYPE_INLINE_) && \ (defined(_USE_CTYPE_INLINE_) || defined(__GNUC__) || defined(__cplusplus)) diff --git a/lib/libc/include/any-macos-any/xpc/session.h b/lib/libc/include/any-macos-any/xpc/session.h index 344669ed4d..0bb268a9ca 100644 --- a/lib/libc/include/any-macos-any/xpc/session.h +++ b/lib/libc/include/any-macos-any/xpc/session.h @@ -139,9 +139,6 @@ xpc_session_create_xpc_service(const char *name, * An out-parameter that, if set and in the event of an error, will point to an * {@link xpc_rich_error_t} describing the details of any errors that occurred. * - * @param cancel_handler - * The cancel handler block that will be executed when this session is canceled. - * * @result * On success this returns a new session object. The returned session is * activated by default and can be used to send messages. The caller is