11#include "irx_imports.h"
17 int m_cdvdman_intr_efid;
18 void (*m_cdvdman_poff_cb)(
void *);
19 void *m_cdvdman_poffarg;
27 Kprintf(
"PowerOff Simulation Start\n");
28 iSetEventFlag(arg->m_cdvdman_intr_efid, 4);
29 iSetEventFlag(arg->m_cdvdman_intr_efid, 0x10);
30 if ( arg->m_cdvdman_poff_cb )
31 arg->m_cdvdman_poff_cb(arg->m_cdvdman_poffarg);
32 iSignalSema(arg->m_sema_id);
36int _start(
int ac,
char **av)
47 semaparam.initial = 0;
50 sCdPtbl.m_sema_id = CreateSema(&semaparam);
51 sCdPtbl.m_cdvdman_intr_efid = sceCdSC(0xFFFFFFF5, &unusedval);
52 sCdPtbl.m_cdvdman_poff_cb = 0;
53 if ( (
unsigned int)sceCdSC(0xFFFFFFF7, &unusedval) < 0x222 )
55 Kprintf(
"This cdvdman.irx doesn't support the simulation of PowerOff_Callback of IOP\n");
59 sCdPtbl.m_cdvdman_poffarg = (
void *)(uiptr)sceCdSC(0xFFFFFFE6, (
int *)&sCdPtbl.m_cdvdman_poff_cb);
62 sCdPoff_time.lo = 0x90000;
63 SetAlarm(&sCdPoff_time, (
unsigned int (*)(
void *))_sceCdPoffEmu, &sCdPtbl);
64 WaitSema(sCdPtbl.m_sema_id);
65 DeleteSema(sCdPtbl.m_sema_id);