Fixes in ctrl & me_wrapper to make them compile, and some other various stuff

This commit is contained in:
artart78 2012-05-03 21:37:22 +00:00
parent 595484d5cb
commit d44a19db42
67 changed files with 1896 additions and 877 deletions

View File

@ -25,7 +25,13 @@ typedef struct
int unk64;
int unk68;
int unk72;
// ...
int unk76;
int unk80;
int unk84;
int unk88;
int unk92;
int unk96;
int unk100;
void *allocMem; // 104
} SceAudiocodecCodec;

View File

@ -19,12 +19,6 @@
#ifndef CTRL_H
#define CTRL_H
#include "../common/common.h"
#include "../sysmem/sysclib.h"
#include "../systimer/systimer.h"
#include <pspsysmem_kernel.h>
#include <pspmodulemgr.h>
/** The callback function used by ::sceCtrlSetSpecialButtonCallback. */
typedef void (*SceCtrlCb)(int currBtns, int lastBtns, void *opt);
@ -196,28 +190,28 @@ enum pspCtrlPadButtonMaskMode {
*
* @return 0 on success, otherwise < 0.
*/
int sceCtrlInit();
int sceCtrlInit(void);
/**
* Terminate the controller library.
*
* @return 0.
*/
int sceCtrlEnd();
int sceCtrlEnd(void);
/**
* Suspend the controller library.
*
* @return 0.
*/
int sceCtrlSuspend();
int sceCtrlSuspend(void);
/**
* Resume the controller library after it has been suspended.
*
* @return 0.
*/
int sceCtrlResume();
int sceCtrlResume(void);
/**
* Enable/disable controller input.
@ -297,7 +291,7 @@ int sceCtrlSetIdleCancelThreshold(int idlereset, int idleback);
*
* @return The number of VBlanks.
*/
short int sceCtrlGetSuspendingExtraSamples();
short int sceCtrlGetSuspendingExtraSamples(void);
/**
* Set a number of VBlanks for which will be waited when terminating the controller library.
@ -308,6 +302,11 @@ short int sceCtrlGetSuspendingExtraSamples();
*/
int sceCtrlSetSuspendingExtraSamples(short int suspendSamples);
typedef struct _ctrlUnkStruct {
int unk1;
int (*func)(int);
} ctrlUnkStruct;
/**
* Extend the 64 internal controller buffers to represent SceCtrlDataExt structures.
* By default, an internal controller buffer is equivalent to a SceCtrlData structure. This function has to be called before using

View File

@ -1,3 +1,22 @@
/* Copyright (C) 2011, 2012 The uOFW team
See the file COPYING for copying permission.
*/
#define PSP_O_RDONLY 0x0001
#define PSP_O_WRONLY 0x0002
#define PSP_O_RDWR (PSP_O_RDONLY | PSP_O_WRONLY)
#define PSP_O_NBLOCK 0x0004
#define PSP_O_DIROPEN 0x0008 // Internal use for dopen
#define PSP_O_APPEND 0x0100
#define PSP_O_CREAT 0x0200
#define PSP_O_TRUNC 0x0400
#define PSP_O_EXCL 0x0800
#define PSP_O_NOWAIT 0x8000
#define PSP_SEEK_SET 0
#define PSP_SEEK_CUR 1
#define PSP_SEEK_END 2
struct SceIoDeviceArg;
typedef struct SceIoDeviceArg SceIoDeviceArg;
struct SceIoIob;

View File

@ -0,0 +1,3 @@
int sceKernelRegisterResumeHandler(int reg, int (*handler)(int unk, void *param), void *param);
int sceKernelRegisterSuspendHandler(int reg, int (*handler)(int unk, void *param), void *param);

View File

@ -17,6 +17,3 @@ int sceKernelIsRegisterSysEventHandler(SceSysEventHandler* handler);
int sceKernelRegisterSysEventHandler(SceSysEventHandler* handler);
SceSysEventHandler *sceKernelReferSysEventHandler(void);
int sceKernelRegisterResumeHandler(int reg, int (*handler)(int unk, void *param), void *param);
int sceKernelRegisterSuspendHandler(int reg, int (*handler)(int unk, void *param), void *param);

13
include/systimer.h Normal file
View File

@ -0,0 +1,13 @@
typedef int SceSysTimerId;
typedef int (*SceSysTimerCb)(int, int, int, int);
int sceSTimerSetPrscl(SceSysTimerId timerId, int arg1, int arg2);
int sceSTimerAlloc(void);
int sceSTimerSetHandler(SceSysTimerId timerId, int arg1, SceSysTimerCb arg2, int arg3);
int sceSTimerStartCount(SceSysTimerId timerId);
int sceSTimerGetCount(SceSysTimerId timerId, int *arg1);
int sceSTimerResetCount(SceSysTimerId timerId);
int sceSTimerSetTMCY(SceSysTimerId timerId, int arg1);
int sceSTimerStopCount(SceSysTimerId timerId);
int sceSTimerFree(SceSysTimerId timerId);

View File

@ -3,20 +3,19 @@
include ../../lib/common.mak
PSPSDK = `psp-config --pspsdk-path`
CFLAGS := -I../../include -O1 -fno-toplevel-reorder -G0 -Wall -Wextra -Werror -fno-builtin -nostdlib -I$(PSPSDK)/include
LDFLAGS := -L../../lib -specs=../../lib/prxspecs -Wl,-q,-T../../lib/linkfile.prx
PSPSDK = $(shell psp-config --pspsdk-path)
CFLAGS := -I../../include -O1 -fno-toplevel-reorder -G0 -Wall -Wextra -Werror -fno-builtin -nostdlib -I$(PSPSDK)/include
LDFLAGS := -L../../lib -specs=../../lib/prxspecs -Wl,-q,-T../../lib/linkfile.prx -L$(PSPSDK)/lib
# Setup default exports if needed
ifdef PRX_EXPORTS
EXPORT_OBJ=$(patsubst %.exp,%.o,$(PRX_EXPORTS))
else
$(error You have to define PRX_EXPORTS in your Makefile)
endif
FIXUP_IMPORTS = ../../utils/fixup-imports/psp-fixup-imports
BUILD_EXPORTS = ../../utils/build-exports/psp-build-exports
PRXGEN = psp-prxgen
PRX_EXPORTS = exports.exp
ifdef DEBUG
CFLAGS += -DDEBUG
LIBS := -ldebug $(LIBS) -lSysclibForKernel
LIBS := -ldebug -lpspdebug $(LIBS) -lSysclibForKernel -lsceDisplay -lsceGe_user -lIoFileMgrForUser
endif
MODULE_STUBS=$(foreach mod,$(MODULES), $($(mod)_STUBS))
@ -25,31 +24,30 @@ all: $(TARGET).prx
$(TARGET).elf: $(OBJS) $(EXPORT_OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) $^ $(LIBS) -o $@
../../utils/fixup-imports/psp-fixup-imports $@
$(FIXUP_IMPORTS) $@
%.o: %.c
$(CC) -c $^ -o $@ $(CFLAGS)
%.prx: %.elf
#../../utils/kprxgen/psp-kprxgen $< $@
psp-prxgen $< $@
$(PRXGEN) $< $@
$(PRX_EXPORTS:.exp=.c): $(PRX_EXPORTS)
../../utils/build-exports/psp-build-exports -b $< > $@
$(BUILD_EXPORTS) -b $< > $@
clean:
-rm -f $(TARGET).prx $(TARGET).elf $(EXPORT_OBJ) $(OBJS)
-$(RM) $(TARGET).prx $(TARGET).elf $(EXPORT_OBJ) $(OBJS)
rebuild: clean all
Makefile.exp: $(PRX_EXPORTS)
cat ../../lib/build_stubs.mak > Makefile.exp
../../utils/build-exports/psp-build-exports -k $< >> Makefile.exp
$(BUILD_EXPORTS) -k $< >> Makefile.exp
exp: Makefile.exp
make -f Makefile.exp
exp-clean:
make -f Makefile.exp clean
-rm -f Makefile.exp
-$(RM) Makefile.exp

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/libsceGe_driver.a Normal file

Binary file not shown.

BIN
lib/libsceGe_user.a Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -4,9 +4,7 @@
TARGET = audio
OBJS = audio.o
LIBS=-lsceCodec_driver -lInterruptManager -lInterruptManagerForKernel -lSysclibForKernel -lThreadManForUser -lsceSysEventForKernel -lSysMemForKernel -lDmacManForKernel -lsceDdr_driver -lsceSysreg_driver -lsceClockgen_driver -lUtilsForKernel
PRX_EXPORTS=exports.exp
LIBS = -lsceCodec_driver -lInterruptManager -lInterruptManagerForKernel -lSysclibForKernel -lThreadManForUser -lsceSysEventForKernel -lSysMemForKernel -lDmacManForKernel -lsceDdr_driver -lsceSysreg_driver -lsceClockgen_driver -lUtilsForKernel
include ../../lib/build.mak

View File

@ -3,9 +3,11 @@
*/
#include "../common/common.h"
#include "../sysmem/sysmem.h"
#include "../sysmem/sysclib.h"
#include "../codec/codec.h"
#include "codec.h"
#include "sysmem_sysclib.h"
#include "sysmem_sysevent.h"
#include "audio.h"
#include <pspsdk.h>

83
src/avcodec/exports.exp Normal file
View File

@ -0,0 +1,83 @@
# Export file automatically generated with prxtool
PSP_BEGIN_EXPORTS
PSP_EXPORT_START(syslib, 0x0000, 0x8000)
PSP_EXPORT_FUNC_HASH(module_start)
PSP_EXPORT_FUNC_HASH(module_stop)
PSP_EXPORT_VAR_HASH(module_info)
PSP_EXPORT_VAR_HASH(module_sdk_version)
PSP_EXPORT_END
PSP_EXPORT_START(sceAvcodec_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_HASH(sceAvcodecStartEntry)
PSP_EXPORT_FUNC_HASH(sceAvcodecEndEntry)
PSP_EXPORT_END
PSP_EXPORT_START(sceVideocodec, 0x0011, 0x4001)
PSP_EXPORT_FUNC_HASH(sceVideocodecInit)
PSP_EXPORT_FUNC_HASH(sceVideocodecGetFrameCrop)
PSP_EXPORT_FUNC_HASH(sceVideocodecGetVersion)
PSP_EXPORT_FUNC_HASH(sceVideocodecGetEDRAM)
PSP_EXPORT_FUNC_HASH(sceVideocodecScanHeader)
PSP_EXPORT_FUNC_HASH(sceVideocodecDelete)
PSP_EXPORT_FUNC_HASH(sceVideocodecReleaseEDRAM)
PSP_EXPORT_FUNC_HASH(sceVideocodecGetSEI)
PSP_EXPORT_FUNC_HASH(sceVideocodecSetMemory)
PSP_EXPORT_FUNC_NID(sceVideocodec_893B32B1, 0x893B32B1)
PSP_EXPORT_FUNC_HASH(sceVideocodecStop)
PSP_EXPORT_FUNC_HASH(sceVideocodecOpen)
PSP_EXPORT_FUNC_NID(sceVideocodec_D95C24D5, 0xD95C24D5)
PSP_EXPORT_FUNC_HASH(sceVideocodecDecode)
PSP_EXPORT_END
PSP_EXPORT_START(sceAudiocodec, 0x0011, 0x4001)
PSP_EXPORT_FUNC_HASH(sceAudiocodecReleaseEDRAM)
PSP_EXPORT_FUNC_HASH(sceAudiocodecGetEDRAM)
PSP_EXPORT_FUNC_NID(sceAudiocodec_3DD7EE1A, 0x3DD7EE1A)
PSP_EXPORT_FUNC_HASH(sceAudiocodecAlcExtendParameter)
PSP_EXPORT_FUNC_HASH(sceAudiocodecInit)
PSP_EXPORT_FUNC_HASH(sceAudiocodecDecode)
PSP_EXPORT_FUNC_HASH(sceAudiocodecGetInfo)
PSP_EXPORT_FUNC_HASH(sceAudiocodecCheckNeedMem)
PSP_EXPORT_END
PSP_EXPORT_START(sceMpegbase, 0x0011, 0x4001)
PSP_EXPORT_FUNC_NID(sceMpegbase_0530BE4E, 0x0530BE4E)
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscAvcRange)
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscInit)
PSP_EXPORT_FUNC_HASH(sceMpegBaseYCrCbCopy)
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscAvc)
PSP_EXPORT_FUNC_NID(sceMpegbase_AC9E717E, 0xAC9E717E)
PSP_EXPORT_FUNC_HASH(sceMpegBaseYCrCbCopyVme)
PSP_EXPORT_FUNC_HASH(sceMpegBasePESpacketCopy)
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscVme)
PSP_EXPORT_END
PSP_EXPORT_START(sceMpegbase_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_NID(sceMpegbase_driver_0530BE4E, 0x0530BE4E)
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscAvcRange)
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscInit)
PSP_EXPORT_FUNC_HASH(sceMpegBaseYCrCbCopy)
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscAvc)
PSP_EXPORT_FUNC_NID(sceMpegbase_driver_AC9E717E, 0xAC9E717E)
PSP_EXPORT_FUNC_HASH(sceMpegBaseYCrCbCopyVme)
PSP_EXPORT_FUNC_HASH(sceMpegBasePESpacketCopy)
PSP_EXPORT_FUNC_HASH(sceMpegBaseCscVme)
PSP_EXPORT_END
PSP_EXPORT_START(sceJpeg, 0x0011, 0x4001)
PSP_EXPORT_FUNC_HASH(sceJpegMJpegCsc)
PSP_EXPORT_FUNC_HASH(sceJpegDecodeMJpeg)
PSP_EXPORT_FUNC_NID(sceJpeg_227662D7, 0x227662D7)
PSP_EXPORT_FUNC_HASH(sceJpegDeleteMJpeg)
PSP_EXPORT_FUNC_NID(sceJpeg_64B6F978, 0x64B6F978)
PSP_EXPORT_FUNC_HASH(sceJpegCsc)
PSP_EXPORT_FUNC_HASH(sceJpegFinishMJpeg)
PSP_EXPORT_FUNC_HASH(sceJpegGetOutputInfo)
PSP_EXPORT_FUNC_HASH(sceJpegDecodeMJpegYCbCr)
PSP_EXPORT_FUNC_HASH(sceJpegCreateMJpeg)
PSP_EXPORT_FUNC_NID(sceJpeg_A06A75C4, 0xA06A75C4)
PSP_EXPORT_FUNC_HASH(sceJpegInitMJpeg)
PSP_EXPORT_END
PSP_END_EXPORTS

View File

@ -4,7 +4,5 @@
TARGET = codec
OBJS = codec.o
PRX_EXPORTS=exports.exp
include ../../lib/build.mak

View File

@ -27,3 +27,9 @@ static inline void pspBreak(int op)
asm("break %0" : : "ri" (op));
}
static inline void pspHalt(void)
{
/* The 'HALT' instruction */
asm(".word 0x70000000");
}

View File

