Exemple #1
0
xjse_result_t	xjse_xpnet_init(XPNETCTX** ppxpnctx, const xjse_int_t napa)
{
	XPNETCTX*	pctx1 = (XPNETCTX*)xjse_malloc(0, sizeof(XPNETCTX));
	memset(pctx1, 0, sizeof(XPNETCTX));

	memset(&(pctx1->xpnetreqq), 0,
		sizeof(XPNETREQQITEM) * XPNETC_NMAXREQQITEMS);
	//
	pctx1->nap = napa;	// default ap

#ifdef	XTPF_PSP
	sceUtilityLoadNetModule(1);
	sceUtilityLoadNetModule(3);
#endif

	xjse_result_t	xr1 = xjse_xpnet_startthread(pctx1);
	if(!XJSE_IS_SUCCESS(xr1))
		goto	failed;

	*ppxpnctx = pctx1;

	XJSE_TRACE("(X) xjse_xpnet_init successfully done!");
	return	XJSE_SUCCESS;

failed:
	XJSE_TRACE("(E) xjse_xpnet_init failed!");
	XJSE_SAFENNP(pctx1, free);
	return	XJSE_E_UNKNOWN;
}
Exemple #2
0
int JNetwork::connect(const string& serverIP) {
#ifdef NETWORK_SUPPORT
    int err;
    char buffer[4096];
    if(netthread) return 0;


    sceUtilityLoadNetModule(1);
    sceUtilityLoadNetModule(3);

    if((err = pspSdkInetInit())) {
        sprintf(buffer, "JGE Error, could not initialise the network %08X", err);
        printf(buffer);
        printf("\n");
        error = buffer;
        return err;
    }

    if(JNetwork::connect_to_apctl(1)) {
        JNetwork::serverIP = serverIP;
        /* Create a user thread to do the real work */
        netthread = sceKernelCreateThread("net_thread", net_thread, 0x18, 0x10000, PSP_THREAD_ATTR_USER, NULL);

        if(netthread < 0)
        {
            printf("Error, could not create thread\n");
            sceKernelSleepThread();
        }

        sceKernelStartThread(netthread, 0, NULL);
        return netthread;
    }
#endif
    return 0;
}
int AdhocInit(int type)
{		
	int result;
	
	result = sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON);
	
	if(result < 0)
	{
		printf("Adhoc error: sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON): 0x%08X", result);
		return result;
	}
	
	result = sceUtilityLoadNetModule(PSP_NET_MODULE_ADHOC);
	
	if(result < 0)
	{
		printf("Adhoc error: sceUtilityLoadNetModule(PSP_NET_MODULE_ADHOC); 0x%08X", result);
		return result;
	}
	
	result = sceNetInit(128*1024, 42, 4*1024, 42, 4*1024);
	
	if(result < 0)
	{
		printf("Adhoc error: sceNetInit(); 0x%08X", result);
		return result;
	}
	
	result = sceNetAdhocInit();
	
	if(result < 0)
		printf("Adhoc error: sceNetAdhocInit(): 0x%08X", result);
	
	struct productStruct gameProduct;
	
	gameProduct.unknown = type;
	
	if(type == _ADHOC_TYPE_GAMESHARING)
		memcpy(gameProduct.product, "000000001", 9);
	else
		memcpy(gameProduct.product, "ULUS99999", 9);
	
	result = sceNetAdhocctlInit(32*1024, 0x20, &gameProduct);
	
	if(result < 0)
		printf("Adhoc error: sceNetAdhocctlInit(): 0x%08X", result);
	
	// Register pspnet_adhocctl event handler
	result = sceNetAdhocctlAddHandler(AdhocctlHandler, NULL);
	
	if(result < 0)
	{
		printf("Adhoc error: sceNetAdhocctlAddHandler\n");
		return 0;
	}
	
	return 1;
}
Exemple #4
0
/* Must be called from KERNEL thread */
int pspAdhocLoadDrivers()
{
  _net_adhoc_matching_start = 0;
  _net_adhoc_matching_create = 0;
  _net_adhoc_matching_init = 0;
  _net_adhoc_pdp_create = 0;
  _net_adhoc_ctl_connect = 0;
  _net_adhoc_ctl_init = 0;
  _net_adhoc_init = 0;
  _net_init = 0;

#if (_PSP_FW_VERSION < 200)
	int modID;

	modID = pspSdkLoadStartModule("flash0:/kd/ifhandle.prx", 
                                PSP_MEMORY_PARTITION_KERNEL);
	if (modID < 0) return modID;

	modID = pspSdkLoadStartModule("flash0:/kd/memab.prx", 
                                PSP_MEMORY_PARTITION_KERNEL);
	if (modID < 0) return modID;

	modID = pspSdkLoadStartModule("flash0:/kd/pspnet_adhoc_auth.prx", 
                                PSP_MEMORY_PARTITION_KERNEL);
	if (modID < 0) return modID;

	modID = pspSdkLoadStartModule("flash0:/kd/pspnet.prx", 
                                PSP_MEMORY_PARTITION_USER);
	if (modID < 0) return modID;
	else pspSdkFixupImports(modID);

	modID = pspSdkLoadStartModule("flash0:/kd/pspnet_adhoc.prx", 
                                PSP_MEMORY_PARTITION_USER);
	if (modID < 0) return modID;
	else pspSdkFixupImports(modID);

	modID = pspSdkLoadStartModule("flash0:/kd/pspnet_adhocctl.prx", 
                                PSP_MEMORY_PARTITION_USER);
	if (modID < 0) return modID;
	else pspSdkFixupImports(modID);

	modID = pspSdkLoadStartModule("flash0:/kd/pspnet_adhoc_matching.prx", 
                                PSP_MEMORY_PARTITION_USER);
	if (modID < 0) return modID;
	else pspSdkFixupImports(modID);

	sceKernelDcacheWritebackAll();
	sceKernelIcacheInvalidateAll();
#else
  sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON);
  sceUtilityLoadNetModule(PSP_NET_MODULE_ADHOC);
