void initialize_hal(void) { HANDLE handle; if (!load_functions()) return; if (!(handle = CreateThread( NULL, 0, hal_thread, NULL, 0, NULL ))) return; CloseHandle( handle ); }
void load_erasurecode_lib(char* err, size_t err_len) { const char* errMsg; const char* library = NULL; #ifdef UNIX Dl_info dl_info; #else LPTSTR filename = NULL; #endif err[0] = '\0'; if (isaLoader != NULL) { return; } isaLoader = calloc(1, sizeof(IsaLibLoader)); memset(isaLoader, 0, sizeof(IsaLibLoader)); // Load Intel ISA-L #ifdef UNIX isaLoader->libec = dlopen(HADOOP_ISAL_LIBRARY, RTLD_LAZY | RTLD_GLOBAL); if (isaLoader->libec == NULL) { snprintf(err, err_len, "Failed to load %s (%s)", HADOOP_ISAL_LIBRARY, dlerror()); return; } // Clear any existing error dlerror(); #endif #ifdef WINDOWS isaLoader->libec = LoadLibrary(HADOOP_ISAL_LIBRARY); if (isaLoader->libec == NULL) { snprintf(err, err_len, "Failed to load %s", HADOOP_ISAL_LIBRARY); return; } #endif errMsg = load_functions(isaLoader->libec); if (errMsg != NULL) { snprintf(err, err_len, "Loading functions from ISA-L failed: %s", errMsg); } #ifdef UNIX if(dladdr(isaLoader->ec_encode_data, &dl_info)) { library = dl_info.dli_fname; } #else if (GetModuleFileName(isaLoader->libec, filename, 256) > 0) { library = filename; } #endif if (library == NULL) { library = HADOOP_ISAL_LIBRARY; } isaLoader->libname = strdup(library); }
HPExport void server_preinit(void) { if (SERVER_TYPE == SERVER_TYPE_LOGIN) { addHookPre(lclif, parse, lclif_parse_pre); } else if (SERVER_TYPE == SERVER_TYPE_CHAR) { addHookPre(chr, parse_char, char_parse_char_pre); } else if (SERVER_TYPE == SERVER_TYPE_MAP) { addHookPre(clif, parse, clif_parse_pre); load_functions(); } }
/* * Dll Main function */ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { TRACE("%p,%x,%p\n", hinstDLL, fdwReason, lpvReserved); switch (fdwReason) { case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hinstDLL); /* Try to load low-level library */ if (load_functions() != 0) return FALSE; /* error */ break; case DLL_PROCESS_DETACH: if (lpvReserved) break; if (ctapi_handle) wine_dlclose(ctapi_handle, NULL, 0); break; } return TRUE; }
int main(int argc, char * argv[]) { int retCode = 0; int versionGbm = 0; /* On OS/2 the user can provide a fully qualified * name of the GBM.DLL which is checked alternatively * to the automatic lookup. */ char filename_gbm [GBMVER_FILENAME_MAX+1]; char filename_gbmdlg [GBMVER_FILENAME_MAX+1]; char filename_gbmrx [GBMVER_FILENAME_MAX+1]; char filename_gbmdlgrx[GBMVER_FILENAME_MAX+1]; char foundModuleNameGbm [GBMVER_FILENAME_MAX+1] = ""; char foundModuleNameGbmdlg [GBMVER_FILENAME_MAX+1] = ""; char foundModuleNameGbmrx [GBMVER_FILENAME_MAX+1] = ""; char foundModuleNameGbmdlgrx[GBMVER_FILENAME_MAX+1] = ""; HMODULE hModuleGbm = NULLHANDLE; HMODULE hModuleGbmdlg = NULLHANDLE; HMODULE hModuleGbmrx = NULLHANDLE; HMODULE hModuleGbmdlgrx = NULLHANDLE; if (argc == 2) { /* check if the user specified a trailing \ */ if (strlen(argv[1]) > GBMVER_FILENAME_MAX) { printf("Provided pathname is too long.\n"); return 1; } if (argv[1][strlen(argv[1])-1] == '\\') { sprintf(filename_gbm , "%sgbm.dll" , argv[1]); sprintf(filename_gbmdlg , "%sgbmdlg.dll" , argv[1]); sprintf(filename_gbmrx , "%sgbmrx.dll" , argv[1]); sprintf(filename_gbmdlgrx, "%sgbmdlgrx.dll", argv[1]); } else { sprintf(filename_gbm , "%s\\gbm.dll" , argv[1]); sprintf(filename_gbmdlg , "%s\\gbmdlg.dll" , argv[1]); sprintf(filename_gbmrx , "%s\\gbmrx.dll" , argv[1]); sprintf(filename_gbmdlgrx, "%s\\gbmdlgrx.dll", argv[1]); } } else { strcpy(filename_gbm , "gbm"); strcpy(filename_gbmdlg , "gbmdlg"); strcpy(filename_gbmrx , "gbmrx"); strcpy(filename_gbmdlgrx, "gbmdlgrx"); } printf("===============================================\n"); printf("Checking for \"%s\"...\n", filename_gbm); /* load GBM.DLL */ hModuleGbm = load_functions(filename_gbm, GBM_FUNCTION_TABLE, GBM_FUNCTION_TABLE_LENGTH, foundModuleNameGbm, GBMVER_FILENAME_MAX); if (hModuleGbm == NULLHANDLE) { printf("Not found or unresolved dependencies.\n\n"); return 1; } /* get version from GBM.DLL */ if (GBM_FUNCTION_TABLE[GBM_VERSION_ID].functionAddress == NULL) { printf("Is not valid.\n"); unload_functions(hModuleGbm, GBM_FUNCTION_TABLE, GBM_FUNCTION_TABLE_LENGTH); hModuleGbm = NULLHANDLE; return 1; } versionGbm = GBM_FUNCTION_TABLE[GBM_VERSION_ID].functionAddress(); printf("-> Found version %.2f\n", GET_GBM_VERSION(versionGbm)); /* show GBM.DLL info */ if (! show_info(GBM_FUNCTION_TABLE, GBM_FUNCTION_TABLE_LENGTH, foundModuleNameGbm, versionGbm)) { retCode = 1; unload_functions(hModuleGbm, GBM_FUNCTION_TABLE, GBM_FUNCTION_TABLE_LENGTH); hModuleGbm = NULLHANDLE; } else { printf("This GBM.DLL can be used with all applications\n" \ "developed for GBM.DLL version >=%.2f.\n\n", GET_GBM_VERSION(GBM_MIN_VERSION)); } printf("===============================================\n"); printf("Checking for \"%s\"...\n", filename_gbmdlg); /* load GBMDLG.DLL */ hModuleGbmdlg = load_functions(filename_gbmdlg, GBMDLG_FUNCTION_TABLE, GBMDLG_FUNCTION_TABLE_LENGTH, foundModuleNameGbmdlg, GBMVER_FILENAME_MAX); if (hModuleGbmdlg == NULLHANDLE) { printf("Not found or unresolved dependencies.\n"); unload_functions(hModuleGbm, GBM_FUNCTION_TABLE, GBM_FUNCTION_TABLE_LENGTH); hModuleGbm = NULLHANDLE; return 1; } /* show GBMDLG.DLL info */ if (! show_info(GBMDLG_FUNCTION_TABLE, GBMDLG_FUNCTION_TABLE_LENGTH, foundModuleNameGbmdlg, 0 /* no version info */)) { retCode = 1; unload_functions(hModuleGbmdlg, GBMDLG_FUNCTION_TABLE, GBMDLG_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbm , GBM_FUNCTION_TABLE , GBM_FUNCTION_TABLE_LENGTH); hModuleGbmdlg = NULLHANDLE; hModuleGbm = NULLHANDLE; } printf("===============================================\n"); printf("Checking for \"%s\"...\n", filename_gbmrx); /* load GBMRX.DLL */ hModuleGbmrx = load_functions(filename_gbmrx, GBMRX_FUNCTION_TABLE, GBMRX_FUNCTION_TABLE_LENGTH, foundModuleNameGbmrx, GBMVER_FILENAME_MAX); if (hModuleGbmrx == NULLHANDLE) { printf("Not found or unresolved dependencies.\n"); unload_functions(hModuleGbmrx , GBMRX_FUNCTION_TABLE , GBMRX_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbmdlg, GBMDLG_FUNCTION_TABLE, GBMDLG_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbm , GBM_FUNCTION_TABLE , GBM_FUNCTION_TABLE_LENGTH); hModuleGbmrx = NULLHANDLE; hModuleGbmdlg = NULLHANDLE; hModuleGbm = NULLHANDLE; return 1; } /* show GBMRX.DLL info */ if (! show_info(GBMRX_FUNCTION_TABLE, GBMRX_FUNCTION_TABLE_LENGTH, foundModuleNameGbmrx, 101 /* no public version info */)) { retCode = 1; unload_functions(hModuleGbmrx , GBMRX_FUNCTION_TABLE , GBMRX_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbmdlg, GBMDLG_FUNCTION_TABLE, GBMDLG_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbm , GBM_FUNCTION_TABLE , GBM_FUNCTION_TABLE_LENGTH); hModuleGbmrx = NULLHANDLE; hModuleGbmdlg = NULLHANDLE; hModuleGbm = NULLHANDLE; } printf("===============================================\n"); printf("Checking for \"%s\"...\n", filename_gbmdlgrx); /* load GBMDLGRX.DLL */ hModuleGbmdlgrx = load_functions(filename_gbmdlgrx, GBMDLGRX_FUNCTION_TABLE, GBMDLGRX_FUNCTION_TABLE_LENGTH, foundModuleNameGbmdlgrx, GBMVER_FILENAME_MAX); if (hModuleGbmdlgrx == NULLHANDLE) { printf("Not found or unresolved dependencies.\n"); unload_functions(hModuleGbmdlgrx, GBMDLGRX_FUNCTION_TABLE, GBMDLGRX_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbmrx , GBMRX_FUNCTION_TABLE , GBMRX_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbmdlg , GBMDLG_FUNCTION_TABLE, GBMDLG_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbm , GBM_FUNCTION_TABLE , GBM_FUNCTION_TABLE_LENGTH); hModuleGbmdlgrx = NULLHANDLE; hModuleGbmrx = NULLHANDLE; hModuleGbmdlg = NULLHANDLE; hModuleGbm = NULLHANDLE; return 1; } /* show GBMDLGRX.DLL info */ if (! show_info(GBMDLGRX_FUNCTION_TABLE, GBMDLGRX_FUNCTION_TABLE_LENGTH, foundModuleNameGbmdlgrx, 101 /* no public version info */)) { retCode = 1; } unload_functions(hModuleGbmdlgrx, GBMDLGRX_FUNCTION_TABLE, GBMDLGRX_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbmrx , GBMRX_FUNCTION_TABLE , GBMRX_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbmdlg , GBMDLG_FUNCTION_TABLE, GBMDLG_FUNCTION_TABLE_LENGTH); unload_functions(hModuleGbm , GBM_FUNCTION_TABLE , GBM_FUNCTION_TABLE_LENGTH); hModuleGbmdlgrx = NULLHANDLE; hModuleGbmrx = NULLHANDLE; hModuleGbmdlg = NULLHANDLE; hModuleGbm = NULLHANDLE; return retCode; }