libdyldEntryVector.h [plain text]
#ifndef __DYLD_ENTRY_VECTOR_H__
#define __DYLD_ENTRY_VECTOR_H__
#include <mach-o/loader.h>
#include "Loading.h"
struct dyld_all_image_infos;
class DyldSharedCache;
namespace dyld3 {
struct LibDyldEntryVector
{
enum { kCurrentVectorVersion = 6 };
uint32_t vectorVersion; uint32_t binaryFormatVersion; void (*setVars)(const mach_header* mainMH, int argc, const char* argv[], const char* envp[], const char* apple[]);
void (*setHaltFunction)(void (*func)(const char* message) __attribute__((noreturn)) );
void (*setOldAllImageInfo)(dyld_all_image_infos*);
void (*setInitialImageList)(const closure::LaunchClosure* closure,
const DyldSharedCache* dyldCacheLoadAddress, const char* dyldCachePath,
const Array<LoadedImage>& initialImages, const LoadedImage& libSystem);
void (*runInitialzersBottomUp)(const mach_header* topImageLoadAddress);
void (*startFunc)();
void (*setChildForkFunction)(void (*func)());
void (*setLogFunction)(void (*logFunction)(const char* format, va_list list));
void (*setRestrictions)(bool allowAtPaths, bool allowEnvVars);
void (*setNotifyMonitoringDyldMain)(void (*notifyMonitoringDyldMain)());
void (*setNotifyMonitoringDyld)(void (*notifyMonitoringDyldMain)(bool unloading, unsigned imageCount,
const struct mach_header* loadAddresses[],
const char* imagePaths[]));
};
extern const LibDyldEntryVector entryVectorForDyld;
}
#endif // __DYLD_ENTRY_VECTOR_H__