#endif

  return 1;
}
int CSocket::socketSystemInit()
{
//	errorOut("debuglog.txt", ":: Initializing socket system...");
#if defined(_WIN32) || defined(_WIN64)
	WORD wVersionRequested;
	WSADATA wsaData;
	int err;

	wVersionRequested = MAKEWORD(2, 2);

	err = WSAStartup(wVersionRequested, &wsaData);
	if (err != 0)
	{
		SLOG("Failed to initialize winsocks!\n");
		return 1;
	}

	if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
	{
		SLOG("Failed to initialize winsocks!  Wasn't version 2.2!\n");
		WSACleanup();
		return 1;
	}
#elif defined(PSPSDK)
	if (sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON) < 0)
		return -1;
	if (sceUtilityLoadNetModule(PSP_NET_MODULE_INET) < 0)
		return -1;
	if (pspSdkInetInit() != 0)
		return -2; // false
	if (sceNetApctlConnect(1) != 0)
		return -3;

	while (true)
	{
		int state = 0;
		if (sceNetApctlGetState(&state) != 0)
			return -3;
		if (state == 4)
			break;

		sceKernelDelayThread(1000 * 50); // 50ms
	}
#endif

	CSocket::was_initiated = 1;
	return 0;
}
Exemple #6
0
int loadNetCommon()
{
	if (isImported(sceUtilityLoadNetModule))
		return sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON);
	else if (isImported(sceUtilityLoadModule))
		return sceUtilityLoadModule(PSP_MODULE_NET_COMMON);
	else
		return SCE_KERNEL_ERROR_ERROR;
}
Exemple #7
0
// call from KERNEL thread
int adhocLoadDrivers(SceModuleInfo* modInfoPtr)
{
#ifdef FW3X
	sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON);         // AHMAN
	sceUtilityLoadNetModule(PSP_NET_MODULE_ADHOC);          // AHMAN