@ -4,10 +4,8 @@
#include <pspinit.h>
#include <pspintrman.h>
#include <pspintrman_kernel.h>
#include <pspsysevent.h>
#include <pspsysmem.h>
#include <pspsysmem_kernel.h>
#include <pspsystimer.h>
#include <pspthreadman.h>
#include <pspthreadman_kernel.h>
#include <psputils.h>
@ -119,6 +117,26 @@ int sceSysregAwResetDisable(void);
int sceSysregSetMasterPriv(int, int);
int sceSysregSetAwEdramSize(int);
int sceSysregIntrEnd(void);
int sceSysregInterruptToOther(void);
int sceSysregMeResetEnable(void);
int sceSysregMeResetDisable(void);
int sceSysregMeBusClockEnable(void);
int sceSysregMeBusClockDisable(void);
int sceSysregAvcResetEnable(void);
int sceSysregAvcResetDisable(void);
int sceSysregPllGetFrequency(void);
int sceSysregGetTachyonVersion(void);
int sceSysregVmeResetEnable(void);
int sceSysregVmeResetDisable(void);
int sceSysconCtrlTachyonAvcPower(int);
int DmacManForKernel_E18A93A5(void*, void*);
@ -134,17 +152,16 @@ typedef struct
int (*func)();
} SceSysmemUIDLookupFunc;
//int sceKernelGetUIDcontrolBlockWithType(SceUID uid, SceSysmemUIDControlBlock *type, SceSysmemUIDControlBlock **block);
//int sceKernelGetUIDcontrolBlock(SceUID uid, SceSysmemUIDControlBlock **block);
SceSysmemUIDControlBlock *sceKernelCreateUIDtype(const char *name, int attr, SceSysmemUIDLookupFunc *funcs, int unk, SceSysmemUIDControlBlock **type);
SceUID sceKernelCreateUID(SceSysmemUIDControlBlock *type, const char *name, short attr, SceSysmemUIDControlBlock **block);
uidControlBlock *sceKernelCreateUIDtype(const char *name, int attr, SceSysmemUIDLookupFunc *funcs, int unk, uidControlBlock **type);
SceUID sceKernelCreateUID(uidControlBlock *type, const char *name, short attr, uidControlBlock **block);
int sceKernelDeleteUID(SceUID uid);
int sceKernelCallUIDObjCommonFunction(SceSysmemUIDControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
int sceKernelCallUIDObjCommonFunction(uidControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
void *sceKernelGetUsersystemLibWork(void);
void *sceKernelGetGameInfo(void);
void *sceKernelGetAWeDramSaveAddr(void);
int sceSysregGetTachyonVersion(void);
int sceKernelGetMEeDramSaveAddr(void);
int sceKernelGetMEeDramSaveSize(void);
void Kprintf(const char *format, ...);
int sceKernelGetUserLevel(void);
@ -155,6 +172,12 @@ int sceKernelDebugWrite(SceUID fd, const void *data, SceSize size);
int sceKernelDebugRead(SceUID fd, const void *data, SceSize size);
int sceKernelDebugEcho(void);
int UtilsForKernel_6C6887EE(void *outBuf, int outSize, void *inBuf, void **end);
void *sceKernelMemset32(void *buf, int c, int size);
int sceWmd_driver_7A0E484C(void *data, int inSize, int *outSize);
int sceKernelPowerLock(int);
int sceKernelPowerLockForUser(int);
int sceKernelPowerUnlock(int);
@ -163,6 +186,13 @@ int sceKernelPowerTick(int unk);
int sceKernelSetInitCallback(void *, int, int);
int sceKernelCreateMutex(char *, int, int, int);
int sceKernelTryLockMutex(int, int);
int sceKernelLockMutex(int, int, int);
int sceKernelUnlockMutex(int, int);
int sceLfatfsWaitReady(void);
int sceKernelApplicationType();
void sceSyscon_driver_B72DDFD2(int);

View File

@ -48,7 +48,6 @@ static inline int pspGetGp(void)
static inline void pspSetGp(int gp)
{
asm("move $zr, $gp");
asm("move $gp, %0" : : "r" (gp));
}

View File

@ -6,7 +6,5 @@ OBJS = ctrl.o
LIBS = -lSysMemForKernel -lsceSuspendForKernel -lsceSysEventForKernel -lKDebugForKernel -lInterruptManagerForKernel -lSysclibForKernel -lThreadManForKernel -lSysTimerForKernel -lInitForKernel -lsceDisplay_driver -lsceSyscon_driver
PRX_EXPORTS = exports.exp
include ../../lib/build.mak

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,9 @@
#include <stdarg.h>
#include <stdio.h>
#include <pspdebug.h>
#include <pspdisplay.h>
#include <pspiofilemgr.h>
#include <pspkerneltypes.h>
#include "memstk.h"
@ -6,6 +11,10 @@
#include "tff/tff.h"
#define DEBUG_FILE "uofw/log.txt"
#define IO_DEBUG_FILE "ms0:/" DEBUG_FILE
#define DEBUG
#include "debug.h"
typedef struct {
int size;
@ -26,13 +35,13 @@ void snprintf_char(SnprintfCtx *ctx, int c)
typedef void (*prnt_callback)(void *ctx, int ch);
int prnt(prnt_callback cb, void *ctx, const char *fmt, va_list args); /* don't use the SDK header because it's wrong: prnt returns an int */
int vsnprintf(char *str, int size, const char *format, va_list ap)
int my_vsnprintf(char *str, int size, const char *format, va_list ap)
{
SnprintfCtx ctx = { size - 1, 0, str };
return prnt((prnt_callback)snprintf_char, &ctx, format, ap);
}
int ms_append(const char *path, const void *data, int size)
int ms_append(const void *data, int size)
{
FATFS FileSystem;
FIL FileObject;
@ -42,7 +51,7 @@ int ms_append(const char *path, const void *data, int size)
if (f_mount(0, &FileSystem) != 0)
return -1;
if (f_open(&FileObject, path, FA_WRITE | FA_OPEN_ALWAYS) != 0)
if (f_open(&FileObject, DEBUG_FILE, FA_WRITE | FA_OPEN_ALWAYS) != 0)
return -1;
f_lseek(&FileObject, FileObject.fsize); /* append to file (move to its end) */
@ -59,14 +68,75 @@ int ms_append(const char *path, const void *data, int size)
return 0;
}
void dbg_init(void)
int io_append(const void *data, int size)
{
pspSyscon_init();
pspSysconCtrlLED(0,1);
pspSysconCtrlLED(1,1);
pspSysconCtrlMsPower(1);
pspMsInit();
ms_append("test.txt", "test", 4);
SceUID id = sceIoOpen(IO_DEBUG_FILE, PSP_O_CREAT | PSP_O_WRONLY, 0777);
if (id < 0)
return -1;
sceIoLseek(id, 0, SEEK_END);
int count = sceIoWrite(id, data, size);
sceIoClose(id);
return count;
}
int (*fat_append)(const void*, int);
int (*fb_append)(const char*, int);
void dbg_init(int eraseLog, FbMode fbMode, FatMode fatMode)
{
switch (fatMode)
{
case FAT_BASIC:
pspSyscon_init();
pspSysconCtrlLED(0,1);
pspSysconCtrlLED(1,1);
pspSysconCtrlMsPower(1);
pspMsInit();
fat_append = ms_append;
if (eraseLog)
{
FATFS FileSystem;
FIL FileObject;
if (f_mount(0, &FileSystem) == 0 && f_open(&FileObject, DEBUG_FILE, FA_CREATE_ALWAYS) == 0)
f_close(&FileObject);
}
break;
case FAT_AFTER_FATFS:
fat_append = io_append;
if (eraseLog)
{
SceUID fd;
if ((fd = sceIoOpen(IO_DEBUG_FILE, PSP_O_CREAT | PSP_O_TRUNC, 0777)) > 0)
sceIoClose(fd);
}
break;
default:
fat_append = NULL;
break;
}
switch (fbMode)
{
case FB_BASIC:
pspDebugScreenInitEx((void*)0x44000000, PSP_DISPLAY_PIXEL_FORMAT_8888, 0);
//pspDebugScreenPrintData("hello\n", 6);
pspDebugScreenPutChar(0, 50, 0xFFFFFF, 'l');
for (;;);
//pspDebugScreenSetBackColor(0xFFFFFFFF);
fb_append = pspDebugScreenPrintData;
break;
case FB_AFTER_DISPLAY:
pspDebugScreenInit();
fb_append = pspDebugScreenPrintData;
break;
default:
fb_append = NULL;
break;
}
}
void dbg_printf(const char *format, ...)
@ -74,9 +144,17 @@ void dbg_printf(const char *format, ...)
va_list ap;
char buf[512];
va_start(ap, format);
int size = vsnprintf(buf, 512, format, ap);
int size = my_vsnprintf(buf, 512, format, ap);
if (size > 0)
ms_append(DEBUG_FILE, buf, size - 1);
{
if (fat_append != NULL) {
pspSyscon_init();
pspMsInit();
fat_append(buf, size);
}
if (fb_append != NULL)
fb_append(buf, size);
}
va_end(ap);
}

View File

@ -1,8 +1,22 @@
#ifndef DEBUG_H
#define DEBUG_H
typedef enum
{
FB_NONE,
FB_BASIC,
FB_AFTER_DISPLAY
} FbMode;
typedef enum
{
FAT_NONE,
FAT_BASIC,
FAT_AFTER_FATFS
} FatMode;
#ifdef DEBUG
void dbg_init(void);
void dbg_init(int eraseLog, FbMode fbMode, FatMode fatMode);
void dbg_printf(const char *format, ...);
#else
static inline void dbg_init()

View File

@ -228,26 +228,21 @@ int pspMsInit(void)
//initialize the hardware
int i;
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x0000FFFF;
*((volatile int*)(0xBC100054)) |= 0x00000100;
*((volatile int*)(0xBC100050)) |= 0x00000400;
*((volatile int*)(0xBC100078)) |= 0x00000010;
*((volatile int*)(0xBC10004C)) &= 0xFFFFFEFF;
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FF00FF;
//Kprintf("reset\n");
//reset the controller
IO_MEM_STICK_SYS = MSRST;
while(IO_MEM_STICK_SYS & MSRST);
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FFFF00;
//Kprintf("check status\n");
ms_check_status();
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00000000;
ms_wait_ready();
ms_wait_ced();
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FFFFFF;
return 0;
}

View File

@ -4,7 +4,7 @@
TARGET = exceptionman
OBJS = excep.o exceptions.o intr.o nmi.o
PRX_EXPORTS=exports.exp
DEBUG = 1
include ../../lib/build.mak

View File

@ -19,6 +19,9 @@ sub_0000:
# get threadman exception vector?
.globl ExceptionManagerForKernel_96D47F7E
ExceptionManagerForKernel_96D47F7E:
#lui $a0, %hi(_79454858)
#jal dbg_printf
#addiu $a0, %lo(_79454858)
lui $v0, %hi(sub_0070)
jr $ra
addiu $v0, $v0, %lo(sub_0070)
@ -132,6 +135,9 @@ sub_0140:
FUCK:
.globl ExceptionManagerForKernel_79454858
ExceptionManagerForKernel_79454858:
#lui $a0, %hi(_79454858)
#jal dbg_printf
#addiu $a0, %lo(_79454858)
li $v0, 92
b loc_0000009C
nop
@ -393,3 +399,15 @@ loc_000004DC:
loc_000004E0:
break 0x20000
.rdata
.align 2
.type _96D47F7E, @object
.size _96D47F7E, 10
_96D47F7E:
.ascii "hey 96D4\00A\000"
.align 2
.type _79454858, @object
.size _79454858, 10
_79454858:
.ascii "hey 7945\00A\000"

View File

@ -5,17 +5,12 @@
#include "../common/common.h"
#include "excep.h"
#include "exceptions.h"
#include "intr.h"
#include "nmi.h"
#include "exceptionman.h"
typedef struct SceExceptionHandler
{
struct SceExceptionHandler *next;
void *cb;
} SceExceptionHandler;
typedef struct
{
SceExceptionHandler *hdlr1[32];
@ -29,11 +24,6 @@ PSP_MODULE_INFO("sceExceptionManager", PSP_MODULE_NO_STOP | PSP_MODULE_SINGLE_LO
PSP_SDK_VERSION(0x06060010);
PSP_MODULE_BOOTSTART("ExcepManInit");
void build_exectbl(void);
SceExceptionHandler *newExcepCB(void);
void FreeExcepCB(SceExceptionHandler *ex);
void Allocexceppool(void);
int g_0D40 = 0;
int g_0D44 = 0;
@ -47,7 +37,9 @@ char g_stackCtx[192] = {0};
SceExceptions ExcepManCB = { { NULL }, { NULL }, NULL, NULL, { { NULL, NULL } }};
int ExcepManInit(void)
{
{
dbg_init(1, FB_NONE, FAT_BASIC);
dbg_printf("-- ExcepManInit()\n");
int oldIntr = suspendIntr();
int i;
for (i = 0; i < 32; i++)
@ -78,29 +70,33 @@ int ExcepManInit(void)
// 0578
sceKernelRegisterDefaultExceptionHandler(sub_016C);
NmiManInit();
dbg_printf("-- init ended\n");
resumeIntr(oldIntr);
return 0;
}
int sceKernelRegisterPriorityExceptionHandler(int exno, int prio, void (*func)())
{
dbg_printf("sceKernelRegisterPriorityExceptionHandler(ex = %d, prio = %d, %08x)\n", exno, prio, func);
int oldIntr = suspendIntr();
if (*(int*)(func) != 0)
{
// 06B0
resumeIntr(oldIntr);
dbg_printf("(ERROR)\n");
return 0x80020034;
}
if (exno < 0 || exno >= 32)
{
// 069C
resumeIntr(oldIntr);
dbg_printf("(ERROR)\n");
return 0x80020032;
}
prio &= 0x3;
SceExceptionHandler *newEx = newExcepCB();
SceExceptionHandler *ex = ExcepManCB.hdlr1[exno];
SceExceptionHandler *lastEx = ex;
SceExceptionHandler *ex = ExcepManCB.hdlr2[exno];
SceExceptionHandler *lastEx = (SceExceptionHandler*)&ex;
newEx->cb = (void*)(((int)func & 0xFFFFFFFC) | prio);
// 0640
while (ex != NULL)
@ -116,17 +112,20 @@ int sceKernelRegisterPriorityExceptionHandler(int exno, int prio, void (*func)()
lastEx->next = newEx;
build_exectbl();
resumeIntr(oldIntr);
dbg_printf("(end)\n");
return 0;
}
int sceKernelRegisterDefaultExceptionHandler(void *func)
{
int oldIntr = suspendIntr();
dbg_printf("sceKernelRegisterDefaultExceptionHandler(%08x)\n", func);
SceExceptionHandler *handler = func;
if (handler->next != NULL || (func == sub_016C && ExcepManCB.defaultHdlr != NULL)) // 0734
{
// 0744
resumeIntr(oldIntr);
dbg_printf("(ERROR)\n");
return 0x80020034;
}
// 0700
@ -134,19 +133,22 @@ int sceKernelRegisterDefaultExceptionHandler(void *func)
ExcepManCB.defaultHdlr = func + 8;
build_exectbl();
resumeIntr(oldIntr);
dbg_printf("(end)\n");
return 0;
}
int sceKernelReleaseExceptionHandler(int exno, void (*func)())
{
dbg_printf("exec %s\n", __FUNCTION__);
int oldIntr = suspendIntr();
if (exno < 0 || exno >= 32)
{
// 080C
resumeIntr(oldIntr);
dbg_printf("(ERROR)\n");
return 0x80020032;
}
SceExceptionHandler *lastEx = ExcepManCB.hdlr1[exno];
SceExceptionHandler *lastEx = ExcepManCB.hdlr2[exno];
SceExceptionHandler *ex = lastEx->next;
// 07A0
while (ex != NULL)
@ -159,6 +161,7 @@ int sceKernelReleaseExceptionHandler(int exno, void (*func)())
FreeExcepCB(ex);
build_exectbl();
resumeIntr(oldIntr);
dbg_printf("(end)\n");
return 0;
}
lastEx = ex;
@ -166,11 +169,13 @@ int sceKernelReleaseExceptionHandler(int exno, void (*func)())
}
// 07C0
resumeIntr(oldIntr);
dbg_printf("(ERROR)\n");
return 0x80020033;
}
int sceKernelReleaseDefaultExceptionHandler(void (*func)())
{
dbg_printf("exec %s\n", __FUNCTION__);
int oldIntr = suspendIntr();
void (*actualFunc)() = func + 8;
SceExceptionHandler *releaseEx = (SceExceptionHandler*)func;
@ -189,6 +194,7 @@ int sceKernelReleaseDefaultExceptionHandler(void (*func)())
releaseEx->next = 0;
build_exectbl();
resumeIntr(oldIntr);
dbg_printf("(end)\n");
return 0;
}
ex = nextFunc - 8;
@ -197,6 +203,7 @@ int sceKernelReleaseDefaultExceptionHandler(void (*func)())
}
// 0874
resumeIntr(oldIntr);
dbg_printf("(ERROR)\n");
return 0x80020033;
}
@ -209,8 +216,10 @@ void build_exectbl(void)
SceExceptionHandler *hdlr = ExcepManCB.hdlr2[i];
if (hdlr != NULL)
{
dbg_printf("handler set for excep %d\n", i);
// 08DC
while (hdlr->next != NULL) {
dbg_printf("- next\n");
*(int*)((int)hdlr->cb & 0xFFFFFFFC) = ((int)hdlr->next->cb & 0xFFFFFFFC) + 8;
hdlr = hdlr->next;
}
@ -261,6 +270,7 @@ void FreeExcepCB(SceExceptionHandler *ex)
void Allocexceppool(void)
{
ExcepManCB.curPool = &ExcepManCB.pool[0];
dbg_printf("Allocexceppool()\n");
// 09F4
int i;
for (i = 0; i < 31; i++)
@ -270,11 +280,13 @@ void Allocexceppool(void)
int sceKernelRegisterExceptionHandler(int exno, void (*func)())
{
dbg_printf("exec %s\n", __FUNCTION__);
return sceKernelRegisterPriorityExceptionHandler(exno, 2, func);
}
SceExceptionHandler *sceKernelGetActiveDefaultExceptionHandler(void)
{
dbg_printf("exec %s\n", __FUNCTION__);
if ((void*)ExcepManCB.defaultHdlr == sub_016C)
return NULL;
return ExcepManCB.defaultHdlr;

View File

@ -0,0 +1,16 @@
#ifndef EXCEPTIONMAN_H
#define EXCEPTIONMAN_H
typedef struct SceExceptionHandler
{
struct SceExceptionHandler *next;
void *cb;
} SceExceptionHandler;
void build_exectbl(void);
SceExceptionHandler *newExcepCB(void);
void FreeExcepCB(SceExceptionHandler *ex);
void Allocexceppool(void);
#endif

View File

@ -12,7 +12,8 @@
void *g_nmiHandlers[16] = { NULL };
int NmiManInit(void)
{
{
dbg_printf("- NmiManInit()\n");
int oldIntr = suspendIntr();
int i;
pspCop0CtrlSet(COP0_CTRL_NMI_TABLE, 0);
@ -23,21 +24,25 @@ int NmiManInit(void)
pspCop0CtrlSet(COP0_CTRL_NMI_TABLE, (int)g_nmiHandlers);
sceKernelRegisterPriorityExceptionHandler(31, 1, nmiHandler);
resumeIntr(oldIntr);
dbg_printf("- NmiManInit ended\n");
return 0;
}
int sceKernelRegisterNmiHandler(int nmino, void (*func)())
{
dbg_printf("exec %s\n", __FUNCTION__);
if (nmino < 0 || nmino >= 17)
return 0x8002003A;
int oldIntr = suspendIntr();
g_nmiHandlers[nmino] = func;
resumeIntr(oldIntr);
dbg_printf("(end)\n");
return 0;
}
int sceKernelReleaseNmiHandler(int nmino)
{
{
dbg_printf("exec %s\n", __FUNCTION__);
int ret = 0;
if (nmino < 0 || nmino >= 17)
return 0x8002003A;
@ -46,9 +51,9 @@ int sceKernelReleaseNmiHandler(int nmino)
g_nmiHandlers[nmino] = NULL;
else
ret = 0x80020068;
// 0BFC
resumeIntr(oldIntr);
dbg_printf("(end)\n");
return ret;
}

10
src/ge/Makefile Normal file
View File

@ -0,0 +1,10 @@
# Copyright (C) 2011, 2012 The uOFW team
# See the file COPYING for copying permission.
TARGET = ge
OBJS = stall.o ge.o
LIBS = -lInterruptManagerForKernel -lThreadManForKernel -lsceSysreg_driver -lKDebugForKernel -lUtilsForKernel -lsceSysEventForKernel -lSysMemForKernel -lSysclibForKernel
include ../../lib/build.mak

View File

@ -3,9 +3,10 @@
*/
#include "../common/common.h"
#include "../interruptman/interruptman.h"
#include "../sysmem/sysmem.h"
#include "../sysmem/sysclib.h"
#include "interruptman.h"
#include "sysmem_sysevent.h"
#include "sysmem_sysclib.h"
#include "ge.h"

View File

@ -2,9 +2,7 @@
# See the file COPYING for copying permission.
TARGET = interruptman
OBJS = start.o interruptman.o end.o imports.o
PRX_EXPORTS=exports.exp
OBJS = start.o interruptman.o end.o
include ../../lib/build.mak

View File

@ -1,16 +0,0 @@
# Copyright (C) 2011, 2012 The uOFW team
# See the file COPYING for copying permission.
.set noreorder
#include "pspstub.s"
STUB_START "sceSuspendForKernel",0x00010011,0x00020005
STUB_FUNC 0x91A77137,sceKernelRegisterSuspendHandler
STUB_FUNC 0xB43D1A8C,sceKernelRegisterResumeHandler
STUB_END
STUB_START "LoadCoreForKernel",0x00010011,0x00010005
STUB_FUNC 0x18CFDAA0,sceKernelGetModuleGPByAddressForKernel
STUB_END

View File

@ -4,7 +4,7 @@
#include "../common/common.h"
#include "../exceptionman/exceptionman.h"
#include "exceptionman.h"
#include "interruptman.h"
#include "end.h"

View File

@ -8,7 +8,5 @@ DEBUG = 1
LIBS = -lThreadManForKernel -lSysclibForKernel -lSysMemForKernel -lKDebugForKernel -lInterruptManagerForKernel -lsceSuspendForKernel
PRX_EXPORTS=exports.exp
include ../../lib/build.mak

View File

@ -1,9 +1,9 @@
#include "../common/common.h"
#include "../sysmem/sysclib.h"
#include "sysmem_sysclib.h"
#include "iofilemgr.h"
#include "stdio.h"
#include "iofilemgr_kernel.h"
#include "iofilemgr_stdio.h"
PSP_MODULE_BOOTSTART("IoFileMgrInit");
PSP_MODULE_REBOOT_BEFORE("IoFileMgrRebootBefore");
@ -101,8 +101,8 @@ SceIoDrvFuncs _nullcon_function =
// 6A7C
SceIoDrv _dummycon_driver = { "dummy_drv_iofile", 0, 0x00000800, "DUMMY_DRV", &_nullcon_function };
int iob_do_initialize(SceSysmemUIDControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
int iob_do_delete(SceSysmemUIDControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
int iob_do_initialize(uidControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
int iob_do_delete(uidControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6);
// 6A90
SceSysmemUIDLookupFunc IobFuncs[] =
@ -143,7 +143,7 @@ SceUID g_ktls;
int g_iobCount;
// 6B28
SceSysmemUIDControlBlock *g_uid_type;
uidControlBlock *g_uid_type;
// 6B2C
SceUID g_UIDs[64];
@ -243,7 +243,7 @@ void sceIoCloseAll()
dbg_printf("Calling %s\n", __FUNCTION__);
SceIoIob *iob;
int oldK1 = pspShiftK1();
SceSysmemUIDControlBlock *cur = g_uid_type->parent;
uidControlBlock *cur = g_uid_type->parent;
// 0F74
while (cur != g_uid_type)
{
@ -1171,7 +1171,7 @@ int sceIoGetFdList(SceUID *fds, int numFd, int *count)
// 261C
int stored = 0;
int oldIntr = sceKernelCpuSuspendIntr();
SceSysmemUIDControlBlock *cur = g_uid_type->parent;
uidControlBlock *cur = g_uid_type->parent;
int curCount = 0;
// 2648
while (cur != g_uid_type)
@ -1226,13 +1226,13 @@ int sceIoGetFdDebugInfo(int fd, SceIoFdDebugInfo *outInfo)
for (i = 0; i < 88; i++)
((int*)&info)[i] = 0;
info.size = 88;
char *name = ((SceSysmemUIDControlBlock*)((void*)iob - g_uid_type->size * 4))->name;
char *name = ((uidControlBlock*)((void*)iob - g_uid_type->size * 4))->name;
if (name != NULL) {
// 2840
strncpy(info.name, name, 31);
}
// 2750
info.attribute = ((SceSysmemUIDControlBlock*)((void*)iob - g_uid_type->size * 4))->attribute;
info.attribute = ((uidControlBlock*)((void*)iob - g_uid_type->size * 4))->attribute;
info.unk40 = iob->unk000;
if (iob->dev != NULL)
info.drvName = iob->dev->drv->name;
@ -1274,7 +1274,7 @@ int sceIoGetFdDebugInfo(int fd, SceIoFdDebugInfo *outInfo)
int sceIoAddDrv(SceIoDrv *drv)
{
dbg_printf("Calling %s\n", __FUNCTION__);
dbg_printf("sceIoAddDrv(): %s\n", drv->name);
int oldK1 = pspShiftK1();
if (!pspK1PtrOk(drv))
{
@ -1303,6 +1303,7 @@ int sceIoAddDrv(SceIoDrv *drv)
}
// 2904
int ret = drv->funcs->IoInit(&list->arg);
dbg_printf("function ioinit at %08x\n", drv->funcs->IoInit);
if (ret < 0)
{
// 2928
@ -1312,12 +1313,13 @@ int sceIoAddDrv(SceIoDrv *drv)
}
add_device_list(list);
pspSetK1(oldK1);
dbg_printf(" -> adddrv ok\n");
return 0;
}
int sceIoDelDrv(const char *drv)
{
dbg_printf("Calling %s\n", __FUNCTION__);
dbg_printf("sceIoDelDrv(%s)\n", drv);
int oldK1 = pspShiftK1();
if (!pspK1PtrOk(drv)) {
pspSetK1(oldK1);
@ -1351,7 +1353,7 @@ int sceIoDelDrv(const char *drv)
// 2A4C
SceIoDeviceList *lookup_device_list(const char *drive)
{
dbg_printf("Calling %s\n", __FUNCTION__);
dbg_printf("lookup_device_list(%s)\n", drive);
int oldIntr = sceKernelCpuSuspendIntr();
SceIoDeviceList *cur = g_devList;
// 2A7C
@ -1374,8 +1376,11 @@ void add_device_list(SceIoDeviceList *list)
{
dbg_printf("Calling %s\n", __FUNCTION__);
int oldIntr = sceKernelCpuSuspendIntr();
dbg_printf("1\n");
list->next = g_devList;
dbg_printf("2\n");
g_devList = list;
dbg_printf("3\n");
sceKernelCpuResumeIntr(oldIntr);
}
@ -1405,10 +1410,11 @@ int delete_device_list(SceIoDeviceList *list)
SceIoDeviceList *alloc_device_list(void)
{
dbg_printf("Calling %s\n", __FUNCTION__);
dbg_printf("alloc_device_list()\n");
SceIoDeviceList *list = sceKernelAllocHeapMemory(g_heap, sizeof(SceIoDeviceList));
if (list != NULL)
{
dbg_printf(" -> ok\n");
list->next = NULL;
list->arg.drv = NULL;
list->arg.argp = NULL;
@ -1500,14 +1506,11 @@ int preobe_fdhook(SceIoIob *iob, char *file, int flags, SceMode mode)
{
dbg_printf("Calling %s\n", __FUNCTION__);
SceIoHookList *cur = g_hookList;
int i; for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x000000FF;
iob->hook.iob = iob;
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x0000FF00;
// 2DB8
while (cur != NULL)
{
iob->hook.arg = &cur->arg;
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FF0000;
if (cur->arg.hook->funcs->Preobe(&iob->hook, file, flags, mode) == 1)
{
// 2E24
@ -1516,11 +1519,9 @@ int preobe_fdhook(SceIoIob *iob, char *file, int flags, SceMode mode)
}
cur = cur->next;
}
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x0000FFFF;
// 2DF0
iob->hook.funcs = NULL;
iob->hook.arg = NULL;
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FFFF00;
return 0;
}
@ -1548,7 +1549,7 @@ int validate_fd(int fd, int arg1, int arg2, int arg3, SceIoIob **outIob)
goto error;
}
// 2EE4
SceSysmemUIDControlBlock *block;
uidControlBlock *block;
if (sceKernelGetUIDcontrolBlockWithType(id, g_uid_type, &block) != 0)
goto error;
SceIoIob *iob = (void*)block + g_uid_type->size * 4;
@ -1649,7 +1650,7 @@ int alloc_iob(SceIoIob **outIob, int arg1)
g_iobCount++;
}
// 3214
SceSysmemUIDControlBlock *blk;
uidControlBlock *blk;
int ret = sceKernelCreateUID(g_uid_type, "Iob", (pspK1IsUserMode() == 1 ? 0xFF : 0), &blk);
if (ret == 0)
{
@ -1716,7 +1717,7 @@ int free_iob(SceIoIob *iob)
if (fileId < 64)
g_UIDs[fileId] = 0; // contains u32s
// 3360
sceKernelDeleteUID(((SceSysmemUIDControlBlock*)((void*)iob - g_uid_type->size * 4))->UID);
sceKernelDeleteUID(((uidControlBlock*)((void*)iob - g_uid_type->size * 4))->UID);
sceKernelCpuResumeIntr(oldIntr);
return 0;
}
@ -1983,7 +1984,7 @@ int sub_3778(const char *path, SceIoDeviceArg **dev, int *fsNum, char **dirNameP
// 3A70
int strcmp_bs(const char *s1, const char *s2)
{
dbg_printf("Calling %s\n", __FUNCTION__);
dbg_printf("strcmp_bs(%s, %s)\n", s1, s2);
if (s1 == NULL || s2 == NULL)
{
if (s1 == s2)
@ -2041,9 +2042,9 @@ int StdioInit(int, int);
int IoFileMgrInit()
{
dbg_printf("Calling %s\n", __FUNCTION__);
SceSysmemUIDControlBlock *in, *out, *err;
dbg_init();
uidControlBlock *in, *out, *err;
dbg_init(1, FB_NONE, FAT_BASIC);
dbg_printf("-- iofilemgr init\n");
g_heap = sceKernelCreateHeap(1, 0x2000, 1, "SceIofile");
sceKernelCreateUIDtype("Iob", 0x90, IobFuncs, 0, &g_uid_type);
g_ktls = sceKernelAllocateKTLS(4, (void*)free_cwd, 0);
@ -2062,6 +2063,7 @@ int IoFileMgrInit()
g_UIDs[0] = sceKernelStdin();
g_UIDs[1] = sceKernelStdout();
g_UIDs[2] = sceKernelStderr();
dbg_printf("-- init finished\n");
return 0;
}
@ -2112,7 +2114,7 @@ int sceIoGetAsyncStat(SceUID fd, int poll, SceInt64 *res)
int sceIoSetAsyncCallback(SceUID fd, SceUID cb, void *argp)
{
dbg_printf("Calling %s\n", __FUNCTION__);
SceSysmemUIDControlBlock *blk;
uidControlBlock *blk;
SceIoIob *iob;
if (sceKernelGetThreadmanIdType(cb) != 8)
return 0x800200D2;
@ -2652,7 +2654,7 @@ int do_open(const char *path, int flags, SceMode mode, int async, int retAddr, i
pspSetK1(oldK1);
return ret;
}
sceKernelRenameUID(((SceSysmemUIDControlBlock*)((void*)iob - g_uid_type->size * 4))->UID, path);
sceKernelRenameUID(((uidControlBlock*)((void*)iob - g_uid_type->size * 4))->UID, path);
if (sceKernelDeci2pReferOperations() != 0)
{
// 4CF4
@ -3116,7 +3118,7 @@ int do_deldrv(SceIoDeviceArg *dev)
{
dbg_printf("Calling %s\n", __FUNCTION__);
int oldIntr = sceKernelCpuSuspendIntr();
SceSysmemUIDControlBlock *cur = g_uid_type->parent;
uidControlBlock *cur = g_uid_type->parent;
// 59C4
while (cur != g_uid_type)
{
@ -3165,14 +3167,14 @@ int _nulldev_write(SceIoIob *iob __attribute__((unused)), const char *data, int
return len;
}
int iob_do_initialize(SceSysmemUIDControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6)
int iob_do_initialize(uidControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6)
{
dbg_printf("Calling %s\n", __FUNCTION__);
sceKernelCallUIDObjCommonFunction(cb, funcid, arg1, arg2, arg3, arg4, arg5, arg6);
return cb->UID;
}
int iob_do_delete(SceSysmemUIDControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6)
int iob_do_delete(uidControlBlock *cb, int funcid, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5, void *arg6)
{
dbg_printf("Calling %s\n", __FUNCTION__);
sceKernelCallUIDObjCommonFunction(cb, funcid, arg1, arg2, arg3, arg4, arg5, arg6);

View File

@ -6,8 +6,8 @@
#include "../common/common.h"
#include "../sysmem/sysclib.h"
#include "iofilemgr.h"
#include "sysmem_sysclib.h"
#include "iofilemgr_kernel.h"
#define STDIN 0
#define STDOUT 1
@ -66,45 +66,48 @@ int _sceKernelRegisterStdPipe(int fd, SceUID id);
// 0000
int StdioReInit()
{
dbg_printf("Calling %s\n", __FUNCTION__);
SceUID *fds[3];
fds[0] = &g_stdin;
fds[1] = &g_stdout;
fds[2] = &g_stderr;
// 0044
int i;
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x0000FFFF;
for (i = 0; i < 3; i++)
*fds[i] = sceIoOpen("dummy_drv_iofile:", 3, 0x1FF);
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FF00FF;
g_debugRead = 1;
sceTtyProxyInit();
for (i = 0; i < 480 * 272 * 2; i++) ((int*)0x44000000)[i] = 0x00FFFFFF;
return 0;
}
// 0094
int StdioInit()
{
dbg_printf("Calling %s\n", __FUNCTION__);
return StdioReInit();
}
int sceKernelStdin()
{
dbg_printf("Calling %s\n", __FUNCTION__);
return g_stdin;
}
int sceKernelStdout()
{
dbg_printf("Calling %s\n", __FUNCTION__);
return g_stdout;
}
int sceKernelStderr()
{
dbg_printf("Calling %s\n", __FUNCTION__);
return g_stderr;
}
int sceKernelStdoutReopen(const char *file, int flags, SceMode mode)
{
dbg_printf("Calling %s\n", __FUNCTION__);
if (g_stdout < 0)
return 0x80020384;
return sceIoReopen(file, flags, mode, g_stdout);
@ -112,6 +115,7 @@ int sceKernelStdoutReopen(const char *file, int flags, SceMode mode)
int sceKernelStderrReopen(const char *file, int flags, SceMode mode)
{
dbg_printf("Calling %s\n", __FUNCTION__);
if (g_stderr < 0)
return 0x80020384;
return sceIoReopen(file, flags, mode, g_stderr);
@ -119,6 +123,7 @@ int sceKernelStderrReopen(const char *file, int flags, SceMode mode)
int sceKernelStdoutReset()
{
dbg_printf("Calling %s\n", __FUNCTION__);
int ret = stdoutReset(3, 0x1FF);
if (ret < 0)
return ret;
@ -128,6 +133,7 @@ int sceKernelStdoutReset()
int sceKernelStderrReset()
{
dbg_printf("Calling %s\n", __FUNCTION__);
int ret = stdoutReset(3, 0x1FF);
if (ret < 0)
return ret;
@ -138,6 +144,7 @@ int sceKernelStderrReset()
// 019C
int stdoutReset(int flags, SceMode mode)
{
dbg_printf("Calling %s\n", __FUNCTION__);
char openDummy = 0;
if (sceKernelDipsw(58) == 1 && !sceKernelDipsw(59))
openDummy = 1;
@ -158,6 +165,7 @@ int stdoutReset(int flags, SceMode mode)
// 0244
void printf_char(void *ctx, int ch)
{
dbg_printf("Calling %s\n", __FUNCTION__);
if (ch == 0x200) {
*(short*)(ctx + 2) = 0;
return;
@ -216,6 +224,7 @@ void printf_char(void *ctx, int ch)
int fdprintf(int fd, const char *fmt, ...)
{
dbg_printf("Calling %s\n", __FUNCTION__);
va_list ap;
char sp[168];
va_start(ap, fmt);
@ -228,6 +237,7 @@ int fdprintf(int fd, const char *fmt, ...)
int printf(const char *fmt, ...)
{
dbg_printf("Calling %s\n", __FUNCTION__);
va_list ap;
char sp[164];
va_start(ap, fmt);
@ -240,6 +250,7 @@ int printf(const char *fmt, ...)
int fdputc(int c, int fd)
{
dbg_printf("Calling %s\n", __FUNCTION__);
char str[1] = {c};
if (c == '\t')
{
@ -305,6 +316,7 @@ int fdputc(int c, int fd)
int fdgetc(int fd)
{
dbg_printf("Calling %s\n", __FUNCTION__);
char buf[1];
int ret;
if (g_debugRead == 0) {
@ -321,6 +333,7 @@ int fdgetc(int fd)
char *fdgets(char *s, int fd)
{
dbg_printf("Calling %s\n", __FUNCTION__);
char *end = s + 125;
char *curS = s;
for (;;)
@ -387,11 +400,13 @@ char *fdgets(char *s, int fd)
int putchar(int c)
{
dbg_printf("Calling %s\n", __FUNCTION__);
return fdputc(c, STDOUT);
}
int fdputs(const char *s, int fd)
{
dbg_printf("Calling %s\n", __FUNCTION__);
char c;
if (s == NULL) // 089C
s = "<NULL>";
@ -403,6 +418,7 @@ int fdputs(const char *s, int fd)
int puts(const char *s)
{
dbg_printf("Calling %s\n", __FUNCTION__);
char c;
if (s == NULL) // 089C
s = "<NULL>";
@ -414,45 +430,54 @@ int puts(const char *s)
int getchar(void)
{
dbg_printf("Calling %s\n", __FUNCTION__);
return fdgetc(STDIN);
}
char *gets(char *s)
{
dbg_printf("Calling %s\n", __FUNCTION__);
return fdgets(s, STDIN);
}
int sceKernelStdioRead()
{
dbg_printf("Calling %s\n", __FUNCTION__);
return 0x80020001;
}
int sceKernelStdioLseek()
{
dbg_printf("Calling %s\n", __FUNCTION__);
return 0x80020001;
}
void sceKernelStdioSendChar()
{
dbg_printf("Calling %s\n", __FUNCTION__);
}
int sceKernelStdioWrite()
{
dbg_printf("Calling %s\n", __FUNCTION__);
return 0x80020001;
}
int sceKernelStdioClose()
{
dbg_printf("Calling %s\n", __FUNCTION__);
return 0x80020001;
}
int sceKernelStdioOpen()
{
dbg_printf("Calling %s\n", __FUNCTION__);
return 0x80020001;
}
int _sceTtyProxyDevRead(SceIoIob *iob, char *buf, int size)
{
dbg_printf("Calling %s\n", __FUNCTION__);
int cnt;
int oldK1 = pspShiftK1();
int count = 0;
@ -485,6 +510,7 @@ int _sceTtyProxyDevRead(SceIoIob *iob, char *buf, int size)
int _sceTtyProxyDevWrite(SceIoIob *iob, const char *buf, int size)
{
dbg_printf("Calling %s\n", __FUNCTION__);
int oldK1 = pspShiftK1();
int count = 0;
int curCnt;
@ -517,12 +543,14 @@ int _sceTtyProxyDevWrite(SceIoIob *iob, const char *buf, int size)
// 0B58
int sceTtyProxyInit()
{
dbg_printf("Calling %s\n", __FUNCTION__);
sceIoAddDrv(&g_TtyDevTbl);
return 0;
}
int sceKernelRegisterStdoutPipe(SceUID id)
{
dbg_printf("Calling %s\n", __FUNCTION__);
int oldK1 = pspShiftK1();
int ret = _sceKernelRegisterStdPipe(STDOUT, id);
pspSetK1(oldK1);
@ -531,6 +559,7 @@ int sceKernelRegisterStdoutPipe(SceUID id)
int sceKernelRegisterStderrPipe(SceUID id)
{
dbg_printf("Calling %s\n", __FUNCTION__);
int oldK1 = pspShiftK1();
int ret = _sceKernelRegisterStdPipe(STDERR, id);
pspSetK1(oldK1);
@ -540,17 +569,20 @@ int sceKernelRegisterStderrPipe(SceUID id)
// 0BE4
int _sceTtyProxyDevInit(SceIoDeviceArg *dev __attribute__((unused)))
{
dbg_printf("Calling %s\n", __FUNCTION__);
return 0;
}
// 0BEC
int _sceTtyProxyDevExit(SceIoDeviceArg *dev __attribute__((unused)))
{
dbg_printf("Calling %s\n", __FUNCTION__);
return 0;
}
int _sceTtyProxyDevOpen(SceIoIob *iob, char *file __attribute__((unused)), int flags __attribute__((unused)), SceMode mode __attribute__((unused)))
{
dbg_printf("Calling %s\n", __FUNCTION__);
if (iob->fsNum < 3)
return 0;
return 0x80010006;
@ -558,6 +590,7 @@ int _sceTtyProxyDevOpen(SceIoIob *iob, char *file __attribute__((unused)), int f
int _sceTtyProxyDevClose(SceIoIob *iob)
{
dbg_printf("Calling %s\n", __FUNCTION__);
if (iob->fsNum < 3)
return 0;
return 0x80010006;
@ -565,11 +598,13 @@ int _sceTtyProxyDevClose(SceIoIob *iob)
SceOff _sceTtyProxyDevLseek()
{
dbg_printf("Calling %s\n", __FUNCTION__);
return 0x80020323;
}
int _sceTtyProxyDevIoctl(SceIoIob *iob, unsigned int cmd, void *indata __attribute__((unused)), int inlen __attribute__((unused)), void *outdata __attribute__((unused)), int outlen __attribute__((unused)))
{
dbg_printf("Calling %s\n", __FUNCTION__);
if (cmd != 0x00134002)
return 0x80020324;
int oldK1 = pspShiftK1();
@ -585,6 +620,7 @@ int _sceTtyProxyDevIoctl(SceIoIob *iob, unsigned int cmd, void *indata __attribu
// 0CBC
int _sceKernelRegisterStdPipe(int fd, SceUID id)
{
dbg_printf("Calling %s\n", __FUNCTION__);
if (id < 0)
{
// 0DD8
@ -601,7 +637,7 @@ int _sceKernelRegisterStdPipe(int fd, SceUID id)
}
if (sceKernelGetThreadmanIdType(id) == 7)
return 0x800200D2;
SceSysmemUIDControlBlock *blk;
uidControlBlock *blk;
if (sceKernelGetUIDcontrolBlock(id, &blk) != 0)
return 0x800200D1;
if (pspK1IsUserMode() && (blk->parent->attribute & 2) != 0)

24
src/lfatfs/exports.exp Normal file
View File

@ -0,0 +1,24 @@
# Export file automatically generated with prxtool
PSP_BEGIN_EXPORTS
PSP_EXPORT_START(syslib, 0x0000, 0x8000)
PSP_EXPORT_FUNC_HASH(module_start)
PSP_EXPORT_FUNC_HASH(module_stop)
PSP_EXPORT_FUNC_HASH(module_reboot_before)
PSP_EXPORT_FUNC_HASH(module_reboot_phase)
PSP_EXPORT_VAR_HASH(module_info)
PSP_EXPORT_VAR_HASH(module_sdk_version)
PSP_EXPORT_VAR_NID(syslib_1D4042A5, 0x1D4042A5)
PSP_EXPORT_VAR_HASH(module_start_thread_parameter)
PSP_EXPORT_END
PSP_EXPORT_START(sceLFatFs_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_HASH(sceLfatfsStop)
PSP_EXPORT_FUNC_HASH(sceLfatfsWaitReady)
PSP_EXPORT_FUNC_NID(sceLFatFs_driver_BED8D616, 0xBED8D616)
PSP_EXPORT_FUNC_NID(sceLFatFs_driver_F1FBA85F, 0xF1FBA85F)
PSP_EXPORT_FUNC_NID(sceLFatFs_driver_F28896C0, 0xF28896C0)
PSP_EXPORT_VAR_NID(sceLFatFs_driver_E63DDEB5, 0xE63DDEB5)
PSP_EXPORT_END
PSP_END_EXPORTS

338
src/lowio/exports.exp Normal file
View File

@ -0,0 +1,338 @@
# Export file automatically generated with prxtool
PSP_BEGIN_EXPORTS
PSP_EXPORT_START(syslib, 0x0000, 0x8000)
PSP_EXPORT_FUNC_HASH(module_start)
PSP_EXPORT_FUNC_HASH(module_reboot_before)
PSP_EXPORT_VAR_HASH(module_info)
PSP_EXPORT_VAR_NID(syslib_11B97506, 0x11B97506)
PSP_EXPORT_END
PSP_EXPORT_START(sceSysreg_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_NID(sceSysregSemaTryLock, 0x0143E8A8)
PSP_EXPORT_FUNC_NID(sceSysregAtahddClkEnable, 0x018F913A)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_0607A4C4, 0x0607A4C4)
PSP_EXPORT_FUNC_NID(sceSysregUsbhostClkEnable, 0x08FE40F5)
PSP_EXPORT_FUNC_NID(sceSysregAudioClkDisable, 0x092AF6A9)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_0995F8F6, 0x0995F8F6)
PSP_EXPORT_FUNC_NID(sceSysregAvcResetEnable, 0x0AE8E549)
PSP_EXPORT_FUNC_NID(sceSysregEmcddrBusClockEnable, 0x0BBD4ED6)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_14EB1393, 0x14EB1393)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_1561BCD2, 0x1561BCD2)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_15786501, 0x15786501)
PSP_EXPORT_FUNC_NID(sceSysregGpioIoDisable, 0x15DC34BC)
PSP_EXPORT_FUNC_HASH(sceSysregAtaBusClockEnable)
PSP_EXPORT_FUNC_NID(sceSysregMsifIoDisable, 0x176E590A)
PSP_EXPORT_FUNC_NID(sceSysregPllGetOutSelect, 0x187F651D)
PSP_EXPORT_FUNC_NID(sceSysregApbBusClockEnable, 0x191D7461)
PSP_EXPORT_FUNC_NID(sceSysregPllSetOutSelect, 0x19A6E54B)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_19F4C92D, 0x19F4C92D)
PSP_EXPORT_FUNC_NID(sceSysregVmeResetEnable, 0x1A27B224)
PSP_EXPORT_FUNC_HASH(sceSysregEmcsmIoDisable)
PSP_EXPORT_FUNC_NID(sceSysregUsbBusClockDisable, 0x1D233EF9)
PSP_EXPORT_FUNC_NID(sceSysregMsifClkDisable, 0x1E111B75)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_1E62714E, 0x1E62714E)
PSP_EXPORT_FUNC_NID(sceSysregIntrInit, 0x1E881843)
PSP_EXPORT_FUNC_HASH(sceSysregSircsClkDisable)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_20B1D0A9, 0x20B1D0A9)
PSP_EXPORT_FUNC_NID(sceSysregMsifGetConnectStatus, 0x20DF8278)
PSP_EXPORT_FUNC_NID(sceSysregPllUpdateFrequency, 0x231EE757)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_2458B6AC, 0x2458B6AC)
PSP_EXPORT_FUNC_NID(sceSysregAwEdramBusClockDisable, 0x258782A3)
PSP_EXPORT_FUNC_HASH(sceSysregSircsIoDisable)
PSP_EXPORT_FUNC_NID(sceSysregGpioClkEnable, 0x283D7A95)
PSP_EXPORT_FUNC_HASH(sceSysregEmcsmBusClockDisable)
PSP_EXPORT_FUNC_NID(sceSysregKirkResetDisable, 0x2F9B03E0)
PSP_EXPORT_FUNC_NID(sceSysregUsbResetEnable, 0x30C0A141)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_32E02FDF, 0x32E02FDF)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_33EE43F0, 0x33EE43F0)
PSP_EXPORT_FUNC_NID(sceSysregUsbhostBusClockEnable, 0x35C23493)
PSP_EXPORT_FUNC_NID(sceSysregMsifResetEnable, 0x370419AD)
PSP_EXPORT_FUNC_NID(sceSysregGpioIoEnable, 0x37FBACA5)
PSP_EXPORT_FUNC_NID(sceSysregMeBusClockEnable, 0x38527743)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_3BB0B2C8, 0x3BB0B2C8)
PSP_EXPORT_FUNC_NID(sceSysregApbBusClockDisable, 0x3D2CE374)
PSP_EXPORT_FUNC_NID(sceSysregAtaIoEnable, 0x3E95AB4D)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_3F6F2CC7, 0x3F6F2CC7)
PSP_EXPORT_FUNC_NID(sceSysregAudioClkoutClkSelect, 0x41B0337B)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_434E8AF1, 0x434E8AF1)
PSP_EXPORT_FUNC_NID(sceSysregAwRegBBusClockEnable, 0x44277D0D)
PSP_EXPORT_FUNC_NID(sceSysregUsbhostBusClockDisable, 0x4479C9BD)
PSP_EXPORT_FUNC_NID(sceSysregMeResetEnable, 0x457FEBA9)
PSP_EXPORT_FUNC_NID(sceSysregAudioIoEnable, 0x4634C9DC)
PSP_EXPORT_FUNC_NID(sceSysregTopResetEnable, 0x47C971B2)
PSP_EXPORT_FUNC_NID(sceSysregMsifClkSelect, 0x48124AFE)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_4841B2D2, 0x4841B2D2)
PSP_EXPORT_FUNC_NID(sceSysregAtahddClkSelect, 0x48CF8E69)
PSP_EXPORT_FUNC_NID(sceSysregMeResetDisable, 0x48F1C4AD)
PSP_EXPORT_FUNC_NID(sceSysregUsbhostResetEnable, 0x4A433DC3)
PSP_EXPORT_FUNC_NID(sceSysregAudioClkoutIoEnable, 0x4B4CCE80)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_4C0BED71, 0x4C0BED71)
PSP_EXPORT_FUNC_HASH(sceSysregSircsIoEnable)
PSP_EXPORT_FUNC_NID(sceSysregMsifClkEnable, 0x4DB0C55D)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_4E5C86AA, 0x4E5C86AA)
PSP_EXPORT_FUNC_HASH(sceSysregGetFuseId)
PSP_EXPORT_FUNC_NID(sceSysregAwRegABusClockEnable, 0x51571E8F)
PSP_EXPORT_FUNC_NID(sceSysregMsifIoEnable, 0x518E3F29)
PSP_EXPORT_FUNC_NID(sceSysregAwRegABusClockDisable, 0x52B74976)
PSP_EXPORT_FUNC_NID(sceSysregAtahddClkDisable, 0x55373EE4)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_554E97F7, 0x554E97F7)
PSP_EXPORT_FUNC_NID(sceSysregAvcResetDisable, 0x55FF02E9)
PSP_EXPORT_FUNC_NID(sceSysregMsifAcquireConnectIntr, 0x56E95BB6)
PSP_EXPORT_FUNC_NID(sceSysregAtahddIoEnable, 0x5D5118CD)
PSP_EXPORT_FUNC_NID(sceSysregAtahddBusClockDisable, 0x5F179286)
PSP_EXPORT_FUNC_NID(sceSysregInterruptToOther, 0x61FAE917)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_63E1EE9C, 0x63E1EE9C)
PSP_EXPORT_FUNC_HASH(sceSysregSircsClkEnable)
PSP_EXPORT_FUNC_NID(sceSysregAtaResetEnable, 0x64C8E8DD)
PSP_EXPORT_FUNC_NID(sceSysregScResetEnable, 0x655C9CFC)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_6596EBC3, 0x6596EBC3)
PSP_EXPORT_FUNC_NID(sceSysregAwResetEnable, 0x66899952)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_68AE6434, 0x68AE6434)
PSP_EXPORT_FUNC_NID(sceSysregAtaClkEnable, 0x6A9B0426)
PSP_EXPORT_FUNC_NID(sceSysregPllGetBaseFrequency, 0x6B3A3417)
PSP_EXPORT_FUNC_NID(sceSysregUsbClkDisable, 0x6C0EE043)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_6DA9347D, 0x6DA9347D)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_6F3B6D7D, 0x6F3B6D7D)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_72887197, 0x72887197)
PSP_EXPORT_FUNC_NID(sceSysregUsbGetConnectStatus, 0x72C1CA96)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_73B3E52D, 0x73B3E52D)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_73EBC752, 0x73EBC752)
PSP_EXPORT_FUNC_NID(sceSysregApbTimerClkEnable, 0x74C6F776)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_76E57DC6, 0x76E57DC6)
PSP_EXPORT_FUNC_HASH(sceSysregUartClkEnable)
PSP_EXPORT_FUNC_NID(sceSysregIntrEnd, 0x7AA8A8BE)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_7CF05E81, 0x7CF05E81)
PSP_EXPORT_FUNC_NID(sceSysregMsifResetDisable, 0x7DD0CBEE)
PSP_EXPORT_FUNC_NID(sceSysregAwRegBBusClockDisable, 0x7E1B1F28)
PSP_EXPORT_FUNC_HASH(sceSysregUartIoEnable)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_803E5F37, 0x803E5F37)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_80944C8A, 0x80944C8A)
PSP_EXPORT_FUNC_NID(sceSysregUsbClkEnable, 0x84A279A4)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_84E0F197, 0x84E0F197)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_85B74FDA, 0x85B74FDA)
PSP_EXPORT_FUNC_NID(sceSysregAudioBusClockDisable, 0x85BA0C0B)
PSP_EXPORT_FUNC_NID(sceSysregAtahddResetEnable, 0x866EEB74)
PSP_EXPORT_FUNC_NID(sceSysregKirkBusClockDisable, 0x867BD103)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_87B61303, 0x87B61303)
PSP_EXPORT_FUNC_HASH(sceSysregSpiClkEnable)
PSP_EXPORT_FUNC_NID(sceSysregAudioBusClockEnable, 0x8B1DD83A)
PSP_EXPORT_FUNC_HASH(sceSysregSpiClkDisable)
PSP_EXPORT_FUNC_HASH(sceSysregSpiIoEnable)
PSP_EXPORT_FUNC_NID(sceSysregAtaResetDisable, 0x8CFD0DCA)
PSP_EXPORT_FUNC_HASH(sceSysregGetFuseConfig)
PSP_EXPORT_FUNC_NID(sceSysregAtaClkSelect, 0x9057C9E2)
PSP_EXPORT_FUNC_NID(sceSysregUsbhostAcquireIntr, 0x915B3772)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_9275DD37, 0x9275DD37)
PSP_EXPORT_FUNC_NID(sceSysregUsbResetDisable, 0x9306F27B)
PSP_EXPORT_FUNC_NID(sceSysregMsifBusClockEnable, 0x93F96D8F)
PSP_EXPORT_FUNC_NID(sceSysregAtahddBusClockEnable, 0x94B89638)
PSP_EXPORT_FUNC_NID(sceSysregUsbIoEnable, 0x95CA8AA1)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_96D74557, 0x96D74557)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_9746F3B2, 0x9746F3B2)
PSP_EXPORT_FUNC_NID(sceSysregUsbQueryIntr, 0x9A6E7BB8)
PSP_EXPORT_FUNC_NID(sceSysregUsbhostResetDisable, 0x9B710D3C)
# TODO: where did I get that name from?
PSP_EXPORT_FUNC_NID(sceSysregSetMasterPriv, 0x9CD29D6C)
PSP_EXPORT_FUNC_HASH(sceSysregEmcsmIoEnable)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_9E2F8FD5, 0x9E2F8FD5)
PSP_EXPORT_FUNC_NID(sceSysregAtahddResetDisable, 0x9EB8C49E)
PSP_EXPORT_FUNC_HASH(sceSysregSpiIoDisable)
PSP_EXPORT_FUNC_HASH(sceSysregUartClkDisable)
PSP_EXPORT_FUNC_NID(sceSysregApbTimerClkSelect, 0xA4706857)
PSP_EXPORT_FUNC_NID(sceSysregPllGetFrequency, 0xA5CC6025)
PSP_EXPORT_FUNC_NID(sceSysregUsbhostClkDisable, 0xA781B599)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_A7C82BDD, 0xA7C82BDD)
PSP_EXPORT_FUNC_NID(sceSysregGpioClkDisable, 0xA9EE3124)
PSP_EXPORT_FUNC_NID(sceSysregAwResetDisable, 0xAEB8DBD1)
PSP_EXPORT_FUNC_NID(sceSysregSetAwEdramSize, 0xAEC87DFD)
PSP_EXPORT_FUNC_NID(sceSysregDoTimerEvent, 0xAFE47914)
PSP_EXPORT_FUNC_NID(sceSysregAudioClkEnable, 0xB1751B06)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_B413B041, 0xB413B041)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_B6296512, 0xB6296512)
PSP_EXPORT_FUNC_HASH(sceSysregAtaBusClockDisable)
PSP_EXPORT_FUNC_NID(sceSysregVmeResetDisable, 0xB73D3619)
PSP_EXPORT_FUNC_NID(sceSysregMsifQueryConnectIntr, 0xBB6BAA00)
PSP_EXPORT_FUNC_HASH(sceSysregUartIoDisable)
PSP_EXPORT_FUNC_NID(sceSysregKirkBusClockEnable, 0xBBC721EA)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_BD7B035B, 0xBD7B035B)
PSP_EXPORT_FUNC_NID(sceSysregAudioClkoutClkEnable, 0xBE03D832)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_BE1FF8BD, 0xBE1FF8BD)
PSP_EXPORT_FUNC_NID(sceSysregUsbIoDisable, 0xC11B5C0D)
PSP_EXPORT_FUNC_NID(sceSysregKirkResetEnable, 0xC1A37B37)
PSP_EXPORT_FUNC_NID(sceSysregAwEdramBusClockEnable, 0xC2E0E869)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_C2F3061F, 0xC2F3061F)
PSP_EXPORT_FUNC_NID(sceSysregAudioClkSelect, 0xC36775AD)
PSP_EXPORT_FUNC_NID(sceSysregMeBusClockDisable, 0xC4C21CAB)
PSP_EXPORT_FUNC_NID(sceSysregAudioIoDisable, 0xC60FAFB4)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_C6C75585, 0xC6C75585)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_C9585F8E, 0xC9585F8E)
PSP_EXPORT_FUNC_NID(sceSysregUsbhostQueryIntr, 0xD3E23912)
PSP_EXPORT_FUNC_NID(sceSysregMsifDelaySelect, 0xD3E8F2AF)
PSP_EXPORT_FUNC_NID(sceSysregAudioClkoutClkDisable, 0xD507A82D)
PSP_EXPORT_FUNC_HASH(sceSysregSpiClkSelect)
PSP_EXPORT_FUNC_NID(sceSysregUsbBusClockEnable, 0xD7AD9705)
PSP_EXPORT_FUNC_NID(sceSysregRequestIntr, 0xD8E6CAE0)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_DA5B5ED9, 0xDA5B5ED9)
PSP_EXPORT_FUNC_NID(sceSysregSemaUnlock, 0xDB97C70E)
PSP_EXPORT_FUNC_NID(sceSysregApbTimerClkDisable, 0xDED12806)
PSP_EXPORT_FUNC_HASH(sceSysregGetTachyonVersion)
PSP_EXPORT_FUNC_NID(sceSysregAudioClkoutIoDisable, 0xE5764EAC)
PSP_EXPORT_FUNC_NID(sceSysregAtaIoDisable, 0xEB5C723A)
PSP_EXPORT_FUNC_NID(sceSysregUsbAcquireIntr, 0xEC03F6E2)
PSP_EXPORT_FUNC_NID(sceSysregEmcddrBusClockDisable, 0xF1924607)
PSP_EXPORT_FUNC_NID(sceSysregMsifBusClockDisable, 0xF288E58E)
PSP_EXPORT_FUNC_NID(sceSysregAtahddIoDisable, 0xF4A3C03A)
PSP_EXPORT_FUNC_HASH(sceSysregEmcsmBusClockEnable)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_F9C93DD4, 0xF9C93DD4)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_FC0131A7, 0xFC0131A7)
PSP_EXPORT_FUNC_NID(sceSysregAtaClkDisable, 0xFC5CDD48)
PSP_EXPORT_FUNC_NID(sceSysreg_driver_FF0E07B1, 0xFF0E07B1)
PSP_EXPORT_END
PSP_EXPORT_START(sceGpio_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_NID(sceGpio_driver_0C5B2EAF, 0x0C5B2EAF)
PSP_EXPORT_FUNC_HASH(sceGpioPortClear)
PSP_EXPORT_FUNC_NID(sceGpio_driver_1A730F20, 0x1A730F20)
PSP_EXPORT_FUNC_NID(sceGpio_driver_1BB49B65, 0x1BB49B65)
PSP_EXPORT_FUNC_NID(sceGpio_driver_2605F404, 0x2605F404)
PSP_EXPORT_FUNC_NID(sceGpio_driver_2B280C43, 0x2B280C43)
PSP_EXPORT_FUNC_NID(sceGpio_driver_2FFF2F8B, 0x2FFF2F8B)
PSP_EXPORT_FUNC_HASH(sceGpioPortSet)
PSP_EXPORT_FUNC_HASH(sceGpioSetPortMode)
PSP_EXPORT_FUNC_HASH(sceGpioPortRead)
PSP_EXPORT_FUNC_NID(sceGpio_driver_4DE658CC, 0x4DE658CC)
PSP_EXPORT_FUNC_HASH(sceGpioDisableIntr)
PSP_EXPORT_FUNC_NID(sceGpio_driver_9C4CFE04, 0x9C4CFE04)
PSP_EXPORT_FUNC_NID(sceGpio_driver_A21E44CB, 0xA21E44CB)
PSP_EXPORT_FUNC_NID(sceGpio_driver_EF1F40F5, 0xEF1F40F5)
PSP_EXPORT_FUNC_NID(sceGpio_driver_FBC85E74, 0xFBC85E74)
PSP_EXPORT_END
PSP_EXPORT_START(scePwm_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_NID(scePwm_driver_12CCFDDD, 0x12CCFDDD)
PSP_EXPORT_FUNC_NID(scePwm_driver_14FB5CD9, 0x14FB5CD9)
PSP_EXPORT_FUNC_NID(scePwm_driver_36F98EBA, 0x36F98EBA)
PSP_EXPORT_FUNC_NID(scePwm_driver_94552DD4, 0x94552DD4)
PSP_EXPORT_FUNC_NID(scePwm_driver_B99A9B50, 0xB99A9B50)
PSP_EXPORT_FUNC_NID(scePwm_driver_D67982F3, 0xD67982F3)
PSP_EXPORT_END
PSP_EXPORT_START(sceI2c_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_NID(sceI2c_driver_4020DC7E, 0x4020DC7E)
PSP_EXPORT_FUNC_NID(sceI2c_driver_47BDEAAA, 0x47BDEAAA)
PSP_EXPORT_FUNC_NID(sceI2c_driver_49B159DE, 0x49B159DE)
PSP_EXPORT_FUNC_NID(sceI2c_driver_62C7E1E4, 0x62C7E1E4)
PSP_EXPORT_FUNC_NID(sceI2c_driver_8CBD8CCF, 0x8CBD8CCF)
PSP_EXPORT_FUNC_NID(sceI2c_driver_D35FC17D, 0xD35FC17D)
PSP_EXPORT_FUNC_NID(sceI2c_driver_DBE12CED, 0xDBE12CED)
PSP_EXPORT_END
PSP_EXPORT_START(sceDmac, 0x0011, 0x4001)
PSP_EXPORT_FUNC_HASH(sceDmacMemcpy)
PSP_EXPORT_FUNC_HASH(sceDmacTryMemcpy)
PSP_EXPORT_END
PSP_EXPORT_START(sceDmacplus_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_282CA0D7, 0x282CA0D7)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_2C5FC1E3, 0x2C5FC1E3)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_33CD36DD, 0x33CD36DD)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_47D400CB, 0x47D400CB)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_5FCF43BD, 0x5FCF43BD)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_6945F1D3, 0x6945F1D3)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_88ACB6F1, 0x88ACB6F1)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_9C492B9B, 0x9C492B9B)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_9EBF7D3E, 0x9EBF7D3E)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_A3AA8D00, 0xA3AA8D00)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_B0EC610D, 0xB0EC610D)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_B269EAC9, 0xB269EAC9)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_BF0DB45E, 0xBF0DB45E)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_CCCF6069, 0xCCCF6069)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_D126494B, 0xD126494B)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_D57D5BC2, 0xD57D5BC2)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_DBD8526F, 0xDBD8526F)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_E9B746F9, 0xE9B746F9)
PSP_EXPORT_FUNC_NID(sceDmacplus_driver_ED849260, 0xED849260)
PSP_EXPORT_END
PSP_EXPORT_START(sceLcdc_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_0BFF31C5, 0x0BFF31C5)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_1F01BD08, 0x1F01BD08)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_2D80BB2E, 0x2D80BB2E)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_35F45B50, 0x35F45B50)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_3EDBFCB9, 0x3EDBFCB9)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_451FE1A1, 0x451FE1A1)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_525E7EB1, 0x525E7EB1)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_56307DBC, 0x56307DBC)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_5DF2F52A, 0x5DF2F52A)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_75C4DA9A, 0x75C4DA9A)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_88C3D167, 0x88C3D167)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_90AA786C, 0x90AA786C)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_94F83F74, 0x94F83F74)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_9D4FB8B1, 0x9D4FB8B1)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_A3DCEF64, 0xA3DCEF64)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_BAF165CE, 0xBAF165CE)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_BB839185, 0xBB839185)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_C004BBE0, 0xC004BBE0)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_C943B9A2, 0xC943B9A2)
PSP_EXPORT_FUNC_NID(sceLcdc_driver_E9DBD35F, 0xE9DBD35F)
PSP_EXPORT_END
PSP_EXPORT_START(sceNand_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_HASH(sceNandIsBadBlock)
PSP_EXPORT_FUNC_HASH(sceNandWriteAccess)
PSP_EXPORT_FUNC_HASH(sceNandSetScramble)
PSP_EXPORT_FUNC_HASH(sceNandVerifyEcc)
PSP_EXPORT_FUNC_HASH(sceNandEraseAllBlock)
PSP_EXPORT_FUNC_HASH(sceNandDetectChipMakersBBM)
PSP_EXPORT_FUNC_HASH(sceNandDumpWearBBMSize)
PSP_EXPORT_FUNC_HASH(sceNandUnlock)
PSP_EXPORT_FUNC_HASH(sceNandReadExtraOnly)
PSP_EXPORT_FUNC_HASH(sceNandVerifyBlockWithRetry)
PSP_EXPORT_FUNC_HASH(sceNandWriteBlock)
PSP_EXPORT_FUNC_HASH(sceNandReadAccess)
PSP_EXPORT_FUNC_HASH(sceNandReset)
PSP_EXPORT_FUNC_HASH(sceNandSetWriteProtect)
PSP_EXPORT_FUNC_HASH(sceNandCorrectEcc)
PSP_EXPORT_FUNC_HASH(sceNandWritePagesRawExtra)
PSP_EXPORT_FUNC_HASH(sceNandEraseBlockWithRetry)
PSP_EXPORT_FUNC_HASH(sceNandReadPages)
PSP_EXPORT_FUNC_HASH(sceNandWritePages)
PSP_EXPORT_FUNC_HASH(sceNandTestBlock)
PSP_EXPORT_FUNC_HASH(sceNandLock)
PSP_EXPORT_FUNC_HASH(sceNandGetPagesPerBlock)
PSP_EXPORT_FUNC_HASH(sceNandWriteBlockWithVerify)
PSP_EXPORT_FUNC_HASH(sceNandCollectEcc)
PSP_EXPORT_FUNC_HASH(sceNandWritePagesRawAll)
PSP_EXPORT_FUNC_HASH(sceNandGetTotalBlocks)
PSP_EXPORT_FUNC_HASH(sceNandDoMarkAsBadBlock)
PSP_EXPORT_FUNC_HASH(sceNandReadBlockWithRetry)
PSP_EXPORT_FUNC_HASH(sceNandReadPagesRawAll)
PSP_EXPORT_FUNC_HASH(sceNandGetPageSize)
PSP_EXPORT_FUNC_HASH(sceNandDetectChip)
PSP_EXPORT_FUNC_HASH(sceNandReadPagesRawExtra)
PSP_EXPORT_FUNC_HASH(sceNandReadStatus)
PSP_EXPORT_FUNC_HASH(sceNandEraseBlock)
PSP_EXPORT_FUNC_HASH(sceNandCountChipMakersBBM)
PSP_EXPORT_FUNC_HASH(sceNandCalcEcc)
PSP_EXPORT_FUNC_HASH(sceNandReadId)
PSP_EXPORT_END
PSP_EXPORT_START(sceDdr_driver, 0x0011, 0x0001)
PSP_EXPORT_FUNC_NID(sceDdr_driver_00E36648, 0x00E36648)
PSP_EXPORT_FUNC_NID(sceDdr_driver_0BAAE4C5, 0x0BAAE4C5)
PSP_EXPORT_FUNC_NID(sceDdr_driver_2AA39A80, 0x2AA39A80)
PSP_EXPORT_FUNC_NID(sceDdr_driver_397756C0, 0x397756C0)
PSP_EXPORT_FUNC_NID(sceDdr_driver_3D50DEC9, 0x3D50DEC9)
PSP_EXPORT_FUNC_NID(sceDdr_driver_4F30BFE8, 0x4F30BFE8)
PSP_EXPORT_FUNC_NID(sceDdr_driver_6DE74D80, 0x6DE74D80)
PSP_EXPORT_FUNC_NID(sceDdr_driver_77CD1FB3, 0x77CD1FB3)
PSP_EXPORT_FUNC_HASH(sceDdrFlush)
PSP_EXPORT_FUNC_NID(sceDdr_driver_95B9A692, 0x95B9A692)
PSP_EXPORT_FUNC_NID(sceDdr_driver_9F882141, 0x9F882141)
PSP_EXPORT_FUNC_NID(sceDdr_driver_CF07B9E2, 0xCF07B9E2)
PSP_EXPORT_FUNC_NID(sceDdr_driver_E0A39D3E, 0xE0A39D3E)
PSP_EXPORT_FUNC_NID(sceDdr_driver_F1005384, 0xF1005384)
PSP_EXPORT_END
PSP_END_EXPORTS

View File

@ -12,10 +12,9 @@
/* TODO: Reverse the sceDdrdb_driver library functions in openpsid.prx.*/
#include <stdio.h>
#include <stdlib.h>
#include <pspinit.h>
#include "../openpsid/ddrdb.h"
#include "../common/common.h"
#include "openpsid_ddrdb.h"
PSP_MODULE_INFO("sceMcctrl", 0x5006, 1, 1);
@ -745,4 +744,4 @@ int module_start(SceSize args, void *argp) {
*/
int module_reboot_before(SceSize args, void *argp) {
return 0;
}
}

View File

@ -4,9 +4,7 @@
TARGET = me_wrapper
OBJS = init.o main.o
LIBS =
PRX_EXPORTS = exports.exp
LIBS = -lsceSysreg_driver -lUtilsForKernel -lIoFileMgrForKernel -lsceSysEventForKernel -lSysclibForKernel -lSysMemForKernel -lInterruptManagerForKernel -lThreadManForKernel -lsceDdr_driver -lsceSyscon_driver -lsceLFatFs_driver -lsceWmd_driver
include ../../lib/build.mak

View File

@ -1,48 +0,0 @@
.set noreorder
#include "pspstub.s"
STUB_START "ThreadManForKernel",0x00010011,0x00040005
STUB_FUNC 0xB7D098C6,sceKernelCreateMutex
STUB_FUNC 0xB011B11F,sceKernelLockMutex
STUB_FUNC 0x6B30100F,sceKernelUnlockMutex
STUB_FUNC 0x0DDCD2C9,sceKernelTryLockMutex
STUB_END
STUB_START "sceWmd_driver",0x00090011,0x00010005
STUB_FUNC 0x7A0E484C,sceWmd_driver_7A0E484C
STUB_END
STUB_START "sceDdr_driver",0x00010011,0x00010005
STUB_FUNC 0x87D86769,sceDdrFlush
STUB_END
STUB_START "sceSyscon_driver",0x00010011,0x00010005
STUB_FUNC 0x9BC5E33B,sceSysconCtrlTachyonAvcPower
STUB_END
STUB_START "sceLFatFs_driver",0x00010011,0x00010005
STUB_FUNC 0x933F6E29,sceLfatfsWaitReady
STUB_END
STUB_START "UtilsForKernel",0x00090011,0x00010005
STUB_FUNC 0x6C6887EE,UtilsForKernel_6C6887EE
STUB_END
STUB_START "SysMemForKernel",0x00010011,0x00040005
STUB_FUNC 0xB4F00CB5,sceKernelGetCompiledSdkVersion
STUB_FUNC 0xFDC97D28,SysMemForKernel_FDC97D28
STUB_FUNC 0xD3CA555C,SysMemForKernel_D3CA555C
STUB_FUNC 0x22A114DC,sceKernelMemset32
STUB_FUNC 0xC4EEAF20,sceKernelQueryMemoryPartitionInfo
STUB_FUNC 0x7158CE7E,sceKernelAllocPartitionMemory
STUB_END
STUB_START "sceSysreg_driver",0x00010011,0x000c0005
STUB_FUNC 0x9BC5E33B,sceSysregGetTachyonVersion
STUB_FUNC 0xA5CC6025,sceSysregPllGetFrequency
STUB_FUNC 0x7AA8A8BE,sceSysregIntrEnd
STUB_FUNC 0x457FEBA9,sceSysregMeResetEnable
STUB_FUNC 0x48F1C4AD,sceSysregMeResetDisable
STUB_FUNC 0x1A27B224,sceSysregVmeResetEnable
STUB_FUNC 0xB73D3619,sceSysregVmeResetDisable
STUB_FUNC 0x0AE8E549,sceSysregAvcResetEnable
STUB_FUNC 0x55FF02E9,sceSysregAvcResetDisable
STUB_FUNC 0x38527743,sceSysregMeBusClockEnable
STUB_FUNC 0xC4C21CAB,sceSysregMeBusClockDisable
STUB_FUNC 0x61FAE917,sceSysregInterruptToOther
STUB_END

View File

@ -5,9 +5,15 @@
* See the file COPYING for copying permission.
*/
#include <pspkernel.h>
#include <pspsysevent.h>
#include <pspsysmem_kernel.h>
#include <stdarg.h>
#include "../common/common.h"
#include "avcodec_audiocodec.h"
#include "iofilemgr_kernel.h"
#include "sysmem_sysevent.h"
#include "sysmem_sysclib.h"
#include "me_wrapper.h"
PSP_MODULE_INFO("sceMeCodecWrapper", 0x1007, 1, 9);//I'm not sure if the versions are correct
@ -16,7 +22,11 @@ u32 module_sdk_version = 0x06060010;
int meStarted;
MERpc meRpc;
int interruptHandler(int a0, int SceMediaEngineRpcWait)
int sceMeCore_driver_FA398D71(int cmd, ...);
int sceMeCore_driver_635397BB(int cmd, ...);
int interruptHandler(int a0 __attribute__((unused)), int SceMediaEngineRpcWait)
{
sceKernelSetEventFlag(SceMediaEngineRpcWait, 1);
return -1;
@ -153,7 +163,8 @@ int sub_0x1000002(int arg)
int sub_0x1000f()
{
volatile int *hwAddress = (int*)0xbfc00700;
while (*hwAddress != -4);
while (*hwAddress != -4)
;
if (*(int*)0xbfc00718 == 0){
*(int*)0xbc100070 = *(int*)0xbc100070 & (~4);//clear 3rd bit
sceSysregAvcResetEnable();
@ -162,7 +173,7 @@ int sub_0x1000f()
return 0;
}
int eventHandler(int ev_id, char *ev_name, void *param, int *result)
int eventHandler(int ev_id, char *ev_name __attribute__((unused)), void *param, int *result __attribute__((unused)))
{
if (!meStarted)
return 0;
@ -192,9 +203,9 @@ int eventHandler(int ev_id, char *ev_name, void *param, int *result)
return 0;
}
PspSysEventHandler SceMeRpc = {sizeof(PspSysEventHandler), "SceMeRpc", 0x01ffff00, &eventHandler, 0,0, NULL, {0,0,0,0,0,0,0,0,0}};
SceSysEventHandler SceMeRpc = {sizeof(SceSysEventHandler), "SceMeRpc", 0x01ffff00, &eventHandler, 0,0, NULL, {0,0,0,0,0,0,0,0,0}};
int module_start(int argc, char *argv[])
int module_start(int argc __attribute__((unused)), void *argp __attribute__((unused)))
{
initRpc();
sceLfatfsWaitReady();
@ -223,7 +234,7 @@ int sceMeWrapperEnd()
return 0;
}
int module_reboot_phase(int argc, char *argv[])
int module_reboot_phase(int argc, void *argp __attribute__((unused)))
{
if (argc == 1)
sceMeWrapperEnd();
@ -289,7 +300,7 @@ int sceMePowerControlAvcPower(int arg0)
/**************************sceMeVideo_driver****************************/
int sub_000011E4(u32 *arg0, int error)
{
if (error == 0x80000003)
if (error == (int)0x80000003)
return -1;
arg0[2] = error;
return (error != -8) ? -3 : -4;
@ -297,15 +308,15 @@ int sub_000011E4(u32 *arg0, int error)
int sub_00001214(u32 *arg0, int error)
{
if (val == 0x80000003)
if (error == (int)0x80000003)
return -1;
arg0[2] = val;
return (val >= 0) ? -3 : -4;
arg0[2] = error;
return (error >= 0) ? -3 : -4;
}
int sceMeVideo_driver_C441994C(int arg0, u32 *arg1)
{
if (0x5100601 < arg1[0])
if (arg1[0] != 0x05100601)
return -2;
if (arg1[4] == 0)
return -1;
@ -348,7 +359,7 @@ int sceMeVideo_driver_C441994C(int arg0, u32 *arg1)
int unkVideo;
int sceMeVideo_driver_E8CD3C75(int arg0, u32 *arg1)
{
if (0x5100601 < arg1[0])
if (arg1[0] != 0x05100601)
return -2;
arg1[2] = 0;
int intr = sceKernelCpuSuspendIntr();
@ -390,7 +401,7 @@ int sceMeVideo_driver_E8CD3C75(int arg0, u32 *arg1)
//decode
int sceMeVideo_driver_8768915D(int arg0, u32 *arg1)
{
if (0x5100601 < arg1[0])
if (arg1[0] != 0x05100601)
return -2;
int ret;
arg1[2] = 0;
@ -451,7 +462,7 @@ int sceMeVideo_driver_8768915D(int arg0, u32 *arg1)
//Stop
int sceMeVideo_driver_4D78330C(int arg0, u32 *arg1)
{
if (0x5100601 < arg1[0])
if (arg1[0] != 0x05100601)
return -2;
arg1[2] = 0;
int ret;
@ -505,7 +516,7 @@ int sceMeVideo_driver_4D78330C(int arg0, u32 *arg1)
//Delete, FinishMJPEG
int sceMeVideo_driver_8DD56014(int arg0, u32 *arg1)
{
if (0x5100601 < arg1[0])
if (arg1[0] != 0x05100601)
return -2;
int ret;
int intr = sceKernelCpuSuspendIntr();
@ -539,7 +550,7 @@ int sceMeVideo_driver_8DD56014(int arg0, u32 *arg1)
//GetFrameCrop, SetMemory, ScanHeader, GetVersion, GetSEI, _893B32B1
int sceMeVideo_driver_6D68B223(int arg0, u32 arg1, u32 *codec_buffer)
{
if (0x5100601 < codec_buffer[0])
if (codec_buffer[0] != 0x05100601)
return -2;
int ret;
switch (arg1)
@ -634,44 +645,39 @@ int sceMeVideo_driver_21521BE5(int a0)
}
/**************************sceMeAudio_driver****************************/
int sub_00001240(int codec, unsigned long *codec_buffer, int error)
int sub_00001240(int codec, SceAudiocodecCodec *info, int error)
{
if (error == 0x80000003 || codec < 0x1000 || codec >= 0x1006)
if (error == (int)0x80000003 || codec < 0x1000 || codec >= 0x1006)
return -1;
switch (codec)
{
case 0x1000: //at3+
sceMeCore_driver_635397BB(106, &codec_buffer[2], codec_buffer[3]);
if (error>=256){
codec_buffer[9] = 0;
}
return error<256?-3:-4;
break;
sceMeCore_driver_635397BB(106, &info->err, info->edramAddr);
if (error >= 256)
info->unk36 = 0;
return error < 256 ? -3 : -4;
case 0x1001://at3
sceMeCore_driver_635397BB(113, &codec_buffer[2], codec_buffer[3]);
if (error>=256){
codec_buffer[9] = 0;
}
return error<256?-3:-4;
break;
sceMeCore_driver_635397BB(113, &info->err, info->edramAddr);
if (error >= 256)
info->unk36 = 0;
return error < 256 ? -3 : -4;
case 0x1002://mp3
codec_buffer[2] = (u32)error;
info->err = error;
return -3;
break;
case 0x1003://aac
sceMeCore_driver_635397BB(145, &codec_buffer[2], codec_buffer[3]);
if (error>=256){
codec_buffer[9] = 0;
}
return error<256?-3:-4;
break;
sceMeCore_driver_635397BB(145, &info->err, info->edramAddr);
if (error >= 256)
info->unk36 = 0;
return error < 256 ? -3 : -4;
case 0x1005://wma
sceMeCore_driver_635397BB(230, &codec_buffer[2], codec_buffer[3]);
if (error<0){
codec_buffer[9] = 0;
}
return error>=0?-3:-4;
break;
sceMeCore_driver_635397BB(230, &info->err, info->edramAddr);
if (error < 0)
info->unk36 = 0;
return error >=0 ? -3 : -4;
}
return -1;
}
@ -701,10 +707,10 @@ int sceMeAudio_driver_9A9E21EE(u32 codec, SceAudiocodecCodec *info) //same -310C
ret = sceMeCore_driver_FA398D71(140, info);
break;
case 0x1003:
ret = sceMeCore_driver_FA398D71(144, info->inBuf, &info->unk28, info->outBuf, &info->unk36, info->unk12);
ret = sceMeCore_driver_FA398D71(144, info->inBuf, &info->unk28, info->outBuf, &info->unk36, info->edramAddr);
break;
case 0x1005:
ret = sceMeCore_driver_FA398D71(229, info->inBuf, info->unk60, &info->unk64, info->outBuf, &info->unk36, &info->unk68, info->unk12);
ret = sceMeCore_driver_FA398D71(229, info->inBuf, info->unk60, &info->unk64, info->outBuf, &info->unk36, &info->unk68, info->edramAddr);
break;
default:
return -1;
@ -800,7 +806,7 @@ int unk[] = {//guessed, codec_buffer[10] should be 4 or 6, got 8744 from a snd0
0x00000098};
//init
int sceMeAudio_driver_6AD33F60(u32 codec, SceAudiocodecInit *info)
int sceMeAudio_driver_6AD33F60(u32 codec, SceAudiocodecCodec *info)
{
if (info->unk0 != 0x05100601)
return -2;
@ -854,7 +860,7 @@ int sceMeAudio_driver_6AD33F60(u32 codec, SceAudiocodecInit *info)
info->unk52 = 2;
break;
case 0x1002://mp3
ret = sceMeCore_driver_635397BB(139, info->unk12);
ret = sceMeCore_driver_635397BB(139, info->edramAddr);
break;
case 0x1003://aac
switch (*(int*)&info->unk40){
@ -898,53 +904,59 @@ int sceMeAudio_driver_6AD33F60(u32 codec, SceAudiocodecInit *info)
return sub_00001240(codec, info, ret);
return ret;
}
//probably for umd(only at3/+)
int sceMeAudio_driver_B57F033A(u32 codec, unsigned long *codec_buffer){
if (0x5100601 < codec_buffer[0]) return -2;
codec_buffer[2] = 0;
int sceMeAudio_driver_B57F033A(u32 codec, SceAudiocodecCodec *info)
{
if (info->unk0 != 0x05100601)
return -1;
info->err = 0;
int ret;
if (codec == 0x1000){
ret = sceMeCore_driver_635397BB(99, &codec_buffer[13], &codec_buffer[15], &codec_buffer[16], &codec_buffer[10]);
if (ret >= 0){
codec_buffer[2] = 0;
if (codec_buffer[15] != -1){
switch (codec)
{
case 0x1000:
ret = sceMeCore_driver_635397BB(99, &info->unk52, &info->unk60, &info->unk64, &info->unk40);
if (ret >= 0)
{
info->err = 0;
if (info->unk60 != -1)
return -1;
}
codec_buffer[18] = codec_buffer[15];
ret = sceMeCore_driver_635397BB(103, codec_buffer[13], 1, codec_buffer[16], 1, codec_buffer[3]);
if (ret >= 0){
ret = sceMeCore_driver_635397BB(105, &codec_buffer[11], codec_buffer[3]);
if (ret >= 0){
ret = sceMeCore_driver_635397BB(100, &codec_buffer[17], codec_buffer[3]);
if (ret >= 0){
ret = sceMeCore_driver_FA398D71(104, codec_buffer[5], codec_buffer[3]);
}
info->unk72 = info->unk60;
ret = sceMeCore_driver_635397BB(103, info->unk52, 1, info->unk64, 1, info->edramAddr);
if (ret >= 0)
{
ret = sceMeCore_driver_635397BB(105, &info->unk44, info->edramAddr);
if (ret >= 0)
{
ret = sceMeCore_driver_635397BB(100, &info->unk68, info->edramAddr);
if (ret >= 0)
ret = sceMeCore_driver_FA398D71(104, info->unk20, info->edramAddr);
}
}
}
}
else if (codec == 0x1001){
if ((u32)(codec_buffer[10]-14) >= 2){
break;
case 0x1001:
if (*(int*)&info->unk40 < 14 || *(int*)&info->unk40 >= 16)
return -1;
}
codec_buffer[13] = 1;
codec_buffer[12] = unk[codec_buffer[10]*2+1];
ret = sceMeCore_driver_635397BB(115, unk[codec_buffer[10]*2], 44100, unk[codec_buffer[10]*2+1], codec_buffer[3]);
}
else{
info->unk52 = 1;
info->unk48 = unk[*(int*)&info->unk40 * 2 + 1];
ret = sceMeCore_driver_635397BB(115, unk[*(int*)&info->unk40 * 2], 44100, unk[*(int*)&info->unk40 * 2 + 1], info->edramAddr);
break;
default:
return -1;
}
if (ret < 0){
return sub_00001240(codec, codec_buffer, ret);
}
if (ret < 0)
return sub_00001240(codec, info, ret);
return ret;
}
//get info?
int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, unsigned long *codec_buffer)
int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, SceAudiocodecCodec *info)
{
if (codec_buffer[0] > 0x05100601)
if (info->unk0 != 0x05100601)
return -2;
codec_buffer[2] = 0;
info->err = 0;
int ret;
switch (arg1)
{
@ -973,17 +985,17 @@ int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, unsigned long *codec_buffer)
break;
}
ret = sceMeCore_driver_FA398D71(index);
codec_buffer[1] = ret;
info->unk4 = ret;
return ret;
}
case 4: {
if (codec != 4096){
if (codec != 4096) {
return -1;
}
//at3+ checkneed mem
ret = sceMeCore_driver_635397BB(99, &codec_buffer[13], &codec_buffer[15], &codec_buffer[16], &codec_buffer[10]);
if (ret < 0){
return sub_00001240(codec, codec_buffer, ret);
ret = sceMeCore_driver_635397BB(99, &info->unk52, &info->unk60, &info->unk64, &info->unk40);
if (ret < 0) {
return sub_00001240(codec, info, ret);
}
return ret;
}
@ -991,12 +1003,12 @@ int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, unsigned long *codec_buffer)
if (codec != 4098){
return -1;
}
ret = sceMeCore_driver_635397BB(137, codec_buffer[10], codec_buffer[3]);
if (ret == 0){
ret = sceMeCore_driver_635397BB(130, codec_buffer[6], &codec_buffer[11], &codec_buffer[14], codec_buffer[3]);
ret = sceMeCore_driver_635397BB(137, info->unk40, info->edramAddr);
if (ret == 0) {
ret = sceMeCore_driver_635397BB(130, info->inBuf, &info->unk44, &info->unk56, info->edramAddr);
}
if (ret < 0){
return sub_00001240(codec, codec_buffer, ret);
return sub_00001240(codec, info, ret);
}
return ret;
}
@ -1004,25 +1016,36 @@ int sceMeAudio_driver_C300D466(u32 codec, u32 arg1, unsigned long *codec_buffer)
return -1;
}
}
/**************************sceMeMemory_driver****************************/
void *sceMeMalloc(int size){
void *sceMeMalloc(int size)
{
return (void*)sceMeCore_driver_FA398D71(384, size);
}
void *sceMeCalloc(int num, int size){
void *sceMeCalloc(int num, int size)
{
return (void*)sceMeCore_driver_FA398D71(386, num, size);
}
void sceMeFree(void *ptr){
void sceMeFree(void *ptr)
{
sceMeCore_driver_FA398D71(385, ptr);
}
/**************************sceMeCore_driver****************************/
int sceMeRpcLock(){
int sceMeRpcLock()
{
return sceKernelLockMutex(meRpc.mutex, 1, 0);
}
int sceMeRpcUnlock(){
int sceMeRpcUnlock()
{
return sceKernelUnlockMutex(meRpc.mutex, 1);
}
//me*img.img contains 2 sets of compressed data(except maybe sd), code and contents of main memory
__attribute__((noreturn)) void decompressAndRunMeImage(void *data){
__attribute__((noreturn)) void decompressAndRunMeImage(void *data)
{
void *end = data;
int ret;
if (0x3fffff < ((u32)data & ~0x88000000)){
@ -1030,31 +1053,33 @@ __attribute__((noreturn)) void decompressAndRunMeImage(void *data){
}
*(int*)0xbfc00700 = -4;
if (memcmp(data, "KL4E", 4) == 0){
ret = UtilsForKernel_6C6887EE((void*)0x88300000, (void*)((u32)data & ~0x88300000), data + 4, &end);//decompress meimg.img
ret = UtilsForKernel_6C6887EE((void*)0x88300000, (u32)data & ~0x88300000, data + 4, &end);//decompress meimg.img
if (ret >= 0){
sceKernelDcacheWritebackInvalidateAll() ;
sceKernelIcacheInvalidateAll();
((void (*)(void*))0x88300000)(end);
}
}
sceKernelMemset32(end, 0, (void*)0x88400000 - (u32)end);
sceKernelMemset32(end, 0, 0x88400000 - (u32)end);
*(int*)0xBFC00700 = -5;
*(int*)0xBFC00710 = -2;
//dead end
asm volatile("haltLoop:\n"
".word 0x70000000\n"
"b haltLoop\n"
"nop\n");
pspHalt();
for (;;)
;
}
int decrypt(void *data, int size){
int decrypt(void *data, int size)
{
int ret, newSize;
ret = sceWmd_driver_7A0E484C(data, size, &newSize);
if (ret < 0){
if (ret < 0) {
return ret;
}
return newSize;
}
int sub_00001C30(void* data, int wait){
int sub_00001C30(void* data, int wait)
{
sceSysregMeResetEnable();
sceSysregMeBusClockEnable();
int size = (u32)me_boot_code_end - (u32)me_boot_code;
@ -1085,7 +1110,8 @@ int sub_00001C30(void* data, int wait){
int sceMeBootStart(u32 arg)
{
if (arg >= 5) return 0x80000102;
if (arg >= 5)
return 0x80000102;
int genArg = arg;
u32 tachyon = sceSysregGetTachyonVersion();
if (tachyon > 0x4fffff && genArg != 2) // > 01g
@ -1128,7 +1154,7 @@ int sceMeBootStart(u32 arg)
sceIoClose(fd);
if (read != size){
sceMeRpcUnlock();
return (read<0)?read:0x80000022;
return (read < 0) ? read : (int)0x80000022;
}
decrypt(address, read);
sub_00001C30(address, 1);
@ -1138,27 +1164,34 @@ int sceMeBootStart(u32 arg)
return 0;
}
int sceMeCore_driver_635397BB(int index, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7)
int sceMeCore_driver_635397BB(int cmd, ...)
{
va_list ap;
va_start(ap, cmd);
sceKernelDcacheWritebackInvalidateAll();
return sceMeCore_driver_FA398D71(index, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
int ret = sceMeCore_driver_FA398D71(cmd, va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int));
va_end(ap);
return ret;
}
int sceMeCore_driver_FA398D71(int index, int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7)
int sceMeCore_driver_FA398D71(int cmd, ...)
{
va_list ap;
va_start(ap, cmd);
int ret = sceKernelLockMutex(meRpc.mutex, 1, 0);
if (ret < 0)
return ret;
int* meTable = (int*)0xbfc00600;
meTable[0] = index;
meTable[2] = arg0;
meTable[3] = arg1;
meTable[4] = arg2;
meTable[5] = arg3;
meTable[6] = arg4;
meTable[7] = arg5;
meTable[8] = arg6;
meTable[9] = arg7;
meTable[0] = cmd;
meTable[2] = va_arg(ap, int);
meTable[3] = va_arg(ap, int);
meTable[4] = va_arg(ap, int);
meTable[5] = va_arg(ap, int);
meTable[6] = va_arg(ap, int);
meTable[7] = va_arg(ap, int);
meTable[8] = va_arg(ap, int);
meTable[9] = va_arg(ap, int);
va_end(ap);
sceDdrFlush(5);
sceSysregInterruptToOther();
sceKernelWaitEventFlag(meRpc.event, 1, PSP_EVENT_WAITCLEAR, 0, 0);

View File

@ -9,6 +9,7 @@ typedef struct{
int event;
int sema;
}MERpc;
#define PSP_O_UNKNOWN0 0x04000000
int sceMeRpcLock();
@ -17,29 +18,6 @@ int sub_00001C30(void* data, int wait);
int sceMeBootStart(unsigned int bootCode);
int sceMePowerControlAvcPower(int arg0);
extern void me_boot_code_end();
extern void me_boot_code();
extern void *memcpy(void *, void *, int);
extern int memcmp(void *, void *, int);
extern void* SysMemForKernel_5339A163();
extern int SysMemForKernel_374E8E66();
//Previous declaration was 'extern void* sceKernelMemset32(void*, int, void*);'
extern void* sceKernelMemset32(void*, char, int);
extern int sceSysregAvcResetEnable();
extern int sceSysregAvcResetDisable();
extern int sceSysregInterruptToOther();
extern float sceSysregPllGetFrequency();
extern unsigned int sceSysregGetTachyonVersion();
extern int sceSysregIntrEnd();
extern int sceDdrFlush(int);
extern int sceKernelCreateMutex(char *, int, int, int);
extern int sceKernelTryLockMutex(int, int);
extern int sceKernelLockMutex(int, int, int);
extern int sceKernelUnlockMutex(int, int);
extern int sceKernelEnableIntr(int);
extern void sceSysconCtrlTachyonAvcPower(int);
extern int UtilsForKernel_6C6887EE(void*, void*, void*, void**);
extern void sceKernelIcacheInvalidateAll();
extern int sceWmd_driver_7A0E484C(void* , int, int*);

91
src/mesg_led/exports.exp Normal file
View File

@ -0,0 +1,91 @@
# Export file automatically generated with prxtool
PSP_BEGIN_EXPORTS
PSP_EXPORT_START(syslib, 0x0000, 0x8000)
PSP_EXPORT_FUNC_HASH(module_start)
PSP_EXPORT_VAR_HASH(module_info)
PSP_EXPORT_VAR_HASH(module_sdk_version)
PSP_EXPORT_END
PSP_EXPORT_START(sceMesgLed_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_21AFFAAC, 0x21AFFAAC)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_2CB700EC, 0x2CB700EC)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_308D37FF, 0x308D37FF)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_31D6D8AA, 0x31D6D8AA)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_337D0DD3, 0x337D0DD3)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_3783B0AD, 0x3783B0AD)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_4BE02A12, 0x4BE02A12)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_4EAB9850, 0x4EAB9850)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_52B6E552, 0x52B6E552)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_5C3A61FE, 0x5C3A61FE)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_66B348B2, 0x66B348B2)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_6BF453D3, 0x6BF453D3)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_792A6126, 0x792A6126)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_91E0A9AD, 0x91E0A9AD)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_9E3C79D9, 0x9E3C79D9)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_B2CDAC3F, 0xB2CDAC3F)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_B2D95FDF, 0xB2D95FDF)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_B5596BE4, 0xB5596BE4)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C00DAD75, 0xC00DAD75)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C79E3488, 0xC79E3488)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C7D1C16B, 0xC7D1C16B)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_C9ABD2F2, 0xC9ABD2F2)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_CED2C075, 0xCED2C075)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_EBB4613D, 0xEBB4613D)
PSP_EXPORT_FUNC_NID(sceMesgLed_driver_F8485C9C, 0xF8485C9C)
PSP_EXPORT_END
PSP_EXPORT_START(sceResmap_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_HASH(sceResmapPrepareByPolling)
PSP_EXPORT_FUNC_HASH(sceResmapPrepare)
PSP_EXPORT_END
PSP_EXPORT_START(sceDbman_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_HASH(sceDbmanSelectByPolling)
PSP_EXPORT_FUNC_HASH(sceDbmanSelect)
PSP_EXPORT_END
PSP_EXPORT_START(sceNwman_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(sceNwman_driver_9555D68D, 0x9555D68D)
PSP_EXPORT_END
PSP_EXPORT_START(sceResmgr_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(sceResmgr_driver_8E6C62C8, 0x8E6C62C8)
PSP_EXPORT_FUNC_NID(sceResmgr_driver_9DC14891, 0x9DC14891)
PSP_EXPORT_END
PSP_EXPORT_START(sceResmgr, 0x0011, 0x4009)
PSP_EXPORT_FUNC_NID(sceResmgr_8E6C62C8, 0x8E6C62C8)
PSP_EXPORT_FUNC_NID(sceResmgr_9DC14891, 0x9DC14891)
PSP_EXPORT_END
PSP_EXPORT_START(sceMesgd_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(sceMesgd_driver_102DC8AF, 0x102DC8AF)
PSP_EXPORT_FUNC_NID(sceMesgd_driver_ADD0CB66, 0xADD0CB66)
PSP_EXPORT_END
PSP_EXPORT_START(sceWmd_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(sceWmd_driver_7A0E484C, 0x7A0E484C)
PSP_EXPORT_FUNC_NID(sceWmd_driver_B7CE9041, 0xB7CE9041)
PSP_EXPORT_END
PSP_EXPORT_START(sceDbsvr_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_HASH(sceDbsvrGetData)
PSP_EXPORT_END
PSP_EXPORT_START(sceMesgIns_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(sceMesgIns_driver_4A03F940, 0x4A03F940)
PSP_EXPORT_FUNC_NID(sceMesgIns_driver_D062B635, 0xD062B635)
PSP_EXPORT_END
PSP_EXPORT_START(scePauth_driver, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(scePauth_driver_98B83B5D, 0x98B83B5D)
PSP_EXPORT_FUNC_NID(scePauth_driver_F7AA47F6, 0xF7AA47F6)
PSP_EXPORT_END
PSP_EXPORT_START(scePauth, 0x0011, 0x4009)
PSP_EXPORT_FUNC_NID(scePauth_98B83B5D, 0x98B83B5D)
PSP_EXPORT_FUNC_NID(scePauth_F7AA47F6, 0xF7AA47F6)
PSP_EXPORT_END
PSP_END_EXPORTS

View File

@ -4,7 +4,5 @@
TARGET = sysmem
OBJS = start.o debug.o sysevent.o suspend.o assert.o sysclib.o utils.o kdebug.o main.o
PRX_EXPORTS=exports.exp
include ../../lib/build.mak

379
src/sysmem/exports.exp Normal file
View File

@ -0,0 +1,379 @@
# Export file automatically generated with prxtool
PSP_BEGIN_EXPORTS
PSP_EXPORT_START(syslib, 0x0000, 0x8000)
PSP_EXPORT_FUNC_HASH(SysMemInit)
PSP_EXPORT_VAR_HASH(module_info)
PSP_EXPORT_VAR_HASH(module_sdk_version)
PSP_EXPORT_END
PSP_EXPORT_START(SysMemForKernel, 0x0011, 0x0001)
PSP_EXPORT_FUNC_NID(sceKernelSysMemMaxFreeMemSize, 0x00154B6D)
PSP_EXPORT_FUNC_NID(sceKernelPartitionTotalFreeMemSize, 0x0115B0F8)
PSP_EXPORT_FUNC_NID(sceKernelHeapTotalFreeSize, 0x01810023)
PSP_EXPORT_FUNC_NID(sceKernelCreateUIDtype, 0x034129FB)
PSP_EXPORT_FUNC_NID(sceKernelGetModel, 0x07C586A1)
PSP_EXPORT_FUNC_NID(sceKernelCreateUID, 0x0A34C078)
PSP_EXPORT_FUNC_NID(SysMemForKernel_13EE28DA, 0x13EE28DA)
PSP_EXPORT_FUNC_NID(sceKernelPartitionMaxFreeMemSize, 0x13F4A0DE)
PSP_EXPORT_FUNC_NID(sceKernelSetUmdCacheOn, 0x1404C1AA)
PSP_EXPORT_FUNC_NID(sceKernelMemcpy, 0x181065AB)
PSP_EXPORT_FUNC_NID(sceKernelSetGprofFunction, 0x1A726C89)
PSP_EXPORT_FUNC_NID(sceKernelJointMemoryBlock, 0x1AB50974)
PSP_EXPORT_FUNC_NID(sceKernelMemoryExtendSize, 0x1E6BB8E8)
PSP_EXPORT_FUNC_NID(sceKernelDeleteUIDtype, 0x1ECAB5C4)
PSP_EXPORT_FUNC_NID(sceKernelLookupUIDFunction, 0x21487E5B)
PSP_EXPORT_FUNC_NID(sceKernelMemset32, 0x22A114DC)
PSP_EXPORT_FUNC_NID(sceKernelCallUIDObjCommonFunction, 0x235C2646)
PSP_EXPORT_FUNC_NID(sceKernelAllocHeapMemory, 0x23D81675)
PSP_EXPORT_FUNC_NID(SysMemForKernel_2A8B8B2D, 0x2A8B8B2D)
PSP_EXPORT_FUNC_NID(sceKernelRegisterGetIdFunc, 0x310802A9)
PSP_EXPORT_FUNC_NID(sceKernelMemoryOpenSize, 0x35170484)
PSP_EXPORT_FUNC_NID(sceKernelDeleteUID, 0x361F0F88)
PSP_EXPORT_FUNC_NID(sceKernelGetSystemStatus, 0x36C503A9)
PSP_EXPORT_FUNC_NID(sceKernelPrintUidListAll, 0x3E384043)
PSP_EXPORT_FUNC_NID(sceKernelGetUIDname, 0x3EC451EB)
PSP_EXPORT_FUNC_NID(SysMemForKernel_40B744A4, 0x40B744A4)
PSP_EXPORT_FUNC_NID(sceKernelGetQTGP3, 0x43E0A861)
PSP_EXPORT_FUNC_NID(sceKernelGetUIDcontrolBlockWithType, 0x44BDF332)
PSP_EXPORT_FUNC_NID(sceKernelSysMemTotalFreeMemSize, 0x45332D44)
PSP_EXPORT_FUNC_NID(sceKernelGetQTGP2, 0x474CA24F)
PSP_EXPORT_FUNC_NID(sceKernelQueryLowheapInfo, 0x476B244F)
PSP_EXPORT_FUNC_NID(sceKernelSetCompilerVersion, 0x476F687A)
PSP_EXPORT_FUNC_NID(sceKernelGetAllowReplaceUmd, 0x4972F9D1)
PSP_EXPORT_FUNC_NID(sceKernelGetInitialRandomValue, 0x4A325AA0)
PSP_EXPORT_FUNC_NID(sceKernelSetSystemStatus, 0x521AC5A4)
PSP_EXPORT_FUNC_NID(sceKernelPartitionTotalMemSize, 0x53D50AC2)
PSP_EXPORT_FUNC_NID(sceKernelGetSysMemoryInfo, 0x57FA5AF4)
PSP_EXPORT_FUNC_NID(sceKernelCreateHeap, 0x58148F07)
PSP_EXPORT_FUNC_NID(sceKernelCallGcovFunction, 0x5FE712E9)
PSP_EXPORT_FUNC_NID(sceKernelSysMemRealMemorySize, 0x6D9E2DD6)
PSP_EXPORT_FUNC_NID(sceKernelGetCompilerVersion, 0x6E4F9F62)
PSP_EXPORT_FUNC_NID(sceKernelAllocPartitionMemory, 0x7158CE7E)
PSP_EXPORT_FUNC_NID(sceKernelCallUIDFunction, 0x757EAC7D)
PSP_EXPORT_FUNC_NID(sceKernelQueryHeapInfo, 0x79BD1975)
PSP_EXPORT_FUNC_NID(sceKernelMemoryShrinkSize, 0x7A7CD7BC)
PSP_EXPORT_FUNC_NID(sceKernelCallUIDObjFunction, 0x7D50CE82)
PSP_EXPORT_FUNC_NID(sceKernelHoldUID, 0x7DDA0E01)
PSP_EXPORT_FUNC_NID(SysMemForKernel_7FF2F35A, 0x7FF2F35A)
PSP_EXPORT_FUNC_NID(SysMemForKernel_807179E7, 0x807179E7)
PSP_EXPORT_FUNC_NID(sceKernelSetDdrMemoryProtection, 0x83B5226D)
PSP_EXPORT_FUNC_NID(sceKernelApiEvaluationReport, 0x845310CF)
PSP_EXPORT_FUNC_NID(sceKernelFreeHeapMemory, 0x87C2AB85)
PSP_EXPORT_FUNC_NID(sceKernelMemset, 0x8AE776AF)
PSP_EXPORT_FUNC_NID(sceKernelSizeLockMemoryBlock, 0x8E742787)
PSP_EXPORT_FUNC_NID(sceKernelSetRebootKernel, 0x96A3CE2C)
PSP_EXPORT_FUNC_NID(sceKernelSetDNAS, 0x982A4779)
PSP_EXPORT_FUNC_NID(sceKernelMemmoveWithFill, 0x9B20ACEF)
PSP_EXPORT_FUNC_NID(sceKernelMemmove, 0x9BAC123D)
PSP_EXPORT_FUNC_NID(sceKernelSetQTGP2, 0x9E5B1ACB)
PSP_EXPORT_FUNC_NID(sceKernelGetUIDtype, 0x9F205D3E)
PSP_EXPORT_FUNC_NID(SysMemForKernel_A03CB480, 0xA03CB480)
PSP_EXPORT_FUNC_NID(SysMemForKernel_A0A9185A, 0xA0A9185A)
PSP_EXPORT_FUNC_NID(sceKernelRenameUID, 0xA7622297)
PSP_EXPORT_FUNC_NID(sceKernelGetUidmanCB, 0xAC12F678)
PSP_EXPORT_FUNC_NID(sceKernelReleaseUID, 0xB0CA8A4E)
PSP_EXPORT_FUNC_NID(sceKernelGetCompiledSdkVersion, 0xB4F00CB5)
PSP_EXPORT_FUNC_NID(sceKernelCopyGameInfo, 0xB9B7281A)
PSP_EXPORT_FUNC_NID(sceKernelGetDNAS, 0xBFD53FB7)
PSP_EXPORT_FUNC_NID(SysMemForKernel_BFE08689, 0xBFE08689)
PSP_EXPORT_FUNC_NID(sceKernelFreePartitionMemory, 0xC1A26C6F)
PSP_EXPORT_FUNC_NID(sceKernelGetAWeDramSaveSize, 0xC4D3A378)
PSP_EXPORT_FUNC_NID(sceKernelQueryMemoryPartitionInfo, 0xC4EEAF20)
PSP_EXPORT_FUNC_NID(sceKernelApiEvaluationInit, 0xC5EC364C)
PSP_EXPORT_FUNC_NID(sceKernelDevkitVersion, 0xC886B169)
PSP_EXPORT_FUNC_NID(sceKernelGetUIDcontrolBlock, 0xC90B0992)
PSP_EXPORT_FUNC_NID(SysMemForKernel_CC31DEAD, 0xCC31DEAD)
PSP_EXPORT_FUNC_NID(sceKernelGetId, 0xD0C1460D)
PSP_EXPORT_FUNC_NID(sceKernelCreateUIDtypeInherit, 0xD222DAA7)
PSP_EXPORT_FUNC_NID(sceKernelGetMEeDramSaveSize, 0xD3CA555C)
PSP_EXPORT_FUNC_NID(sceKernelDeleteHeap, 0xDD6512D0)
PSP_EXPORT_FUNC_NID(sceKernelGetAWeDramSaveAddr, 0xE0EB8CBE)
PSP_EXPORT_FUNC_NID(sceKernelIsHold, 0xE13DDC87)
PSP_EXPORT_FUNC_NID(sceKernelSearchUIDbyName, 0xE3F9C38E)
PSP_EXPORT_FUNC_NID(sceKernelMemoryCloseSize, 0xE5FB2EE5)
PSP_EXPORT_FUNC_NID(sceKernelRebootKernel, 0xE73FBC0B)
PSP_EXPORT_FUNC_NID(sceKernelCallGprofFunction, 0xE7A3F4D5)
PSP_EXPORT_FUNC_NID(sceKernelQueryMemoryBlockInfo, 0xE860BE8F)
PSP_EXPORT_FUNC_NID(sceKernelFillFreeBlock, 0xEA1CABF1)
PSP_EXPORT_FUNC_NID(sceKernelGetGameInfo, 0xEF29061C)
PSP_EXPORT_FUNC_NID(sceKernelGetBlockHeadAddr, 0xF12A62F7)
PSP_EXPORT_FUNC_NID(sceKernelSetAllowReplaceUmd, 0xF19BA38D)
PSP_EXPORT_FUNC_NID(sceKernelAllocHeapMemoryWithOption, 0xF2284ECC)
PSP_EXPORT_FUNC_NID(SysMemForKernel_F3BDB718, 0xF3BDB718)
PSP_EXPORT_FUNC_NID(sceKernelRegisterApiEvaluation, 0xF5153060)
PSP_EXPORT_FUNC_NID(sceKernelGetSysmemIdList, 0xF5228C40)
PSP_EXPORT_FUNC_NID(sceKernelSeparateMemoryBlock, 0xF7E78B33)
PSP_EXPORT_FUNC_NID(sceKernelApiEvaliationAddData, 0xF8F54A95)
PSP_EXPORT_FUNC_NID(sceKernelQueryMemoryInfo, 0xFAF29F34)
PSP_EXPORT_FUNC_NID(sceKernelResizeMemoryBlock, 0xFB5BEB66)
PSP_EXPORT_FUNC_NID(sceKernelSetQTGP3, 0xFC639A2B)
PSP_EXPORT_FUNC_NID(sceKernelSetGcovFunction, 0xFD15D334)
PSP_EXPORT_FUNC_NID(sceKernelSysMemMemSize, 0xFDBDEB5C)
PSP_EXPORT_FUNC_NID(sceKernelGetMEeDramSaveAddr, 0xFDC97D28)
PSP_EXPORT_FUNC_NID(sceKernelGetUsersystemLibWork, 0xFE3CF2BC)
PSP_EXPORT_FUNC_NID(sceKernelIsKindOf, 0xFFC63884)
PSP_EXPORT_END
PSP_EXPORT_START(SysMemUserForUser, 0x0011, 0x4000)
PSP_EXPORT_FUNC_NID(SysMemUserForUser_057E7380, 0x057E7380)
PSP_EXPORT_FUNC_HASH(sceKernelPrintf)
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion603_605, 0x1B4217BC)
PSP_EXPORT_FUNC_HASH(sceKernelAllocPartitionMemory)
PSP_EXPORT_FUNC_HASH(sceKernelQueryMemoryInfo)
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion380_390, 0x315AD3A0)
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion370, 0x342061E5)
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion600_602, 0x35669D4C)
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion606, 0x358CA1BB)
PSP_EXPORT_FUNC_HASH(sceKernelDevkitVersion)
PSP_EXPORT_FUNC_NID(sceKernelFreeMemoryBlock, 0x50F61D8A)
PSP_EXPORT_FUNC_HASH(sceKernelSetCompiledSdkVersion)
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion507, 0x7893F79A)
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion500_505, 0x91DE343C)
PSP_EXPORT_FUNC_NID(SysMemUserForUser_945E45DA, 0x945E45DA)
PSP_EXPORT_FUNC_HASH(sceKernelGetBlockHeadAddr)
PSP_EXPORT_FUNC_HASH(sceKernelMaxFreeMemSize)
PSP_EXPORT_FUNC_NID(sceKernelSetUsersystemLibWork, 0xA6848DF8)
PSP_EXPORT_FUNC_NID(sceKernelTotalMemSize, 0xACBD88CA)
PSP_EXPORT_FUNC_HASH(sceKernelFreePartitionMemory)
PSP_EXPORT_FUNC_NID(SysMemUserForUser_D8DE5C1E, 0xD8DE5C1E)
PSP_EXPORT_FUNC_NID(sceKernelGetMemoryBlockAddr, 0xDB83A952)
PSP_EXPORT_FUNC_NID(sceKernelSetCompiledSdkVersion395, 0xEBD5C3E6)
PSP_EXPORT_FUNC_HASH(sceKernelSetCompilerVersion)
PSP_EXPORT_FUNC_HASH(sceKernelTotalFreeMemSize)
PSP_EXPORT_FUNC_HASH(sceKernelGetCompiledSdkVersion)
PSP_EXPORT_FUNC_NID(sceKernelAllocMemoryBlock, 0xFE707FDF)
PSP_EXPORT_END
PSP_EXPORT_START(SysclibForKernel, 0x0011, 0x0001)
PSP_EXPORT_FUNC_HASH(bcopy)
PSP_EXPORT_FUNC_HASH(strstr)
PSP_EXPORT_FUNC_HASH(strpbrk)
PSP_EXPORT_FUNC_HASH(memset)
PSP_EXPORT_FUNC_HASH(wmemset)
PSP_EXPORT_FUNC_HASH(rindex)
PSP_EXPORT_FUNC_HASH(look_ctype_table)
PSP_EXPORT_FUNC_HASH(tolower)
PSP_EXPORT_FUNC_HASH(strcat)
PSP_EXPORT_FUNC_HASH(strtol)
PSP_EXPORT_FUNC_HASH(strrchr)
PSP_EXPORT_FUNC_HASH(strlen)
PSP_EXPORT_FUNC_HASH(__umoddi3)
PSP_EXPORT_FUNC_HASH(memchr)
PSP_EXPORT_FUNC_HASH(strtoul)
PSP_EXPORT_FUNC_HASH(sprintf)
PSP_EXPORT_FUNC_HASH(strncmp)
PSP_EXPORT_FUNC_HASH(__udivdi3)
PSP_EXPORT_FUNC_HASH(bcmp)
PSP_EXPORT_FUNC_HASH(memcmp)
PSP_EXPORT_FUNC_HASH(bzero)
PSP_EXPORT_FUNC_HASH(prnt)
PSP_EXPORT_FUNC_HASH(strnlen)
PSP_EXPORT_FUNC_HASH(memmove)
PSP_EXPORT_FUNC_HASH(memcpy)
PSP_EXPORT_FUNC_HASH(strchr)
PSP_EXPORT_FUNC_HASH(strncpy)
PSP_EXPORT_FUNC_HASH(strcmp)
PSP_EXPORT_FUNC_HASH(snprintf)
PSP_EXPORT_FUNC_HASH(toupper)
PSP_EXPORT_FUNC_HASH(index)
PSP_EXPORT_FUNC_HASH(__udivmoddi4)
PSP_EXPORT_FUNC_HASH(strcpy)
PSP_EXPORT_END
PSP_EXPORT_START(sceSysEventForKernel, 0x0011, 0x0001)
PSP_EXPORT_FUNC_HASH(sceKernelSysEventDispatch)
PSP_EXPORT_FUNC_HASH(sceKernelReferSysEventHandler)
PSP_EXPORT_FUNC_HASH(sceKernelIsRegisterSysEventHandler)
PSP_EXPORT_FUNC_HASH(sceKernelRegisterSysEventHandler)
PSP_EXPORT_FUNC_HASH(sceKernelUnregisterSysEventHandler)
PSP_EXPORT_END
PSP_EXPORT_START(sceSuspendForKernel, 0x0011, 0x0001)
PSP_EXPORT_FUNC_HASH(sceKernelPowerTick)
PSP_EXPORT_FUNC_HASH(sceKernelDispatchResumeHandlers)
PSP_EXPORT_FUNC_HASH(sceKernelPowerUnlock)
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemLock)
PSP_EXPORT_FUNC_NID(sceSuspendForKernel_67B59042, 0x67B59042)
PSP_EXPORT_FUNC_HASH(sceKernelDispatchSuspendHandlers)
PSP_EXPORT_FUNC_HASH(sceKernelRegisterSuspendHandler)
PSP_EXPORT_FUNC_HASH(sceKernelPowerRebootStart)
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemTryLock)
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemUnlock)
PSP_EXPORT_FUNC_NID(sceSuspendForKernel_B2C9640B, 0xB2C9640B)
PSP_EXPORT_FUNC_HASH(sceKernelRegisterResumeHandler)
PSP_EXPORT_FUNC_HASH(sceKernelPowerLockForUser)
PSP_EXPORT_FUNC_HASH(sceKernelRegisterPowerHandlers)
PSP_EXPORT_FUNC_HASH(sceKernelPowerUnlockForUser)
PSP_EXPORT_FUNC_HASH(sceKernelPowerLock)
PSP_EXPORT_END
PSP_EXPORT_START(sceSuspendForUser, 0x0011, 0x4000)
PSP_EXPORT_FUNC_HASH(sceKernelPowerTick)
PSP_EXPORT_FUNC_HASH(sceKernelPowerUnlock)
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemLock)
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemTryLock)
PSP_EXPORT_FUNC_HASH(sceKernelVolatileMemUnlock)
PSP_EXPORT_FUNC_HASH(sceKernelPowerLock)
PSP_EXPORT_END
PSP_EXPORT_START(UtilsForUser, 0x0011, 0x4001)
PSP_EXPORT_FUNC_NID(UtilsForUser_004D4DEE, 0x004D4DEE)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMt19937UInt)
PSP_EXPORT_FUNC_NID(UtilsForUser_0939D45C, 0x0939D45C)
PSP_EXPORT_FUNC_NID(UtilsForUser_157A383A, 0x157A383A)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheReadTag)
PSP_EXPORT_FUNC_NID(UtilsForUser_1B0592A3, 0x1B0592A3)
PSP_EXPORT_FUNC_HASH(sceKernelLibcTime)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockUpdate)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackInvalidateRange)
PSP_EXPORT_FUNC_HASH(sceKernelGetGPI)
PSP_EXPORT_FUNC_HASH(sceKernelGetPTRIG)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackRange)
PSP_EXPORT_FUNC_NID(UtilsForUser_3FD3D324, 0x3FD3D324)
PSP_EXPORT_FUNC_HASH(sceKernelIcacheInvalidateRange)
PSP_EXPORT_FUNC_NID(UtilsForUser_485E430A, 0x485E430A)
PSP_EXPORT_FUNC_HASH(sceKernelIcacheProbe)
PSP_EXPORT_FUNC_NID(UtilsForUser_515B4FAF, 0x515B4FAF)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockResult)
PSP_EXPORT_FUNC_NID(UtilsForUser_5C7F2B1A, 0x5C7F2B1A)
PSP_EXPORT_FUNC_NID(UtilsForUser_601E43E6, 0x601E43E6)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockUpdate)
PSP_EXPORT_FUNC_HASH(sceKernelSetPTRIG)
PSP_EXPORT_FUNC_HASH(sceKernelSetGPO)
PSP_EXPORT_FUNC_HASH(sceKernelLibcGettimeofday)
PSP_EXPORT_FUNC_NID(UtilsForUser_7333E539, 0x7333E539)
PSP_EXPORT_FUNC_NID(UtilsForUser_740DF7F0, 0x740DF7F0)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheProbeRange)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackAll)
PSP_EXPORT_FUNC_NID(UtilsForUser_7C5DC253, 0x7C5DC253)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheProbe)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1Digest)
PSP_EXPORT_FUNC_NID(UtilsForUser_87E81561, 0x87E81561)
PSP_EXPORT_FUNC_HASH(sceKernelLibcClock)
PSP_EXPORT_FUNC_HASH(sceKernelIcacheInvalidateAll)
PSP_EXPORT_FUNC_NID(sceKernelDcachePurgeRangeForUser, 0x99134C3F)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockInit)
PSP_EXPORT_FUNC_NID(UtilsForUser_AF3766BB, 0xAF3766BB)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackInvalidateAll)
PSP_EXPORT_FUNC_NID(UtilsForUser_B83A1E76, 0xB83A1E76)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockResult)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheInvalidateRange)
PSP_EXPORT_FUNC_HASH(sceKernelIcacheInvalidateRange)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5Digest)
PSP_EXPORT_FUNC_NID(UtilsForUser_DBBE9A46, 0xDBBE9A46)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMt19937Init)
PSP_EXPORT_FUNC_NID(UtilsForUser_F0155BCA, 0xF0155BCA)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockInit)
PSP_EXPORT_FUNC_HASH(sceKernelIcacheReadTag)
PSP_EXPORT_END
PSP_EXPORT_START(UtilsForKernel, 0x0011, 0x0009)
PSP_EXPORT_FUNC_NID(UtilsForKernel_004D4DEE, 0x004D4DEE)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMt19937UInt)
PSP_EXPORT_FUNC_NID(UtilsForKernel_0939D45C, 0x0939D45C)
PSP_EXPORT_FUNC_HASH(sceKernelSetPTRIGMask)
PSP_EXPORT_FUNC_NID(UtilsForKernel_157A383A, 0x157A383A)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheReadTag)
PSP_EXPORT_FUNC_HASH(sceKernelSetGPIMask)
PSP_EXPORT_FUNC_NID(UtilsForKernel_1B0592A3, 0x1B0592A3)
PSP_EXPORT_FUNC_HASH(sceKernelRegisterRtcFunc)
PSP_EXPORT_FUNC_HASH(sceKernelGzipGetCompressedData)
PSP_EXPORT_FUNC_HASH(sceKernelLibcTime)
PSP_EXPORT_FUNC_NID(UtilsForKernel_2F80288E, 0x2F80288E)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockUpdate)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackInvalidateRange)
PSP_EXPORT_FUNC_HASH(sceKernelGetGPI)
PSP_EXPORT_FUNC_HASH(sceKernelGetPTRIG)
PSP_EXPORT_FUNC_NID(UtilsForKernel_39FFB756, 0x39FFB756)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackRange)
PSP_EXPORT_FUNC_NID(UtilsForKernel_3FD3D324, 0x3FD3D324)
PSP_EXPORT_FUNC_HASH(sceKernelReleaseRtcFunc)
PSP_EXPORT_FUNC_NID(UtilsForKernel_43C9A8DB, 0x43C9A8DB)
PSP_EXPORT_FUNC_NID(UtilsForKernel_485E430A, 0x485E430A)
PSP_EXPORT_FUNC_HASH(sceKernelIcacheProbe)
PSP_EXPORT_FUNC_NID(UtilsForKernel_515B4FAF, 0x515B4FAF)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockResult)
PSP_EXPORT_FUNC_NID(UtilsForKernel_5C7F2B1A, 0x5C7F2B1A)
PSP_EXPORT_FUNC_NID(UtilsForKernel_601E43E6, 0x601E43E6)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockUpdate)
PSP_EXPORT_FUNC_HASH(sceKernelSetPTRIG)
PSP_EXPORT_FUNC_NID(UtilsForKernel_66463BEC, 0x66463BEC)
PSP_EXPORT_FUNC_HASH(sceKernelSetGPO)
PSP_EXPORT_FUNC_NID(UtilsForKernel_6C6887EE, 0x6C6887EE)
PSP_EXPORT_FUNC_HASH(sceKernelLibcGettimeofday)
PSP_EXPORT_FUNC_NID(UtilsForKernel_7333E539, 0x7333E539)
PSP_EXPORT_FUNC_NID(UtilsForKernel_740DF7F0, 0x740DF7F0)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheProbeRange)
PSP_EXPORT_FUNC_HASH(sceKernelGzipDecompress)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackAll)
PSP_EXPORT_FUNC_NID(UtilsForKernel_7C5DC253, 0x7C5DC253)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheProbe)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1Digest)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheInvalidateAll)
PSP_EXPORT_FUNC_HASH(sceKernelPutUserLog)
PSP_EXPORT_FUNC_HASH(sceKernelGzipGetComment)
PSP_EXPORT_FUNC_HASH(sceKernelLibcClock)
PSP_EXPORT_FUNC_HASH(sceKernelIcacheInvalidateAll)
PSP_EXPORT_FUNC_HASH(sceKernelRegisterUserLogHandler)
PSP_EXPORT_FUNC_HASH(sceKernelSetGPOMask)
PSP_EXPORT_FUNC_NID(UtilsForKernel_99134C3F, 0x99134C3F)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockInit)
PSP_EXPORT_FUNC_NID(UtilsForKernel_A6B0A6B8, 0xA6B0A6B8)
PSP_EXPORT_FUNC_NID(UtilsForKernel_AA9AF5CF, 0xAA9AF5CF)
PSP_EXPORT_FUNC_NID(UtilsForKernel_AF0C0173, 0xAF0C0173)
PSP_EXPORT_FUNC_HASH(sceKernelGetGPO)
PSP_EXPORT_FUNC_NID(UtilsForKernel_AF3766BB, 0xAF3766BB)
PSP_EXPORT_FUNC_HASH(sceKernelGzipGetInfo)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheWritebackInvalidateAll)
PSP_EXPORT_FUNC_NID(UtilsForKernel_B83A1E76, 0xB83A1E76)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5BlockResult)
PSP_EXPORT_FUNC_HASH(sceKernelRtcGetTick)
PSP_EXPORT_FUNC_HASH(sceKernelDcacheInvalidateRange)
PSP_EXPORT_FUNC_HASH(sceKernelIcacheInvalidateRange)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMd5Digest)
PSP_EXPORT_FUNC_NID(UtilsForKernel_DBBE9A46, 0xDBBE9A46)
PSP_EXPORT_FUNC_HASH(sceKernelGzipIsValid)
PSP_EXPORT_FUNC_HASH(sceKernelGzipGetName)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsMt19937Init)
PSP_EXPORT_FUNC_HASH(sceKernelDeflateDecompress)
PSP_EXPORT_FUNC_NID(UtilsForKernel_EC86074D, 0xEC86074D)
PSP_EXPORT_FUNC_NID(UtilsForKernel_F0155BCA, 0xF0155BCA)
PSP_EXPORT_FUNC_NID(UtilsForKernel_F192F2EC, 0xF192F2EC)
PSP_EXPORT_FUNC_HASH(sceKernelUtilsSha1BlockInit)
PSP_EXPORT_FUNC_HASH(sceKernelIcacheReadTag)
PSP_EXPORT_END
PSP_EXPORT_START(KDebugForKernel, 0x0011, 0x0001)
PSP_EXPORT_FUNC_NID(sceKernelRegisterDebugPutchar, 0x01FFE328)
PSP_EXPORT_FUNC_NID(sceKernelSm1RegisterOperations, 0x02668C61)
PSP_EXPORT_FUNC_NID(sceKernelRegisterAssertHandler, 0x0C56F87A)
PSP_EXPORT_FUNC_NID(sceKernelDebugWrite, 0x2214799B)
PSP_EXPORT_FUNC_NID(sceKernelGetDebugPutchar, 0x276C02E3)
PSP_EXPORT_FUNC_NID(sceKernelIsUMDMode, 0x27B23800)
PSP_EXPORT_FUNC_NID(sceKernelCheckDebugHandler, 0x2C7D85FA)
PSP_EXPORT_FUNC_NID(sceKernelDipswLow32, 0x43F0F8AB)
PSP_EXPORT_FUNC_NID(sceKernelIsToolMode, 0x47570AC5)
PSP_EXPORT_FUNC_NID(sceKernelRegisterDebugRead, 0x48BE5AA9)
PSP_EXPORT_FUNC_NID(sceKernelRegisterDebugWrite, 0x4A74A9D4)
PSP_EXPORT_FUNC_NID(sceKernelDipswCpTime, 0x568DCD25)
PSP_EXPORT_FUNC_NID(sceKernelDeci2pRegisterOperations, 0x604276EB)
PSP_EXPORT_FUNC_NID(sceKernelDipswHigh32, 0x6CB0BDA4)
PSP_EXPORT_FUNC_HASH(Kprintf)
PSP_EXPORT_FUNC_NID(sceKernelDipsw, 0x86010FCB)
PSP_EXPORT_FUNC_NID(sceKernelRegisterDebugPutcharByBootloader, 0x8A0F4E94)
PSP_EXPORT_FUNC_NID(sceKernelDebugEchoSet, 0xA1C5B42F)
PSP_EXPORT_FUNC_NID(sceKernelAssert, 0xAA9B2F07)
PSP_EXPORT_FUNC_NID(sceKernelIsDevelopmentToolMode, 0xACF427DC)
PSP_EXPORT_FUNC_NID(sceKernelDipswSet, 0xB20CABDB)
PSP_EXPORT_FUNC_NID(sceKernelIsDVDMode, 0xB41E2430)
PSP_EXPORT_FUNC_NID(sceKernelDebugRead, 0xD4EC38C1)
PSP_EXPORT_FUNC_HASH(sceKernelDipswAll)
PSP_EXPORT_FUNC_NID(sceKernelRegisterKprintfHandler, 0xE201A0D8)
PSP_EXPORT_FUNC_NID(sceKernelSm1ReferOperations, 0xE892D9A1)
PSP_EXPORT_FUNC_NID(sceKernelDebugEcho, 0xE8FE3EE3)
PSP_EXPORT_FUNC_NID(sceKernelDipswClear, 0xEFF672D1)
PSP_EXPORT_FUNC_NID(sceKernelDeci2pReferOperations, 0xF339073C)
PSP_EXPORT_END
PSP_END_EXPORTS

