#include <TargetConditionals.h>
#include <stdlib.h>
+#include <platform/string.h>
+#include <_libkernel_init.h>
struct ProgramVars; /* forward reference */
extern void _simple_asl_init(const char *envp[], const struct ProgramVars *vars);
extern void __pfz_setup(const char *apple[]);
+#if !VARIANT_STATIC
+static const struct _libkernel_string_functions _platform_string_functions = {
+ .version = 1,
+ .bzero = _platform_bzero,
+ .memchr = _platform_memchr,
+ .memcmp = _platform_memcmp,
+ .memmove = _platform_memmove,
+ .memccpy = _platform_memccpy,
+ .memset = _platform_memset,
+ .strchr = _platform_strchr,
+ .strcmp = _platform_strcmp,
+ .strcpy = _platform_strcpy,
+ .strlcat = _platform_strlcat,
+ .strlcpy = _platform_strlcpy,
+ .strlen = _platform_strlen,
+ .strncmp = _platform_strncmp,
+ .strncpy = _platform_strncpy,
+ .strnlen = _platform_strnlen,
+ .strstr = _platform_strstr,
+};
+#endif
+
void
__libplatform_init(void *future_use __unused, const char *envp[],
const char *apple[], const struct ProgramVars *vars)
{
/* In the Simulator, we just provide _simple for dyld */
-#if !TARGET_IPHONE_SIMULATOR
+#if !TARGET_OS_SIMULATOR
__pfz_setup(apple);
#endif
_simple_asl_init(envp, vars);
+
+#if !VARIANT_STATIC
+ __libkernel_platform_init(&_platform_string_functions);
+#endif
}