void OSlibkernInit(void) { vm_address_t *headerArray = (vm_address_t *) getmachheaders(); KMOD_INFO_NAME.address = headerArray[0]; assert(!headerArray[1]); if (kOSReturnSuccess != OSRuntimeInitializeCPP(&KMOD_INFO_NAME, 0)) panic("OSRuntime: C++ runtime failed to initialize"); OSBoolean::initialize(); }
__private_extern__ kern_return_t _start(kmod_info_t *ki, void *data) { kern_return_t result = OSRuntimeInitializeCPP(ki, data); if ((result == KERN_SUCCESS) && _realmain) { result = (*_realmain)(ki, data); /* If _realmain failed, tear down C++. */ if (result != KERN_SUCCESS) { (void)OSRuntimeFinalizeCPP(ki, data); } } return result; }