sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
s_si.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 "
libspu2_internal.h
"
12
13
int
SpuSetIRQ(
int
on_off)
14
{
15
int
v7;
16
17
switch
( on_off )
18
{
19
case
SPU_OFF:
20
case
SPU_RESET:
21
{
22
vu16 *v2;
23
unsigned
int
v3;
24
25
v2 = &_spu_RXX[512 * _spu_core];
26
v2[205] &= ~0x40u;
27
v3 = 1;
28
while
( (v2[205] & 0x40) != 0 )
29
{
30
if
( v3 >= 0xF01 )
31
{
32
printf(
"SPU:T/O [%s]\n"
,
"wait (IRQ/ON)"
);
33
return
-1;
34
}
35
v3 += 1;
36
}
37
DisableIntr
(IOP_IRQ_SPU, &v7);
38
break
;
39
}
40
default
:
41
break
;
42
}
43
switch
( on_off )
44
{
45
case
SPU_ON:
46
case
SPU_RESET:
47
{
48
vu16 *v5;
49
unsigned
int
v6;
50
51
v5 = &_spu_RXX[512 * _spu_core];
52
v5[205] |= 0x40u;
53
v6 = 1;
54
while
( (v5[205] & 0x40) == 0 )
55
{
56
if
( v6 >= 0xF01 )
57
{
58
printf(
"SPU:T/O [%s]\n"
,
"wait (IRQ/OFF)"
);
59
return
-1;
60
}
61
v6 += 1;
62
}
63
EnableIntr
(IOP_IRQ_SPU);
64
break
;
65
}
66
default
:
67
break
;
68
}
69
return
on_off;
70
}
DisableIntr
int DisableIntr(int irq, int *res)
Definition
intrman.c:385
EnableIntr
int EnableIntr(int irq)
Definition
intrman.c:336
libspu2_internal.h
core
libspu2
src
s_si.c
Generated by
1.18.0