#else
	// libraries load where they want, patch workaround needed
	LoadAndStartAndPatch(modInfoPtr, "flash0:/kd/ifhandle.prx"); // kernel
	LoadAndStartAndPatch(modInfoPtr, "flash0:/kd/memab.prx");
	LoadAndStartAndPatch(modInfoPtr, "flash0:/kd/pspnet_adhoc_auth.prx");
	LoadAndStartAndPatch(modInfoPtr, "flash0:/kd/pspnet.prx");	
	LoadAndStartAndPatch(modInfoPtr, "flash0:/kd/pspnet_adhoc.prx");
	LoadAndStartAndPatch(modInfoPtr, "flash0:/kd/pspnet_adhocctl.prx");
	LoadAndStartAndPatch(modInfoPtr, "flash0:/kd/pspnet_adhoc_matching.prx");	
	FlushCaches();
#endif
	
	return 0;
}
Exemple #8
0
int adhocLoadModules(void)
{
#ifdef KERNEL_MODE
	return adhoc_modules_loaded;
#else
	if (devkit_version >= 0x02000010)
	{
		int error;

		if ((error = sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON)) < 0)
			return error;

		if ((error = sceUtilityLoadNetModule(PSP_NET_MODULE_ADHOC)) < 0)
			return error;

		return 0;
	}
	return -1;
