⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 psp开发用的所有头文件。包含所有系统API。需要psp-gcc编译器。在www.psp-dev.com上有
💻 C
字号:
/* * PSP Software Development Kit - http://www.pspdev.org * ----------------------------------------------------------------------- * Licensed under the BSD license, see LICENSE in PSPSDK root for details. * * main.c - Basic harness for loading prxes (for proving a point) * * Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org> * Copyright (c) 2005 James Forshaw <tyranid@gmail.com> * Copyright (c) 2005 John Kelley <ps2dev@kelley.ca> * * $Id: main.c 1095 2005-09-27 21:02:16Z jim $ */#include <pspkernel.h>#include <pspdebug.h>#include <pspdisplay.h>#include <pspsdk.h>#include <string.h>PSP_MODULE_INFO("PRXLOADER", 0x1000, 1, 1);/* Define the main thread's attribute value (optional) */PSP_MAIN_THREAD_ATTR(0);/* Define printf, just to make typing easier */#define printf	pspDebugScreenPrintf/* Exit callback */int exit_callback(int arg1, int arg2, void *arg){	sceKernelExitGame();	return 0;}/* Callback thread */void CallbackThread(void *arg){	int cbid;	cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);	sceKernelRegisterExitCallback(cbid);	sceKernelSleepThreadCB();}/* Sets up the callback thread and returns its thread id */int SetupCallbacks(void){	int thid = 0;	thid = sceKernelCreateThread("update_thread", (void*) CallbackThread, 0x11, 0xFA0, 0xa0000000, 0);	if(thid >= 0)	{		sceKernelStartThread(thid, 0, 0);	}	return thid;}SceUID load_module(const char *path, int flags, int type){	SceKernelLMOption option;	SceUID mpid;	/* If the type is 0, then load the module in the kernel partition, otherwise load it	   in the user partition. */	if (type == 0) {		mpid = 1;	} else {		mpid = 2;	}	memset(&option, 0, sizeof(option));	option.size = sizeof(option);	option.mpidtext = mpid;	option.mpiddata = mpid;	option.position = 0;	option.access = 1;	return sceKernelLoadModule(path, flags, type > 0 ? &option : NULL);}/* Imported function */void *getModuleInfo(void);int main(void){	SceUID modid;	SceModule *mod;	int i;	int ret;	int fd;	pspDebugScreenInit();	/* Install all our funky err thingamybobs */	pspDebugInstallKprintfHandler(NULL);	pspDebugInstallErrorHandler(NULL);	pspDebugInstallStdoutHandler(pspDebugScreenPrintData);	pspSdkInstallNoPlainModuleCheckPatch();	SetupCallbacks();	/* Start mymodule.prx and dump its information */	printf("\nStart my module\n");	modid = load_module("ms0:/mymodule.prx", 0, 0);	printf("Module ID %08X\n", modid);	mod = sceKernelFindModuleByUID(modid);	printf("mod %p\n", mod);	if(mod != NULL)	{		printf("Attr %04X, Version %x.%x\n", mod->attribute, mod->version[0], mod->version[1]);		printf("Name %s\n", mod->modname);		printf("Text %08X, Size %08X, Data Size %08X\n", mod->text_addr, mod->text_size, mod->data_size);		printf("Entry Addr %08X\n", mod->entry_addr);		printf("Stub %p %08X, Ent %p %08X\n", mod->stub_top, mod->stub_size, mod->ent_top, mod->ent_size);		for(i = 0; i < mod->nsegment; i++)		{			printf("Segment[%d] %08X %08X\n", i, mod->segmentaddr[i], mod->segmentsize[i]);		}		ret = sceKernelStartModule(modid, 0, NULL, &fd, NULL);		/* Let's test the module's exports */		printf("Module Info %p\n", getModuleInfo());	}	/* Let's bug out */	sceKernelExitDeleteThread(0);	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -