]> git.saurik.com Git - apple/libplatform.git/blob - src/init.c
libplatform-254.40.4.tar.gz
[apple/libplatform.git] / src / init.c
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
24 #include <TargetConditionals.h>
25 #include <stdlib.h>
26 #include <platform/string.h>
27 #include <_libkernel_init.h>
28
29 struct ProgramVars; /* forward reference */
30
31 extern void _simple_asl_init(const char *envp[], const struct ProgramVars *vars);
32 extern void __pfz_setup(const char *apple[]);
33
34 #if !VARIANT_STATIC
35 static 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
56 void
57 __libplatform_init(void *future_use __unused, const char *envp[],
58 const char *apple[], const struct ProgramVars *vars)
59 {
60 /* In the Simulator, we just provide _simple for dyld */
61 #if !TARGET_OS_SIMULATOR
62 __pfz_setup(apple);
63 #endif
64 #if !TARGET_OS_DRIVERKIT
65 _simple_asl_init(envp, vars);
66 #endif
67
68 #if !VARIANT_STATIC
69 __libkernel_platform_init(&_platform_string_functions);
70 #endif
71 }