#endif
}
Exemple #9
0
static int load_util(int module)
{
#ifdef UTILITY_AV_AVCODEC_PATH
	SceUID ret;
#endif

	dbg_printf("Loading 0x%08X\n", module);

	if (isImported(sceUtilityLoadModule))
		return sceUtilityLoadModule(module);

	else if (module <= PSP_MODULE_NET_SSL && isImported(sceUtilityLoadNetModule))
		return sceUtilityLoadNetModule(module + PSP_NET_MODULE_COMMON - PSP_MODULE_NET_COMMON);

	else if (module == PSP_MODULE_USB_PSPCM && isImported(sceUtilityLoadUsbModule))
		return sceUtilityLoadUsbModule(PSP_USB_MODULE_PSPCM);

	else if (module <= PSP_MODULE_USB_GPS && isImported(sceUtilityLoadUsbModule))
		return sceUtilityLoadUsbModule(module + PSP_USB_MODULE_MIC - PSP_MODULE_USB_MIC);

	else if (module <= PSP_MODULE_AV_G729 && isImported(sceUtilityLoadAvModule))
		return sceUtilityLoadAvModule(module + PSP_MODULE_AV_AVCODEC - PSP_AV_MODULE_AVCODEC);

	else
#ifdef UTILITY_AV_AVCODEC_PATH
	if (module == PSP_MODULE_AV_AVCODEC) {
		ret = sceKernelLoadModule(UTILITY_AV_AVCODEC_PATH, 0, NULL);
		return ret < 0 ? ret : sceKernelStartModule(ret, 0, NULL, NULL, NULL);
	} else
#endif
#ifdef UTILITY_AV_SASCORE_PATH
	if (module == PSP_MODULE_AV_SASCORE) {
		ret = sceKernelLoadModule(UTILITY_AV_SASCORE_PATH, 0, NULL);
		return ret < 0 ? ret : sceKernelStartModule(ret, 0, NULL, NULL, NULL);
	} else
#endif
#ifdef UTILITY_AV_ATRAC3PLUS_PATH
	if (module == PSP_MODULE_AV_ATRAC3PLUS) {
		ret = sceKernelLoadModule(UTILITY_AV_ATRAC3PLUS_PATH, 0, NULL);
		return ret < 0 ? ret : sceKernelStartModule(ret, 0, NULL, NULL, NULL);
	} else
#endif
#ifdef UTILITY_AV_MPEGBASE_PATH
	if (module == PSP_MODULE_AV_MPEGBASE) {
		ret = sceKernelLoadModule(UTILITY_AV_MPEGBASE_PATH, 0, NULL);
		return ret < 0 ? ret : sceKernelStartModule(ret, 0, NULL, NULL, NULL);
	} else
#endif
		return SCE_KERNEL_ERROR_ERROR;
}
Exemple #10
0
void loadNetModules()
{
	sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON);
	sceUtilityLoadNetModule(PSP_NET_MODULE_INET);
	sceUtilityLoadNetModule(PSP_NET_MODULE_PARSEURI);
	sceUtilityLoadNetModule(PSP_NET_MODULE_PARSEHTTP);
	sceUtilityLoadNetModule(PSP_NET_MODULE_HTTP);
	sceUtilityLoadNetModule(PSP_NET_MODULE_SSL);
}
Exemple #11
0
//Init Network Prompt
static int lua_NetPromptInit(lua_State *L)
{
	int argc = lua_gettop(L);
	if (argc > 0) 
	{
		return luaL_error(L, "System.Quit() takes no arguments");
	}
	
	static int doOnce = 1;
    if (doOnce)
    {
    	sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON);

		sceUtilityLoadNetModule(PSP_NET_MODULE_INET);
	
		netInit();
		
		netDialog();
		netTerm();
		doOnce = 0;
	}	
	
	return 0;
}
Exemple #12
0
void JSocket::init(){
#ifdef NETWORK_SUPPORT
	sceUtilityLoadNetModule(1);
	sceUtilityLoadNetModule(3);
#endif
}
Exemple #13
0
void load_utils()
{
	int ret;
	int module;
	unsigned i;

	if (isImported(sceUtilityLoadModule)) {
		// Load modules in order
		if (!globals->isEmu || sceNetIsImported)
			for(i = 0; i < sizeof(netModules) / sizeof(int); i++) {
				ret = sceUtilityLoadModule(netModules[i]);
				if (ret < 0)
					dbg_printf("%s: Loading 0x%08X failed 0x%08X\n",
						__func__, netModules[i], ret);
			}

		for(i = 0; i < sizeof(modules) / sizeof(int); i++) {
			ret = sceUtilityLoadModule(modules[i]);
			if (ret < 0)
				dbg_printf("%s: Loading 0x%08X failed 0x%08X\n",
					__func__, modules[i], ret);
		}

		ret = sceUtilityLoadModule(PSP_MODULE_AV_MP3);
		if (ret < 0)
			dbg_printf("%s: Loading 0x%08X failed 0x%08X\n",
				__func__, PSP_MODULE_AV_MP3, ret);
	} else {
		if (isImported(sceUtilityLoadNetModule))
			for (module = 1; module <= 7; module++) {
				ret = sceUtilityLoadNetModule(module);
				if (ret < 0)
					dbg_printf("%s: Loading net module %d failed 0x%08X\n",
						__func__, module, ret);
			}

		if (isImported(sceUtilityLoadUsbModule))
			for (module = 1; module <= 5; module++) {
				ret = sceUtilityLoadUsbModule(module);
				if (ret < 0)
					dbg_printf("%s: Loading USB module %d failed 0x%08X\n",
						__func__, module, ret);
			}

		if (isImported(sceUtilityLoadAvModule))
			for (module = 1; module <= 7; module++) {
				ret = sceUtilityLoadAvModule(module);
				dbg_printf("%s: Loading AV module %d failed 0x%08X\n",
					__func__, module, ret);
			}
		else {
#ifdef UTILITY_AV_AVCODEC_PATH
			avcodec_modid = sceKernelLoadModule(UTILITY_AV_AVCODEC_PATH, 0, NULL);
			sceKernelStartModule(avcodec_modid, 0, NULL, NULL, NULL);
#endif
#ifdef UTILITY_AV_SASCORE_PATH
			sascore_modid = sceKernelLoadModule(UTILITY_AV_SASCORE_PATH, 0, NULL);
			sceKernelStartModule(sascore_modid, 0, NULL, NULL, NULL);
#endif
#ifdef UTILITY_AV_ATRAC3PLUS_PATH
			atrac3plus_modid = sceKernelLoadModule(UTILITY_AV_ATRAC3PLUS_PATH, 0, NULL);
			sceKernelStartModule(atrac3plus_modid, 0, NULL, NULL, NULL);
#endif
#ifdef UTILITY_AV_MPEGBASE_PATH
			mpegbase_modid = sceKernelLoadModule(UTILITY_AV_MPEGBASE_PATH, 0, NULL);
			sceKernelStartModule(mpegbase_modid, 0, NULL, NULL, NULL);
#endif
		}
	}
}
Exemple #14
0
// Loads and registers exports from an utility module
SceLibraryEntryTable *load_export_util(UtilModInfo *util_mod, const char *lib)
{
	SceLibraryEntryTable *exports;
	int *p;
	int ret, nid;

	if (util_mod == NULL || lib == NULL)
		return NULL;

	dbg_printf("Loading utility module for library %s\n", lib);

		//force load PSP_MODULE_AV_AVCODEC if we request a specific audio module
	if (util_mod->id > PSP_MODULE_AV_AVCODEC && util_mod->id <= PSP_MODULE_AV_G729) {
		dbg_printf("Force-Loading AVCODEC\n");
		if (isImported(sceUtilityLoadModule))
			sceUtilityLoadModule(PSP_MODULE_AV_AVCODEC);
		else if (isImported(sceUtilityLoadAvModule))
			sceUtilityLoadAvModule(PSP_AV_MODULE_AVCODEC);
	} else if(util_mod->id == PSP_MODULE_NET_HTTP) {
		dbg_printf("Force-Loading HTTP\n");
		if (isImported(sceUtilityLoadModule)) {
			sceUtilityLoadModule(PSP_MODULE_NET_COMMON);
			sceUtilityLoadModule(PSP_MODULE_NET_INET);
			sceUtilityLoadModule(PSP_MODULE_NET_PARSEURI);
			sceUtilityLoadModule(PSP_MODULE_NET_PARSEHTTP);
		} else if (isImported(sceUtilityLoadNetModule)) {
			sceUtilityLoadNetModule(PSP_NET_MODULE_COMMON);
			sceUtilityLoadNetModule(PSP_NET_MODULE_INET);
			sceUtilityLoadNetModule(PSP_NET_MODULE_PARSEURI);
			sceUtilityLoadNetModule(PSP_NET_MODULE_PARSEHTTP);
		}
	}

	ret = load_util(util_mod->id);
	if (ret < 0 && ret != 0x80111102)
		return NULL;

#ifndef DISABLE_UNLOAD_UTILITY_MODULES
#ifdef UTILITY_UNLOAD_MODULE_FILE
	if (!ret)
		ret = util_mod->id;
#endif
	// PSP_MODULE_AV_AVCODEC -> cast syscall of sceAudiocodec and sceVideocodec
	// PSP_MODULE_AV_MP3 -> On 6.20 OFW, libmp3 has a bug when unload it.
	if ((util_mod->id != PSP_MODULE_AV_AVCODEC || globals->isEmu)
		&& (util_mod->id != PSP_MODULE_AV_MP3
			|| globals->module_sdk_version > 0x06020010)) {
#ifdef UTILITY_UNLOAD_MODULE_FILE
		add_util_table(ret);
#else
		add_util_table(util_mod->id);
#endif
	}
#endif

	// Get module exports
	exports = find_exports(util_mod->name, lib);
	if (exports == NULL) {
		dbg_printf("->ERROR: could not find module exports for %s\n", util_mod->name);
#ifndef DISABLE_UNLOAD_UTILITY_MODULES
#ifdef UTILITY_UNLOAD_MODULE_FILE
		unload_util(ret);
		rm_util_table(ret);
#else
		unload_util(util_mod->id);
		rm_util_table(ret);
#endif
#endif
		return NULL;
	}

	dbg_printf("Number of export functions: %d\n", exports->stubcount);
	dbg_printf("Pointer to exports: 0x%08X\n", (int)exports->entrytable);

	switch (util_mod->id) {
		case PSP_MODULE_NET_INET:
			if (util_mod == &net_apctl)
				nid = 0xB3EDD0EC; // sceNetApctlTerm
			else if (util_mod == &net_resolver)
				nid = 0x6138194A; // sceNetResolverTerm
			else if (util_mod == &net_inet)
				nid = 0xA9ED66B9; // sceNetInetTerm
			else
				return exports;
			break;
		case PSP_MODULE_NET_COMMON:
			nid = 0x281928A9; // sceNetTerm
			break;
		default:
			return exports;
	}

	for (p = (int *)exports->entrytable;
		(int)p < (int)exports->entrytable + exports->stubcount;
		p++)
		if (*p == nid) {
			net_term_func[net_term_num] = (void *)p[exports->stubcount];
			net_term_num++;
			break;
		}

	return exports;
}