| /** |
| * D header file for $(LINK2 https://opensource.apple.com/source/Libc/Libc-1244.30.3/include/crt_externs.h.auto.html, libc/crt_externs.h). |
| * |
| * Copyright: Copyright (c) 2018 D Language Foundation |
| * License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0). |
| * Authors: Jacob Carlborg |
| * Source: $(DRUNTIMESRC core/sys/darwin/_crt_externs.d) |
| */ |
| module core.sys.darwin.crt_externs; |
| |
| version (CoreDoc) |
| { |
| /** |
| * In reality this will be $(REF mach_header, core, sys, darwin, mach, loader) |
| * on 32-bit platforms and $(REF mach_header_64, core, sys, darwin, mach, loader) |
| * 64-bit platforms. |
| */ |
| struct MachHeader; |
| |
| /** |
| * Returns the program arguments. |
| * |
| * These are the same arguments passed to the C main function: |
| * |
| * ___ |
| * extern (C) void main (char** argv, int argc, char** envp) {} |
| * ___ |
| * |
| * Same as the above `argv`. |
| * |
| * Return: the program arguments as a pointer to an array of null terminated C |
| * strings |
| */ |
| char*** _NSGetArgv(); |
| |
| /** |
| * Returns the number of program arguments. |
| * |
| * These are the same arguments passed to the C main function: |
| * |
| * ___ |
| * extern (C) void main (char** argv, int argc, char** envp) {} |
| * ___ |
| * |
| * Same as the above `argc`. |
| * |
| * Return: a pointer to the number of program arguments |
| */ |
| int* _NSGetArgc(); |
| |
| /** |
| * Returns the program environment variables. |
| * |
| * These are the same arguments passed as an array to the C main function: |
| * |
| * ___ |
| * extern (C) void main (char** argv, int argc, char** envp) {} |
| * ___ |
| * |
| * Same as the above `envp`. |
| * |
| * Return: the program environment variables as a pointer to an array of null |
| * terminated C strings |
| */ |
| char*** _NSGetEnviron(); |
| |
| /** |
| * Returns the full path to the current executable as a pointer to a null |
| * terminated C string. |
| */ |
| char** _NSGetProgname(); |
| |
| /// Returns the Mach-O header of the current executable. |
| MachHeader* _NSGetMachExecuteHeader(); |
| } |
| |
| else version (OSX) |
| version = Darwin; |
| else version (iOS) |
| version = Darwin; |
| else version (TVOS) |
| version = Darwin; |
| else version (WatchOS) |
| version = Darwin; |
| |
| version (Darwin): |
| extern(C): |
| nothrow: |
| @nogc: |
| |
| import core.sys.darwin.mach.loader : mach_header, mach_header_64; |
| |
| char*** _NSGetArgv(); |
| int* _NSGetArgc(); |
| char*** _NSGetEnviron(); |
| char** _NSGetProgname(); |
| |
| version (D_LP64) |
| mach_header_64* _NSGetMachExecuteHeader(); |
| else |
| mach_header* _NSGetMachExecuteHeader(); |