Loading...
--- /dev/null
+++ Libc/Libc-1698.100.8/tests/thread_stack_pcs_helper.c
@@ -0,0 +1,45 @@
+/*
+* 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@
+*/
+
+// this file contains a dyld stack, which interposes the use of these symbols in libc for testing
+
+#include <mach-o/dyld-interposing.h>
+#include <mach-o/dyld_priv.h>
+
+static uint8_t test_dyld_stack[32768];
+
+static const void* test_dyld_stack_top = &test_dyld_stack[32768];
+static const void* test_dyld_stack_bottom = &test_dyld_stack[0];
+
+static void test_dyld_stack_range(const void** stack_bottom, const void** stack_top)
+{
+ *stack_bottom = test_dyld_stack_bottom;
+ *stack_top = test_dyld_stack_top;
+}
+
+DYLD_INTERPOSE(test_dyld_stack_range, _dyld_stack_range)