extern "C" void jalib_init(jalib::JalibFuncPtrs jalibFuncPtrs, const char *elfInterpreter, int stderrFd, int jassertLogFd, int dmtcp_fail_rc) { jalib::jalibFuncPtrs = jalibFuncPtrs; jalib::elfInterpreter = elfInterpreter; jalib::stderrFd = stderrFd; jalib::logFd = jassertLogFd; jalib::jalib_funcptrs_initialized = 1; jalib::dmtcp_fail_rc = dmtcp_fail_rc; JASSERT_INIT(); }
void initializeJalib() { jalib::JalibFuncPtrs jalibFuncPtrs; #define INIT_JALIB_FPTR(name) jalibFuncPtrs.name = name; jalibFuncPtrs.dmtcp_get_tmpdir = dmtcp_get_tmpdir; jalibFuncPtrs.dmtcp_get_uniquepid_str = dmtcp_get_uniquepid_str; jalibFuncPtrs.writeAll = dmtcp::Util::writeAll; jalibFuncPtrs.readAll = dmtcp::Util::readAll; INIT_JALIB_FPTR(open); INIT_JALIB_FPTR(fopen); INIT_JALIB_FPTR(close); INIT_JALIB_FPTR(fclose); INIT_JALIB_FPTR(dup); INIT_JALIB_FPTR(dup2); INIT_JALIB_FPTR(readlink); INIT_JALIB_FPTR(syscall); INIT_JALIB_FPTR(mmap); INIT_JALIB_FPTR(munmap); INIT_JALIB_FPTR(read); INIT_JALIB_FPTR(write); INIT_JALIB_FPTR(select); INIT_JALIB_FPTR(socket); INIT_JALIB_FPTR(connect); INIT_JALIB_FPTR(bind); INIT_JALIB_FPTR(listen); INIT_JALIB_FPTR(accept); INIT_JALIB_FPTR(setsockopt); INIT_JALIB_FPTR(pthread_mutex_lock); INIT_JALIB_FPTR(pthread_mutex_trylock); INIT_JALIB_FPTR(pthread_mutex_unlock); jalib_init(jalibFuncPtrs, STDERR_FILENO, -1, 99); JASSERT_INIT(""); }