]> git.saurik.com Git - apple/libplatform.git/blame - src/init.c
libplatform-254.40.4.tar.gz
[apple/libplatform.git] / src / init.c
CommitLineData
ada7c492
A
1/*
2 * Copyright (c) 2013 Apple Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. Please obtain a copy of the License at
10 * http://www.opensource.apple.com/apsl/ and read it before using this
11 * file.
12 *
13 * The Original Code and all software distributed under the License are
14 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18 * Please see the License for the specific language governing rights and
19 * limitations under the License.
20 *
21 * @APPLE_LICENSE_HEADER_END@
22 */
23
ada7c492 24#include <TargetConditionals.h>
e45b4692 25#include <stdlib.h>
438624e0
A
26#include <platform/string.h>
27#include <_libkernel_init.h>
ada7c492
A
28
29struct ProgramVars; /* forward reference */
30
31extern void _simple_asl_init(const char *envp[], const struct ProgramVars *vars);
32extern void __pfz_setup(const char *apple[]);
33
438624e0
A
34#if !VARIANT_STATIC
35static const struct _libkernel_string_functions _platform_string_functions = {
36 .version = 1,
37 .bzero = _platform_bzero,
38 .memchr = _platform_memchr,
39 .memcmp = _platform_memcmp,
40 .memmove = _platform_memmove,
41 .memccpy = _platform_memccpy,
42 .memset = _platform_memset,
43 .strchr = _platform_strchr,
44 .strcmp = _platform_strcmp,
45 .strcpy = _platform_strcpy,
46 .strlcat = _platform_strlcat,
47 .strlcpy = _platform_strlcpy,
48 .strlen = _platform_strlen,
49 .strncmp = _platform_strncmp,
50 .strncpy = _platform_strncpy,
51 .strnlen = _platform_strnlen,
52 .strstr = _platform_strstr,
53};
54#endif
55
e45b4692
A
56void
57__libplatform_init(void *future_use __unused, const char *envp[],
58 const char *apple[], const struct ProgramVars *vars)
59{
ada7c492 60 /* In the Simulator, we just provide _simple for dyld */
438624e0 61#if !TARGET_OS_SIMULATOR
ada7c492
A
62 __pfz_setup(apple);
63#endif
89154bfb 64#if !TARGET_OS_DRIVERKIT
ada7c492 65 _simple_asl_init(envp, vars);
89154bfb 66#endif
438624e0
A
67
68#if !VARIANT_STATIC
69 __libkernel_platform_init(&_platform_string_functions);
70#endif
ada7c492 71}