Discuss the development of new homebrew software, tools and libraries.
Moderators: cheriff , TyRaNiD
skillz4fun
Posts: 2 Joined: Thu Oct 04, 2007 2:36 am
Post
by skillz4fun » Thu Oct 04, 2007 2:44 am
If i call sceKernelLoadExec() in a kernel mode prx on 3.52 M33 it fails with 8002013A (Library not linked yet).
The Makefile for the prx looks like that:
Code: Select all
TARGET = helper
OBJS = main.o
PSP_FW_VERSION = 352
BUILD_PRX = 1
PRX_EXPORTS = exports.exp
USE_KERNEL_LIBC = 1
USE_KERNEL_LIBS = 1
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LDFLAGS = -mno-crt0 -nostartfiles
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
Which library must be linked additional to it?
J.F.
Posts: 2906 Joined: Sun Feb 22, 2004 11:41 am
Post
by J.F. » Thu Oct 04, 2007 6:19 am
You don't give nearly enough info to answer the question. What lib are you trying to load? Why are you even trying to load it? Why are you using that method of loading?
skillz4fun
Posts: 2 Joined: Thu Oct 04, 2007 2:36 am
Post
by skillz4fun » Thu Oct 04, 2007 6:30 am
Ok.
It's a kernel prx module loaded by an user mode running application.
I need a kernel mode modul to start another EBOOT.PBP from memory stick.
my test code is:
Code: Select all
#include <pspkernel.h>
#include <psploadexec.h>
PSP_MODULE_INFO("name", 0x1006, 1, 1);
PSP_MAIN_THREAD_ATTR(0);
/*
Function called by Main-Application to run another EBOOT.PBP
"i" is a test return value.
*/
int retval(int * i)
{
const char * tmp = "ms0:/PSP/GAME/OTHER/EBOOT.PBP";
struct SceKernelLoadExecParam EBOOTPBP;
EBOOTPBP.args = strlen(tmp)+1;
EBOOTPBP.argp = tmp;
EBOOTPBP.key = NULL;
EBOOTPBP.size = sizeof(EBOOTPBP)+strlen(tmp)+1;
// "i" contains 0x8002013A after the following call:
*i = sceKernelLoadExec(tmp,&EBOOTPBP);
return 0;
}
int module_start(SceSize args, void *argp)
{
return 0;
}
int module_stop(SceSize args, void *argp)
{
return 0;
}