27 static int (*
p_ResetEE)(
int flags)=(
void*)0x8000ad68;
29 static void (*
p_SetGSCrt)(
unsigned short int interlace,
unsigned short int mode,
unsigned short int ffmd)=(
void*)0x8000a060;
35 static char *(*p_eestrcpy)(
char* dst,
const char* src)=(
void*)0x80005560;
41 static void* (*p_ExecPS2)(
void *
entry,
void *
gp,
int argc,
char *argv[])=(
void*)0x800057E8;
70 *(
volatile unsigned int *)0x1000f000=4;
71 while((*(
volatile unsigned int *)0x1000f000&4)==0){};
72 *(
volatile unsigned int *)0x1000f000=4;
84 int i, CurrentThreadID;
96 if(tcb->
status!=0 && i!=CurrentThreadID){
111 return p_ExecPS2(EntryPoint,
gp,
argc, argv);
117 tcb=&
p_TCBs[CurrentThreadID];
120 tcb->
entry=EntryPoint;
static int(* p_ResetEE)(int flags)
static void(* p_InitializeINTC)(int interrupts)
static char * p_ArgsBuffer
static void(* p_InitializeGS)(void)
static void(* p_SetGSCrt)(unsigned short int interlace, unsigned short int mode, unsigned short int ffmd)
static struct TCB * p_TCBs
static int * p_ThreadStatus
static int(* p_InitSemaphores)(void)
static void SoftPeripheralEEReset(void)
static void(* p_FlushDCache)(void)
static int(* p_DeleteThread)(int thread_id)
static char *(* p_eestrcpy)(char *dst, const char *src)
static void(* p_FlushICache)(void)
static int(* p_TerminateThread)(int ThreadID)
static int(* p_InitPgifHandler2)(void)
static void(* p_InitializeScratchPad)(void)
static void(* p_InitializeTIMER)(void)
static void(* p_InitializeFPU)(void)
static int(* p_ChangeThreadPriority)(int ThreadID, int priority)
static int(* p_CancelWakeupThread)(int ThreadID)
void * ExecPS2Patch(void *EntryPoint, void *gp, int argc, char *argv[])