sdk-world
v2026.11.05
PS2 SDK - world tier (copyleft-allowed, non-essential packages)
Toggle main menu visibility
Loading...
Searching...
No Matches
rsd_cb.c
1
/*
2
# _____ ___ ____ ___ ____
3
# ____| | ____| | | |____|
4
# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5
#-----------------------------------------------------------------------
6
# Copyright ps2dev - http://www.ps2dev.org
7
# Licenced under Academic Free License version 2.0
8
# Review ps2sdk README & LICENSE files for further details.
9
*/
10
11
#include "
rs_i.h
"
12
13
static
SpuEECBData eeCBData;
14
15
static
SifRpcClientData_t cd;
16
17
void
sceSifCmdLoop2(
void
)
18
{
19
while
( 1 )
20
{
21
if
( eeCBData.mode )
22
{
23
sceSifCallRpc(&cd, 0, 0, &eeCBData, 16, 0, 0, 0, 0);
24
if
( eeCBData.mode < 4 )
25
memcpy(gStPtr, &gStBuff,
sizeof
(SpuStEnv));
26
eeCBData.mode = 0;
27
}
28
SleepThread();
29
}
30
}
31
32
void
DMA0CallBackProc(
void
)
33
{
34
eeCBData.mode = 4;
35
iWakeupThread(gStThid);
36
}
37
38
void
DMA1CallBackProc(
void
)
39
{
40
eeCBData.mode = 5;
41
iWakeupThread(gStThid);
42
}
43
44
void
IRQCallBackProc(
void
)
45
{
46
eeCBData.mode = 6;
47
iWakeupThread(gStThid);
48
}
49
50
void
spustCB_preparation_finished(
unsigned
int
voice_bit,
int
p_status)
51
{
52
eeCBData.mode = 1;
53
eeCBData.voice_bit = voice_bit;
54
eeCBData.status = p_status;
55
iWakeupThread(gStThid);
56
}
57
58
void
spustCB_transfer_finished(
unsigned
int
voice_bit,
int
t_status)
59
{
60
eeCBData.mode = 2;
61
eeCBData.voice_bit = voice_bit;
62
eeCBData.status = t_status;
63
iWakeupThread(gStThid);
64
}
65
66
void
spustCB_stream_finished(
unsigned
int
voice_bit,
int
s_status)
67
{
68
eeCBData.mode = 3;
69
eeCBData.voice_bit = voice_bit;
70
eeCBData.status = s_status;
71
iWakeupThread(gStThid);
72
}
73
74
void
sce_spust_loop(
void
*userdata)
75
{
76
int
i;
77
78
(void)userdata;
79
80
eeCBData.mode = 0;
81
while
( sceSifBindRpc(&cd, sce_SPUST_CB, 0) >= 0 )
82
{
83
for
( i = 0; i < 10000; i += 1 )
84
{
85
__asm__ __volatile__(
""
:
"+g"
(i) : :);
86
}
87
if
( cd.server )
88
sceSifCmdLoop2();
89
}
90
while
( 1 )
91
;
92
}
rs_i.h
rspu2drv
src
rsd_cb.c
Generated by
1.18.0