Example #1
0
int sceKernelSysEventDispatch(int ev_type_mask, int ev_id, char* ev_name, void* param, int* result, int break_nonzero, SceSysEventHandler **break_handler)
{
    int oldGp = pspGetGp();
    int ret = 0;
    int oldIntr = suspendIntr();
    SceSysEventHandler *cur = g_sysEvHandlers;
    // C928
    while (cur != NULL)
    {
        if ((cur->type_mask & ev_type_mask) != 0)
        {
            // C984
            cur->busy = 1;
            resumeIntr(oldIntr);
            pspSetGp(cur->gp);
            ret = cur->handler(ev_id, ev_name, param, result);
            oldIntr = suspendIntr();
            cur->busy = 0;
            if (ret < 0 && break_nonzero != 0)
            {
                // C9D8
                if (break_handler != NULL)
                    *break_handler = cur;
                break;
            }
            ret = 0;
        }
        // C934
        cur = cur->next;
    }
    // C940
    resumeIntr(oldIntr);
    pspSetGp(oldGp);
    return ret;
}
Example #2
0
int sceKernelRegisterSysEventHandler(SceSysEventHandler* handler)
{
    int oldIntr1 = suspendIntr();
    int oldIntr2 = suspendIntr();
    SceSysEventHandler *cur = g_sysEvHandlers;
    // CA90
    while (cur != NULL)
    {
        if (cur == handler)
            break;
        cur = cur->next;
    }
    // CAA4
    resumeIntr(oldIntr2);
    if (cur == NULL)
    {   
        handler->busy = 0;
        // CAE0
        handler->gp = pspGetGp();
        handler->next = g_sysEvHandlers;
        g_sysEvHandlers = handler;
        resumeIntr(oldIntr1);
        return 0;
    }
    resumeIntr(oldIntr1);
    return 0x80020067;
}
Example #3
0
File: suspend.c Project: esxgx/uofw
int sceKernelRegisterResumeHandler(int reg, int (*handler)(int, void*), void *param)
{
    if (reg < 0 || reg >= 32)
        return -1;
    int oldIntr = suspendIntr();
    SceResumeHandler *cur = &g_resumeHandlers[reg];
    cur->handler = handler;
    cur->param = param;
    cur->gp = pspGetGp();
    resumeIntr(oldIntr);
    return 0;
}
Example #4
0
//Subroutine sceUmd_76D356F9 - Address 0x000008B4
u32 sceUmd_76D356F9(s32 (*arg0)(void))
{
    s32 intrState;
    
    intrState = sceKernelCpuSuspendIntr();
       
    g_mediaMan.unk60 = arg0;
    g_mediaMan.unk36 = pspGetGp();
       
    sceKernelCpuResumeIntr(intrState);
    return SCE_ERROR_OK;
}
Example #5
0
//Subroutine sceUmd_3748C4DB - Address 0x00000838
u32 sceUmdRegisterReplaceCallBack(s32 (*umdReplaceCallback)(s32))
{
    s32 intrState;
    
    intrState = sceKernelCpuSuspendIntr();
       
    g_mediaMan.umdReplaceCallback = umdReplaceCallback;
    g_mediaMan.umdReplaceCallbackGp = pspGetGp();
       
    sceKernelCpuResumeIntr(intrState);       
    return SCE_ERROR_OK;
}
Example #6
0
//Subroutine sceUmd_D1C80E51 - Address 0x00000720
u32 sceUmdRegisterDeactivateCallBack(s32 (*deactivateCallback)(s32, void *), void *param)
{
    s32 intrState;
    
    intrState = sceKernelCpuSuspendIntr();
    
    g_mediaMan.umdDeactivateCallback = deactivateCallback;
    g_mediaMan.umdDeactivateCallbackParam = param;
    g_mediaMan.umdDeactivateCallbackGp = pspGetGp();
    
    sceKernelCpuResumeIntr(intrState);
    return SCE_ERROR_OK;
}
Example #7
0
//Subroutine sceUmd_63517CBA - Address 0x000005CC 
u32 sceUmdRegisterMediaPresentCallBack(s32(*MediaPresentCallback)(void *), void *param)
{
    s32 intrState;
    
    intrState = sceKernelCpuSuspendIntr();
    
	g_mediaMan.umdMediaPresentCallback = MediaPresentCallback;
	g_mediaMan.umdMediaPresentCallbackParam = param;
	g_mediaMan.umdMediaPresentCallbackGp = pspGetGp();
    
    sceKernelCpuResumeIntr(intrState);
    return SCE_ERROR_OK;
}
Example #8
0
//Subroutine sceUmd_48EF868C - Address 0x0000053C
u32 sceUmdRegisterGetUMDInfoCallBack(s32 (*umdInfoCallback)(SceUmdDiscInfo *), SceUmdDiscInfo *pDiscInfo)
{
    s32 intrState;
    
    intrState = sceKernelCpuSuspendIntr();
    
    g_mediaMan.umdInfoCallback = umdInfoCallback;
    g_mediaMan.umdInfoCallbackDiscInfo = pDiscInfo;
    g_mediaMan.umdInfoCallbackGp = pspGetGp();
    
    sceKernelCpuResumeIntr(intrState);
    return SCE_ERROR_OK;
}
Example #9
0
File: suspend.c Project: esxgx/uofw
int sceKernelDispatchResumeHandlers(int unk)
{
    int oldGp = pspGetGp();
    SceResumeHandler *cur = &g_resumeHandlers[31];
    // CF40
    int i;
    for (i = 0; i < 32; i++)
    {
        if (cur->handler != NULL)
        {
            // CF80
            pspSetGp(cur->gp);
            cur->handler(unk, cur->param);
        }
        cur--;
    }
    pspSetGp(oldGp);
    return 0;
}
Example #10
0
File: suspend.c Project: esxgx/uofw
int sceKernelDispatchSuspendHandlers(int unk)
{
    int oldGp = pspGetGp();
    SceSuspendHandler *cur = &g_suspendHandlers[0];
    int i;
    // CEB0
    for (i = 0; i < 32; i++)
    {
        if (cur->handler != NULL)
        {
            // CEF0
            pspSetGp(cur->gp);
            cur->handler(unk, cur->param);
        }
        // CEC0
        cur++;
    }
    pspSetGp(oldGp);
    return 0;
}