static int ethLoadModules(void) { LOG("ETHSUPPORT LoadModules\n"); if(!ethModulesLoaded) { ethModulesLoaded = 1; sysInitDev9(); if (sysLoadModuleBuffer(&netman_irx, size_netman_irx, 0, NULL) >= 0) { NetManInit(); sysLoadModuleBuffer(&smsutils_irx, size_smsutils_irx, 0, NULL); if (sysLoadModuleBuffer(&smap_irx, size_smap_irx, 0, NULL) >= 0) { //Before the network stack is loaded, attempt to set the link settings in order to avoid needing double-initialization of the IF. //But do not fail here because there is currently no way to re-start initialization. ethApplyNetIFConfig(); if (sysLoadModuleBuffer(&ps2ip_irx, size_ps2ip_irx, 0, NULL) >= 0) { sysLoadModuleBuffer(&ps2ips_irx, size_ps2ips_irx, 0, NULL); sysLoadModuleBuffer(&httpclient_irx, size_httpclient_irx, 0, NULL); ps2ip_init(); HttpInit(); LOG("ETHSUPPORT Modules loaded\n"); return 0; } } } gNetworkStartup = ERROR_ETH_MODULE_NETIF_FAILURE; return -1; } return 0; }
static void smbLoadModules(void) { int ret; LOG("SMBSUPPORT LoadModules\n"); WaitSema(ethInitSemaID); ret = ethLoadModules(); SignalSema(ethInitSemaID); if(ret == 0) { gNetworkStartup = ERROR_ETH_MODULE_SMBMAN_FAILURE; if (sysLoadModuleBuffer(&smbman_irx, size_smbman_irx, 0, NULL) >= 0) { sysLoadModuleBuffer(&nbns_irx, size_nbns_irx, 0, NULL); nbnsInit(); LOG("SMBSUPPORT Modules loaded\n"); ethInitSMB(); return; } } ethDisplayErrorStatus(); }
static void ethLoadModules(void) { int ret, ipconfiglen; char ipconfig[IPCONFIG_MAX_LEN] __attribute__((aligned(64))); LOG("ethLoadModules()\n"); ipconfiglen = sysSetIPConfig(ipconfig); gNetworkStartup = 5; ret = sysLoadModuleBuffer(&ps2dev9_irx, size_ps2dev9_irx, 0, NULL); if (ret < 0) { gNetworkStartup = -1; return; } gNetworkStartup = 4; ret = sysLoadModuleBuffer(&smsutils_irx, size_smsutils_irx, 0, NULL); if (ret < 0) { gNetworkStartup = -1; return; } gNetworkStartup = 3; ret = sysLoadModuleBuffer(&smstcpip_irx, size_smstcpip_irx, 0, NULL); if (ret < 0) { gNetworkStartup = -1; return; } gNetworkStartup = 2; ret = sysLoadModuleBuffer(&smsmap_irx, size_smsmap_irx, ipconfiglen, ipconfig); if (ret < 0) { gNetworkStartup = -1; return; } gNetworkStartup = 1; ret = sysLoadModuleBuffer(&smbman_irx, size_smbman_irx, 0, NULL); if (ret < 0) { gNetworkStartup = -1; return; } gNetworkStartup = 0; // ok, all loaded LOG("ethLoadModules: modules loaded\n"); // connect ethSMBConnect(); // update Themes char path[255]; sprintf(path, "%sTHM", ethPrefix); thmAddElements(path, "\\", ethGameList.mode); #ifdef VMC sprintf(path, "%sVMC", ethPrefix); checkCreateDir(path); #endif }