Esempio n. 1
0
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;
}
Esempio n. 2
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();
}
Esempio n. 3
0
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
}