psl1ght
A free SDK for Sony's PS3 console
Loading...
Searching...
No Matches
spu.h
Go to the documentation of this file.
1
98#ifndef __SYS_SPU_H__
99#define __SYS_SPU_H__
100
101#include <ppu-asm.h>
102#include <ppu-lv2.h>
103#include <lv2/spu.h>
104
105/* MFC channel registers */
106#define MFC_LSA 0x3004
107#define MFC_EAH 0x3008
108#define MFC_EAL 0x300C
109#define MFC_Size 0x3010
110#define MFC_Class_CMD 0x3014
111#define MFC_CMD_Status 0x3014
112#define MFC_QStatus 0x3104
113#define Prxy_QueryType 0x3204
114#define Prxy_QueryMask 0x321C
115#define Prxy_TagStatus 0x322C
116#define SPU_Out_MBox 0x4004
117#define SPU_In_MBox 0x400C
118#define SPU_MBox_Status 0x4014
119#define SPU_RunCtrl 0x401C
120#define SPU_Status 0x4024
121#define SPU_NextPC 0x4034
122#define SPU_Sig_Notify_1 0x1400C
123#define SPU_Sig_Notify_2 0x1C00C
124
125#define SPU_THREAD_GROUP_TYPE_NORMAL 0x0
126#define SPU_THREAD_GROUP_TYPE_SEQUENTIAL 0x1
127#define SPU_THREAD_GROUP_TYPE_SYSTEM 0x2
128#define SPU_THREAD_GROUP_TYPE_MEMORY_FROM_CONTAINER 0x4
129
130#define SPU_THREAD_GROUP_JOIN_GROUP_EXIT 0x0001
131#define SPU_THREAD_GROUP_JOIN_ALL_THREADS_EXIT 0x0002
132#define SPU_THREAD_GROUP_JOIN_TERMINATED 0x0004
133
134#define SPU_THREAD_GROUP_EVENT_RUN 0x1
135#define SPU_THREAD_GROUP_EVENT_RUN_KEY 0xFFFFFFFF53505500ULL
136#define SPU_THREAD_GROUP_EVENT_EXCEPTION 0x2
137#define SPU_THREAD_GROUP_EVENT_EXCEPTION_KEY 0xFFFFFFFF53505503ULL
138
140#define SPU_THREAD_ATTR_NONE 0x00
142#define SPU_THREAD_ATTR_ASYNC_INT_ENABLE 0x01
144#define SPU_THREAD_ATTR_DEC_SYNC_TB_ENABLE 0x02
145
147#define SPU_THREAD_EVENT_USER 0x01
149#define SPU_THREAD_EVENT_DMA 0x02
150
152#define SPU_THREAD_EVENT_USER_KEY 0xFFFFFFFF53505501ULL
154#define SPU_THREAD_EVENT_DMA_KEY 0xFFFFFFFF53505502ULL
155
157#define SPU_SIGNAL1_OVERWRITE 0x00
159#define SPU_SIGNAL1_OR 0x01
161#define SPU_SIGNAL2_OVERWRITE 0x00
163#define SPU_SIGNAL2_OR 0x02
164
165/* exception causes */
166#define SPU_EXCEPTION_DMA_ALIGNMENT 0x0001U
167#define SPU_EXCEPTION_DMA_COMMAND 0x0002U
168#define SPU_EXCEPTION_SPU_ERROR 0x0004U
169#define SPU_EXCEPTION_MFC_FIR 0x0008U
170#define SPU_EXCEPTION_MFC_SEGMENT 0x0010U
171#define SPU_EXCEPTION_MFC_STORAGE 0x0020U
172#define SPU_EXCEPTION_STOP_CALL 0x0100U
173#define SPU_EXCEPTION_STOP_BREAK 0x0200U
174#define SPU_EXCEPTION_HALT 0x0400U
175#define SPU_EXCEPTION_UNKNOWN_SIGNAL 0x0800U
176#define SPU_EXCEPTION_NO_VALUE 0x0U
177
179#define SPU_THREAD_BASE 0xF0000000ULL
181#define SPU_THREAD_OFFSET 0x00100000ULL
183#define SPU_RAW_BASE 0xE0000000ULL
185#define SPU_RAW_OFFSET 0x00100000ULL
187#define SPU_LOCAL_OFFSET 0x00000000ULL
189#define SPU_PROBLEM_OFFSET 0x00040000ULL
190
194#define SPU_RAW_GET_BASE_OFFSET(spu) \
195 (SPU_RAW_BASE + (SPU_RAW_OFFSET*(spu)))
196
198#define SPU_RAW_GET_LOCAL_STORAGE(spu,reg) \
199 (SPU_RAW_GET_BASE_OFFSET(spu) + SPU_LOCAL_OFFSET + (reg))
200
202#define SPU_RAW_GET_PROBLEM_STORAGE(spu,reg) \
203 (SPU_RAW_GET_BASE_OFFSET(spu) + SPU_PROBLEM_OFFSET + (reg))
204
208#define SPU_THREAD_GET_BASE_OFFSET(spu) \
209 (SPU_THREAD_BASE + (SPU_THREAD_OFFSET*(spu)))
210
212#define SPU_THREAD_GET_LOCAL_STORAGE(spu,reg) \
213 (SPU_THREAD_GET_BASE_OFFSET(spu) + SPU_LOCAL_OFFSET + (reg))
214
216#define SPU_THREAD_GET_PROBLEM_STORAGE(spu,reg) \
217 (SPU_THREAD_GET_BASE_OFFSET(spu) + SPU_PROBLEM_OFFSET + (reg))
218
219#ifdef __cplusplus
220extern "C" {
221#endif
222
231
245
248{
249 u32 nsize;
250 const char *name ATTRIBUTE_PRXPTR;
251 u32 type;
252 union {
253 sys_mem_container_t ct;
256
257#define sysSpuThreadAttributeInitialize(x) \
258 do { \
259 x.name = NULL; \
260 x.nsize = 0; \
261 x.option = SPU_THREAD_ATTR_NONE; \
262 } while(0)
263
264#define sysSpuThreadAttributeName(x, s) \
265 do { \
266 x.name = s; \
267 if(s == NULL) { \
268 x.nsize = 0; \
269 } else { \
270 int n = 0; \
271 for(; (n<127) && (s[n] != '\0'); n++) \
272 ; \
273 x.nsize = n + 1; \
274 } \
275 } while(0)
276
277#define sysSpuThreadAttributeOption(x, f) \
278 do { \
279 x.option = f; \
280 } while(0)
281
282#define sysSpuThreadArgumentInitialize(x) \
283 do { \
284 x.arg0 = x.arg1 = x.arg2 = x.arg3 = 0; \
285 } while(0)
286
287#define sysSpuThreadGroupAttributeInitialize(x) \
288 do { \
289 x.name = NULL; \
290 x.nsize = 0; \
291 x.type = SPU_THREAD_GROUP_TYPE_NORMAL; \
292 } while(0)
293
294#define sysSpuThreadGroupAttributeName(x, s) \
295 do { \
296 x.name = s; \
297 if(s == NULL) { \
298 x.nsize = 0; \
299 } else { \
300 int n = 0; \
301 for(; (n<127) && (s[n] != '\0'); n++) \
302 ; \
303 x.nsize = n + 1; \
304 } \
305 } while(0)
306
307#define sysSpuThreadGroupAttributeType(x, t) \
308 do { \
309 x.type = t; \
310 } while(0)
311
312#define sysSpuThreadGroupAttributeMemoryContainer(x, ct) \
313 do { \
314 x.type |= SPU_THREAD_GROUP_TYPE_MEMORY_FROM_CONTAINER; \
315 x.option.ct = ct; \
316 } while(0)
317
326LV2_SYSCALL sysSpuInitialize(u32 spus,u32 rawspus)
327{
328 lv2syscall2(169,spus,rawspus);
329 return_to_user_prog(s32);
330}
331
340LV2_SYSCALL sysSpuRawCreate(sys_raw_spu_t *spu,u32 *attributes)
341{
342 lv2syscall2(160,(u64)spu,(u64)attributes);
343 return_to_user_prog(s32);
344}
345
352LV2_SYSCALL sysSpuRawDestroy(sys_raw_spu_t spu)
353{
354 lv2syscall1(161,spu);
355 return_to_user_prog(s32);
356}
357
370LV2_SYSCALL sysSpuRawCreateInterrupTag(sys_raw_spu_t spu,u32 classid,u32 hardwarethread,u32 *tag)
371{
372 lv2syscall4(150,spu,classid,hardwarethread,(u64)tag);
373 return_to_user_prog(s32);
374}
375
386LV2_SYSCALL sysSpuRawSetIntMask(sys_raw_spu_t spu,u32 classid,u64 mask)
387{
388 lv2syscall3(151,spu,classid,mask);
389 return_to_user_prog(s32);
390}
391
402LV2_SYSCALL sysSpuRawGetIntMask(sys_raw_spu_t spu,u32 classid,u64 *mask)
403{
404 lv2syscall3(152,spu,classid,(u64)mask);
405 return_to_user_prog(s32);
406}
407
418LV2_SYSCALL sysSpuRawSetIntStat(sys_raw_spu_t spu, u32 classid, u64 stat)
419{
420 lv2syscall3(153, spu, classid, stat);
421 return_to_user_prog(s32);
422}
423
434LV2_SYSCALL sysSpuRawGetIntStat(sys_raw_spu_t spu, u32 classid, u64* stat)
435{
436 lv2syscall3(154, spu, classid, (u64)stat);
437 return_to_user_prog(s32);
438}
439
448LV2_SYSCALL sysSpuRawReadPuintMb(sys_raw_spu_t spu, u32* value)
449{
450 lv2syscall2(163, spu, (u64)value);
451 return_to_user_prog(s32);
452}
453
466LV2_SYSCALL sysSpuRawSetConfiguration(sys_raw_spu_t spu, u32 value)
467{
468 lv2syscall2(196, spu, value);
469 return_to_user_prog(s32);
470}
471
485LV2_SYSCALL sysSpuRawGetConfirugation(sys_raw_spu_t spu, u32* value)
486{
487 lv2syscall2(197, spu, (u64)value);
488 return_to_user_prog(s32);
489}
490
497LV2_SYSCALL sysSpuRawRecoverPageFault(sys_raw_spu_t spu)
498{
499 lv2syscall1(199, spu);
500 return_to_user_prog(s32);
501}
502
511LV2_SYSCALL sysSpuImageOpen(sysSpuImage* image, const char* path)
512{
513 lv2syscall2(156, (u64)image, (u64)path);
514 return_to_user_prog(s32);
515}
516
527LV2_SYSCALL sysSpuImageOpenFd(sysSpuImage* image, s32 fd, u64 offset)
528{
529 lv2syscall3(260, (u64)image, fd, offset);
530 return_to_user_prog(s32);
531}
532
549LV2_SYSCALL sysSpuThreadInitialize(sys_spu_thread_t* thread, sys_spu_group_t group, u32 spu, sysSpuImage* image, sysSpuThreadAttribute* attributes, sysSpuThreadArgument* arguments)
550{
551 lv2syscall6(172, (u64)thread, group, spu, (u64)image, (u64)attributes, (u64)arguments);
552 return_to_user_prog(s32);
553}
554
563LV2_SYSCALL sysSpuThreadSetArguments(sys_spu_thread_t thread, sysSpuThreadArgument* arguments)
564{
565 lv2syscall2(166, thread, (u64)arguments);
566 return_to_user_prog(s32);
567}
568
579LV2_SYSCALL sysSpuThreadGetExitStatus(sys_spu_thread_t thread, s32* status)
580{
581 lv2syscall2(165, thread, (u64)status);
582 return_to_user_prog(s32);
583}
584
600LV2_SYSCALL sysSpuThreadConnectEvent(sys_spu_thread_t thread, sys_event_queue_t queue, u32 type, u8 spup)
601{
602 lv2syscall4(191, thread, queue, type, spup);
603 return_to_user_prog(s32);
604}
605
619LV2_SYSCALL sysSpuThreadDisconnectEvent(sys_spu_thread_t thread, u32 type, u8 spup)
620{
621 lv2syscall3(192, thread, type, spup);
622 return_to_user_prog(s32);
623}
624
635LV2_SYSCALL sysSpuThreadBindQueue(sys_spu_thread_t thread, sys_event_queue_t queue, u32 spuq_num)
636{
637 lv2syscall3(193, thread, queue, spuq_num);
638 return_to_user_prog(s32);
639}
640
649LV2_SYSCALL sysSpuThreadUnbindQueue(sys_spu_thread_t thread, u32 spuq_num)
650{
651 lv2syscall2(194, thread, spuq_num);
652 return_to_user_prog(s32);
653}
654
668LV2_SYSCALL sysSpuThreadWriteLocalStorage(sys_spu_thread_t thread, u32 address, u64 value, u32 type)
669{
670 lv2syscall4(181, thread, address, value, type);
671 return_to_user_prog(s32);
672}
673
687LV2_SYSCALL sysSpuThreadReadLocalStorage(sys_spu_thread_t thread, u32 address, u64* value, u32 type)
688{
689 lv2syscall4(182, thread, address, (u64)value, type);
690 return_to_user_prog(s32);
691}
692
705LV2_SYSCALL sysSpuThreadWriteSignal(sys_spu_thread_t thread,u32 signal,u32 value)
706{
707 lv2syscall3(184,thread,signal,value);
708 return_to_user_prog(s32);
709}
710
724LV2_SYSCALL sysSpuThreadSetConfiguration(sys_spu_thread_t thread, u64 value)
725{
726 lv2syscall2(187, thread, value);
727 return_to_user_prog(s32);
728}
729
744LV2_SYSCALL sysSpuThreadGetConfiguration(sys_spu_thread_t thread, u64* value)
745{
746 lv2syscall2(188, thread, (u64)value);
747 return_to_user_prog(s32);
748}
749
759LV2_SYSCALL sysSpuThreadWriteMb(sys_spu_thread_t thread, u32 value)
760{
761 lv2syscall2(190, thread, value);
762 return_to_user_prog(s32);
763}
764
772LV2_SYSCALL sysSpuThreadRecoverPageFault(sys_spu_thread_t thread)
773{
774 lv2syscall1(198, thread);
775 return_to_user_prog(s32);
776}
777
791LV2_SYSCALL sysSpuThreadGroupCreate(sys_spu_group_t *group,u32 num,u32 prio,sysSpuThreadGroupAttribute *attr)
792{
793 lv2syscall4(170,(u64)group,num,prio,(u64)attr);
794 return_to_user_prog(s32);
795}
796
804LV2_SYSCALL sysSpuThreadGroupDestroy(sys_spu_group_t group)
805{
806 lv2syscall1(171,group);
807 return_to_user_prog(s32);
808}
809
817LV2_SYSCALL sysSpuThreadGroupStart(sys_spu_group_t group)
818{
819 lv2syscall1(173,group);
820 return_to_user_prog(s32);
821}
822
830LV2_SYSCALL sysSpuThreadGroupSuspend(sys_spu_group_t group)
831{
832 lv2syscall1(174,group);
833 return_to_user_prog(s32);
834}
835
843LV2_SYSCALL sysSpuThreadGroupResume(sys_spu_group_t group)
844{
845 lv2syscall1(175,group);
846 return_to_user_prog(s32);
847}
848
856LV2_SYSCALL sysSpuThreadGroupYield(sys_spu_group_t group)
857{
858 lv2syscall1(176,group);
859 return_to_user_prog(s32);
860}
861
869LV2_SYSCALL sysSpuThreadGroupTerminate(sys_spu_group_t group,u32 value)
870{
871 lv2syscall2(177,group,value);
872 return_to_user_prog(s32);
873}
874
886LV2_SYSCALL sysSpuThreadGroupJoin(sys_spu_group_t group,u32 *cause,u32 *status)
887{
888 lv2syscall3(178,group,(u64)cause,(u64)status);
889 return_to_user_prog(s32);
890}
891
901LV2_SYSCALL sysSpuThreadGroupSetPriority(sys_spu_group_t group,u32 prio)
902{
903 lv2syscall2(179,group,prio);
904 return_to_user_prog(s32);
905}
906
916LV2_SYSCALL sysSpuThreadGroupGetPriority(sys_spu_group_t group,u32 *prio)
917{
918 lv2syscall2(180,group,(u64)prio);
919 return_to_user_prog(s32);
920}
921
922LV2_SYSCALL sysSpuThreadGroupConnectEvent(sys_spu_group_t group,sys_event_queue_t eventQ,u32 eventType)
923{
924 lv2syscall3(185,group,eventQ,eventType);
925 return_to_user_prog(s32);
926}
927
928LV2_SYSCALL sysSpuThreadGroupDisconnectEvent(sys_spu_group_t group,u32 eventType)
929{
930 lv2syscall2(186,group,eventType);
931 return_to_user_prog(s32);
932}
933
934LV2_SYSCALL sysSpuThreadGroupConnectEventAllThreads(sys_spu_group_t group,sys_event_queue_t eventQ,u64 req,u8 *spup)
935{
936 lv2syscall4(251,group,eventQ,req,(u64)spup);
937 return_to_user_prog(s32);
938}
939
940LV2_SYSCALL sysSpuThreadGroupDisonnectEventAllThreads(sys_spu_group_t group,u8 spup)
941{
942 lv2syscall2(252,group,spup);
943 return_to_user_prog(s32);
944}
945
946static inline void sysSpuRawWriteProblemStorage(sys_raw_spu_t spu,u32 reg,u32 value)
947{
948 __write32(SPU_RAW_GET_PROBLEM_STORAGE(spu,reg),value);
949}
950
951static inline u32 sysSpuRawReadProblemStorage(sys_raw_spu_t spu,u32 reg)
952{
953 return __read32(SPU_RAW_GET_PROBLEM_STORAGE(spu,reg));
954}
955
956static inline void sysSpuRawWriteLocalStorage(sys_raw_spu_t spu,u32 reg,u32 value)
957{
958 __write32(SPU_RAW_GET_LOCAL_STORAGE(spu,reg),value);
959}
960
961static inline u32 sysSpuRawReadLocalStorage(sys_raw_spu_t spu,u32 reg)
962{
963 return __read32(SPU_RAW_GET_LOCAL_STORAGE(spu,reg));
964}
965
966static inline void sysSpuThreadWriteProblemStorage(sys_raw_spu_t spu,u32 reg,u32 value)
967{
968 __write32(SPU_THREAD_GET_PROBLEM_STORAGE(spu,reg),value);
969}
970
971static inline u32 sysSpuThreadReadProblemStorage(sys_raw_spu_t spu,u32 reg)
972{
973 return __read32(SPU_THREAD_GET_PROBLEM_STORAGE(spu,reg));
974}
975
976#ifdef __cplusplus
977 }
978#endif
979
980#endif
SPU management library.
uint64_t uint32_t value
Definition spu_atomic.h:59
SPU image data structure.
Definition spu.h:56
A structure containing the arguments passed to the SPU main function.
Definition spu.h:225
u64 arg2
Third argument.
Definition spu.h:228
u64 arg1
Second argument.
Definition spu.h:227
u64 arg0
First argument.
Definition spu.h:226
u64 arg3
Fourth argument.
Definition spu.h:229
A structure containing SPU thread attributes.
Definition spu.h:240
const char *name ATTRIBUTE_PRXPTR
Effective address of the thread's name string.
Definition spu.h:241
u32 option
OR'ed list of SPU thread attribute flags (or SPU_THREAD_ATTR_NONE)
Definition spu.h:243
u32 nsize
Size of the name string in bytes (including terminating null byte).
Definition spu.h:242
A structure containing SPU thread group attributes.
Definition spu.h:248
union _sys_spu_thread_group_attr::@0 option
u32 nsize
Size of the name string in bytes (including terminating null byte).
Definition spu.h:249
const char *name ATTRIBUTE_PRXPTR
Effective address of the thread group's name string.
Definition spu.h:250
u32 type
Thread group type (0 for normal thread groups).
Definition spu.h:251
sys_mem_container_t ct
Memory container id (0 for normal thread groups).
Definition spu.h:253
LV2_SYSCALL sysSpuThreadWriteMb(sys_spu_thread_t thread, u32 value)
Write to the SPU thread's inbound mailbox register.
Definition spu.h:759
LV2_SYSCALL sysSpuThreadGroupJoin(sys_spu_group_t group, u32 *cause, u32 *status)
Wait for a SPU thread group to finish its execution.
Definition spu.h:886
LV2_SYSCALL sysSpuThreadGroupConnectEvent(sys_spu_group_t group, sys_event_queue_t eventQ, u32 eventType)
Definition spu.h:922
LV2_SYSCALL sysSpuThreadGroupCreate(sys_spu_group_t *group, u32 num, u32 prio, sysSpuThreadGroupAttribute *attr)
Create a SPU thread group.
Definition spu.h:791
struct _sys_spu_thread_arg sysSpuThreadArgument
A structure containing the arguments passed to the SPU main function.
LV2_SYSCALL sysSpuThreadBindQueue(sys_spu_thread_t thread, sys_event_queue_t queue, u32 spuq_num)
Bind an event queue to a SPU thread.
Definition spu.h:635
LV2_SYSCALL sysSpuThreadGroupTerminate(sys_spu_group_t group, u32 value)
Terminate a SPU thread group.
Definition spu.h:869
LV2_SYSCALL sysSpuRawSetIntStat(sys_raw_spu_t spu, u32 classid, u64 stat)
Set the value of the interrupt status register for a raw SPU.
Definition spu.h:418
LV2_SYSCALL sysSpuThreadGroupYield(sys_spu_group_t group)
Yield a SPU thread group.
Definition spu.h:856
LV2_SYSCALL sysSpuThreadGroupSetPriority(sys_spu_group_t group, u32 prio)
Set a SPU thread group's priority.
Definition spu.h:901
LV2_SYSCALL sysSpuThreadSetArguments(sys_spu_thread_t thread, sysSpuThreadArgument *arguments)
Set the SPU thread arguments.
Definition spu.h:563
static u32 sysSpuRawReadLocalStorage(sys_raw_spu_t spu, u32 reg)
Definition spu.h:961
LV2_SYSCALL sysSpuThreadConnectEvent(sys_spu_thread_t thread, sys_event_queue_t queue, u32 type, u8 spup)
Connect an event queue to a SPU thread.
Definition spu.h:600
LV2_SYSCALL sysSpuThreadGroupSuspend(sys_spu_group_t group)
Suspend a SPU thread group.
Definition spu.h:830
LV2_SYSCALL sysSpuThreadReadLocalStorage(sys_spu_thread_t thread, u32 address, u64 *value, u32 type)
Read a value From the SPU thread's local store memory.
Definition spu.h:687
LV2_SYSCALL sysSpuThreadGroupGetPriority(sys_spu_group_t group, u32 *prio)
Get a SPU thread group's priority.
Definition spu.h:916
LV2_SYSCALL sysSpuRawGetIntStat(sys_raw_spu_t spu, u32 classid, u64 *stat)
Get the value of the interrupt status register for a raw SPU.
Definition spu.h:434
LV2_SYSCALL sysSpuRawRecoverPageFault(sys_raw_spu_t spu)
Recover a raw SPU from a page fault.
Definition spu.h:497
LV2_SYSCALL sysSpuThreadGetConfiguration(sys_spu_thread_t thread, u64 *value)
Get the configuration of the SPU thread's signal notification.
Definition spu.h:744
LV2_SYSCALL sysSpuThreadGroupStart(sys_spu_group_t group)
Start a SPU thread group.
Definition spu.h:817
static void sysSpuRawWriteProblemStorage(sys_raw_spu_t spu, u32 reg, u32 value)
Definition spu.h:946
LV2_SYSCALL sysSpuThreadWriteLocalStorage(sys_spu_thread_t thread, u32 address, u64 value, u32 type)
Write a value to a SPU thread's local store memory.
Definition spu.h:668
LV2_SYSCALL sysSpuThreadGroupDisonnectEventAllThreads(sys_spu_group_t group, u8 spup)
Definition spu.h:940
LV2_SYSCALL sysSpuRawCreateInterrupTag(sys_raw_spu_t spu, u32 classid, u32 hardwarethread, u32 *tag)
Create an interrupt tag for a raw SPU.
Definition spu.h:370
LV2_SYSCALL sysSpuThreadRecoverPageFault(sys_spu_thread_t thread)
Recover from a SPU thread page fault.
Definition spu.h:772
struct _sys_spu_thread_attr sysSpuThreadAttribute
A structure containing SPU thread attributes.
LV2_SYSCALL sysSpuThreadDisconnectEvent(sys_spu_thread_t thread, u32 type, u8 spup)
Disconnect an event queue from a SPU thread.
Definition spu.h:619
LV2_SYSCALL sysSpuImageOpen(sysSpuImage *image, const char *path)
Create a SPU image from an ELF file.
Definition spu.h:511
LV2_SYSCALL sysSpuRawGetIntMask(sys_raw_spu_t spu, u32 classid, u64 *mask)
Get the value of the interrupt mask register for a raw SPU.
Definition spu.h:402
#define SPU_RAW_GET_LOCAL_STORAGE(spu, reg)
Returns the memory-mapped address of local storage of a raw SPU.
Definition spu.h:198
LV2_SYSCALL sysSpuThreadGroupConnectEventAllThreads(sys_spu_group_t group, sys_event_queue_t eventQ, u64 req, u8 *spup)
Definition spu.h:934
static void sysSpuThreadWriteProblemStorage(sys_raw_spu_t spu, u32 reg, u32 value)
Definition spu.h:966
LV2_SYSCALL sysSpuImageOpenFd(sysSpuImage *image, s32 fd, u64 offset)
Create a SPU image from an open binary file.
Definition spu.h:527
LV2_SYSCALL sysSpuRawSetIntMask(sys_raw_spu_t spu, u32 classid, u64 mask)
Set the value of the interrupt mask register for a raw SPU.
Definition spu.h:386
LV2_SYSCALL sysSpuRawGetConfirugation(sys_raw_spu_t spu, u32 *value)
Get the configuration of the raw SPU's signal notification.
Definition spu.h:485
LV2_SYSCALL sysSpuThreadGroupResume(sys_spu_group_t group)
Resume a SPU thread group.
Definition spu.h:843
LV2_SYSCALL sysSpuThreadInitialize(sys_spu_thread_t *thread, sys_spu_group_t group, u32 spu, sysSpuImage *image, sysSpuThreadAttribute *attributes, sysSpuThreadArgument *arguments)
Initialize a SPU thread.
Definition spu.h:549
static void sysSpuRawWriteLocalStorage(sys_raw_spu_t spu, u32 reg, u32 value)
Definition spu.h:956
LV2_SYSCALL sysSpuRawCreate(sys_raw_spu_t *spu, u32 *attributes)
Allocate a raw SPU.
Definition spu.h:340
LV2_SYSCALL sysSpuThreadSetConfiguration(sys_spu_thread_t thread, u64 value)
Configure the SPU thread's signal notification.
Definition spu.h:724
#define SPU_THREAD_GET_PROBLEM_STORAGE(spu, reg)
Returns the memory-mapped address of problem storage of a SPU thread.
Definition spu.h:216
LV2_SYSCALL sysSpuRawDestroy(sys_raw_spu_t spu)
De-allocate a raw SPU.
Definition spu.h:352
static u32 sysSpuThreadReadProblemStorage(sys_raw_spu_t spu, u32 reg)
Definition spu.h:971
LV2_SYSCALL sysSpuThreadGetExitStatus(sys_spu_thread_t thread, s32 *status)
Get the exit status of a thread.
Definition spu.h:579
LV2_SYSCALL sysSpuInitialize(u32 spus, u32 rawspus)
Initialize the SPU management.
Definition spu.h:326
struct _sys_spu_thread_group_attr sysSpuThreadGroupAttribute
A structure containing SPU thread group attributes.
LV2_SYSCALL sysSpuThreadGroupDestroy(sys_spu_group_t group)
Destroy a SPU thread group.
Definition spu.h:804
#define SPU_RAW_GET_PROBLEM_STORAGE(spu, reg)
Returns the memory-mapped address of problem storage of a raw SPU.
Definition spu.h:202
LV2_SYSCALL sysSpuThreadGroupDisconnectEvent(sys_spu_group_t group, u32 eventType)
Definition spu.h:928
LV2_SYSCALL sysSpuThreadWriteSignal(sys_spu_thread_t thread, u32 signal, u32 value)
Write to the SPU thread's signal notification register.
Definition spu.h:705
LV2_SYSCALL sysSpuThreadUnbindQueue(sys_spu_thread_t thread, u32 spuq_num)
Unbind an event queue from a SPU thread.
Definition spu.h:649
LV2_SYSCALL sysSpuRawReadPuintMb(sys_raw_spu_t spu, u32 *value)
Read from the raw SPU's outbound interrupt mailbox register.
Definition spu.h:448
LV2_SYSCALL sysSpuRawSetConfiguration(sys_raw_spu_t spu, u32 value)
Configure the raw SPU's signal notification.
Definition spu.h:466
static u32 sysSpuRawReadProblemStorage(sys_raw_spu_t spu, u32 reg)
Definition spu.h:951