View File

@ -158,7 +158,7 @@ int sceKernelRegisterResumeHandler(int reg, int (*handler)(int, void*), void *pa
return 0;
}
int scekernelDispatchSuspendHandlers(int unk)
int sceKernelDispatchSuspendHandlers(int unk)
{
int oldGp = pspGetGp();
SceSuspendHandler *cur = &g_suspendHandlers[0];

12
src/systimer/Makefile Normal file
View File

@ -0,0 +1,12 @@
# Copyright (C) 2011, 2012 The uOFW team
# See the file COPYING for copying permission.
TARGET = systimer
OBJS = systimer.o
LIBS = -lInterruptManager -lInterruptManagerForKernel -lsceSuspendForKernel
DEBUG = 1
include ../../lib/build.mak

View File

@ -4,7 +4,8 @@
#include "../common/common.h"
#include "../sysmem/sysmem.h"
#include "sysmem_suspend_kernel.h"
#include "sysmem_sysevent.h"
#include "systimer.h"
@ -51,6 +52,8 @@ int resumeSTimer();
int STimerInit()
{
dbg_init(1, FB_NONE, FAT_BASIC);
dbg_printf("called %s\n", __FUNCTION__);
int oldIntr = sceKernelCpuSuspendIntr();
// 0328
int i;
@ -76,6 +79,7 @@ int STimerInit()
int module_reboot_before()
{
dbg_printf("called %s\n", __FUNCTION__);
int oldIntr = sceKernelCpuSuspendIntr();
// 03F8
int i;
@ -90,6 +94,7 @@ int module_reboot_before()
// 00E0
int systimerhandler(int arg0 __attribute__((unused)), SceSysTimer *arg1, int arg2)
{
dbg_printf("called %s\n", __FUNCTION__);
if (arg1->cb == NULL)
return -1;
int var = arg1->hw->unk0;
@ -115,18 +120,21 @@ int systimerhandler(int arg0 __attribute__((unused)), SceSysTimer *arg1, int arg
// 02B0
void _sceSTimerStopCount(SceSysTimer *arg)
{
dbg_printf("called %s\n", __FUNCTION__);
arg->hw->unk0 = arg->hw->unk256 & 0x7F7FFFFF;
}
// 02CC
int _sceSTimerGetCount(SceSysTimer *arg)
{
dbg_printf("called %s\n", __FUNCTION__);
return (arg->hw->unk256 & 0x003FFFFF) - (arg->hw->unk4 & 0x003FFFFF);
}
// 0864
int suspendSTimer()
{
dbg_printf("called %s\n", __FUNCTION__);
// 088C
int i;
for (i = 0; i < 4; i++)
@ -142,6 +150,7 @@ int suspendSTimer()
// 08DC
int resumeSTimer()
{
dbg_printf("called %s\n", __FUNCTION__);
// 0908
int i;
for (i = 0; i < 4; i++)
@ -158,6 +167,7 @@ int resumeSTimer()
// B53534B4
int sceSTimerSetPrscl(int timerId, int arg1, int arg2)
{
dbg_printf("called %s\n", __FUNCTION__);
SceSysTimer *timer = &timers[timerId & 3];
if (timer->curTimer != timerId)
return 0x80020097;
@ -181,6 +191,7 @@ int sceSTimerSetPrscl(int timerId, int arg1, int arg2)
int sceSTimerAlloc()
{
dbg_printf("called %s\n", __FUNCTION__);
if (sceKernelIsIntrContext() != 0)
return 0x80020064;
int oldIntr = sceKernelCpuSuspendIntr();
@ -215,6 +226,7 @@ int sceSTimerAlloc()
int sceSTimerSetHandler(int timerId, int arg1, SceSysTimerCb arg2, int arg3)
{
dbg_printf("called %s\n", __FUNCTION__);
SceSysTimer *timer = &timers[timerId & 3];
if (timer->curTimer != timerId)
return 0x80020097;
@ -249,6 +261,7 @@ int sceSTimerSetHandler(int timerId, int arg1, SceSysTimerCb arg2, int arg3)
int sceSTimerStartCount(int timerId)
{
dbg_printf("called %s\n", __FUNCTION__);
SceSysTimer *timer = &timers[timerId & 3];
if (timer->curTimer != timerId)
return 0x80020097;
@ -266,6 +279,7 @@ int sceSTimerStartCount(int timerId)
int sceSTimerGetCount(int timerId, int *arg1)
{
dbg_printf("called %s\n", __FUNCTION__);
SceSysTimer *timer = &timers[timerId & 3];
if (timer->curTimer != timerId)
return 0x80020097;
@ -277,6 +291,7 @@ int sceSTimerGetCount(int timerId, int *arg1)
int sceSTimerResetCount(int timerId)
{
dbg_printf("called %s\n", __FUNCTION__);
SceSysTimer *timer = &timers[timerId & 3];
if (timer->curTimer != timerId)
return 0x80020097;
@ -290,6 +305,7 @@ int sceSTimerResetCount(int timerId)
// 53231A15
int sceSTimerSetTMCY(int timerId, int arg1)
{
dbg_printf("called %s\n", __FUNCTION__);
SceSysTimer *timer = &timers[timerId & 3];
if (timer->curTimer != timerId)
return 0x80020097;
@ -307,6 +323,7 @@ int sceSTimerSetTMCY(int timerId, int arg1)
int sceSTimerStopCount(int timerId)
{
dbg_printf("called %s\n", __FUNCTION__);
SceSysTimer *timer = &timers[timerId & 3];
if (timer->curTimer != timerId)
return 0x80020097;
@ -318,6 +335,7 @@ int sceSTimerStopCount(int timerId)
int sceSTimerFree(int timerId)
{
dbg_printf("called %s\n", __FUNCTION__);
SceSysTimer *timer = &timers[timerId & 3];
if (sceKernelIsIntrContext() != 0)
return 0x80020064;

View File

@ -1,16 +0,0 @@
/* Copyright (C) 2011, 2012 The uOFW team
See the file COPYING for copying permission.
*/
typedef int (*SceSysTimerCb)(int, int, int, int);
int SysTimerForKernel_4467BD60(int arg0, int arg1, int arg2);
int SysTimerForKernel_71059CBF();
int SysTimerForKernel_847D785B(int arg0, int arg1, SceSysTimerCb arg2, int arg3);
int SysTimerForKernel_8FB264FB(int arg);
int SysTimerForKernel_94BA6594(int arg0, int *arg1);
int SysTimerForKernel_964F73FD(int arg);
int SysTimerForKernel_CE5A60D8(int arg0, int arg1);
int SysTimerForKernel_D01C6E08(int arg);
int SysTimerForKernel_F03AE143(int arg);

View File

@ -1,21 +1,21 @@
# Copyright (C) 2011, 2012 The uOFW team
# See the file COPYING for copying permission.
CPP=gcc
CC=gcc
CFLAGS=-Wall -Wextra -Werror
LDFLAGS=
TARGET=psp-build-exports
OBJECTS= ..\common\sha1.o psp-build-exports.o
OBJECTS=../common/sha1.o psp-build-exports.o
all: $(TARGET)
$(TARGET): $(OBJECTS)
@echo "Creating binary $(TARGET)"
@$(CPP) $(OBJECTS) -o $@ $(LDFLAGS)
$(CC) $(OBJECTS) -o $@ $(LDFLAGS)
%.o: %.cpp
@echo "Compiling $^"
$(CPP) $(CFLAGS) -c $^ -o $@
$(CC) $(CFLAGS) -c $^ -o $@
clean:
@echo "Removing all the .o files"

View File

@ -1,7 +1,7 @@
# Copyright (C) 2011, 2012 The uOFW team
# See the file COPYING for copying permission.
CPP=gcc
CC=gcc
CFLAGS=-Wall -Wextra -Werror
LDFLAGS=
TARGET=psp-fixup-imports
@ -11,11 +11,11 @@ all: $(TARGET)
$(TARGET): $(OBJECTS)
@echo "Creating binary $(TARGET)"
@$(CPP) $(OBJECTS) -o $@ $(LDFLAGS)
@$(CC) $(OBJECTS) -o $@ $(LDFLAGS)
%.o: %.cpp
@echo "Compiling $^"
$(CPP) $(CFLAGS) -c $^ -o $@
$(CC) $(CFLAGS) -c $^ -o $@
clean:
@echo "Removing all the .o files"