psl1ght
A free SDK for Sony's PS3 console
Loading...
Searching...
No Matches
dbg.h
Go to the documentation of this file.
1
5#ifndef __SYS_DBG_H__
6#define __SYS_DBG_H__
7
8#include <ppu-types.h>
9#include <sys/thread.h>
10#include <sys/event_queue.h>
11
13#define SYS_DBG_PPU_NUM_GPR 32
15#define SYS_DBG_PPU_NUM_FPR 32
17#define SYS_DBG_PPU_NUM_VR 32
19#define SYS_DBG_PPU_VR_WIDTH 16
20
22#define SYS_DBG_SPU_NUM_GPR 128
24#define SYS_DBG_SPU_NUM_MFC_CQ_SR 96
26#define SYS_DBG_SPU_GPR_WIDTH 16
28#define SYS_DBG_SPU_NUM_MB 4
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
46
60
62typedef union
63{
67 u16 halfword[SYS_DBG_PPU_VR_WIDTH/sizeof(u16)];
69 u32 word[SYS_DBG_PPU_VR_WIDTH/sizeof(u32)];
71 u64 dword[SYS_DBG_PPU_VR_WIDTH/sizeof(u64)];
73
75typedef union
76{
80 u16 halfword[SYS_DBG_SPU_GPR_WIDTH/sizeof(u16)];
82 u32 word[SYS_DBG_SPU_GPR_WIDTH/sizeof(u32)];
84 u64 dword[SYS_DBG_SPU_GPR_WIDTH/sizeof(u64)];
86
101
117
119typedef void (*dbg_exception_handler_t)(u64 cause,sys_ppu_thread_t tid,u64 dar);
120
126
134s32 sysDbgGetSPUThreadGroupIds(u32 *group_ids,u64 *num_ids,u64 *num_all_ids);
135
143s32 sysDbgGetPPUThreadIds(sys_ppu_thread_t *ids,u64 *num_ids,u64 *num_all_ids);
144
154s32 sysDbgGetSPUThreadIds(u32 group_id,u32 *thread_ids,u64 *num_ids,u64 *num_all_ids);
155
162//s32 sysDbgGetEventQueueInformation();
163
169s32 sysDbgGetPPUThreadName(sys_ppu_thread_t id,char *name);
170
176s32 sysDbgGetSPUThreadName(u32 thread_id,char *name);
177//s32 sysDbgGetMutexInformation();
178//s32 sysDbgGetCondInformation();
179
186//s32 sysDbgGetRWLockInformation();
187
194//s32 sysDbgGetSemaphoreInformation();
195
201s32 sysDbgGetSPUThreadGroupName(u32 group_id,char *name);
202
207
214
220
227
232//s32 sysDbgGetLwMutexInformation();
233
234#ifdef __cplusplus
235 }
236#endif
237
238#endif
s32 sysDbgInitializePPUExceptionHandler(s32 prio)
Initialization of the PPU thread exception handler.
void(* dbg_exception_handler_t)(u64 cause, sys_ppu_thread_t tid, u64 dar)
Function pointer to a PPU exception handler.
Definition dbg.h:119
s32 sysDbgGetPPUThreadIds(sys_ppu_thread_t *ids, u64 *num_ids, u64 *num_all_ids)
Get the list of PPU thread ids.
sys_dbg_ppu_thread_status_t
Possible statuses for PPU threads.
Definition dbg.h:36
@ PPU_THREAD_STATUS_UNKNOWN
Definition dbg.h:44
@ PPU_THREAD_STATUS_SLEEP
Definition dbg.h:40
@ PPU_THREAD_STATUS_ONPROC
Definition dbg.h:39
@ PPU_THREAD_STATUS_ZOMBIE
Definition dbg.h:42
@ PPU_THREAD_STATUS_IDLE
Definition dbg.h:37
@ PPU_THREAD_STATUS_DELETED
Definition dbg.h:43
@ PPU_THREAD_STATUS_STOP
Definition dbg.h:41
@ PPU_THREAD_STATUS_RUNNABLE
Definition dbg.h:38
s32 sysDbgSetStacksizePPUExceptionHandler(size_t stacksize)
Set stack size of PPU thread exception handler.
s32 sysDbgGetSPUThreadGroupIds(u32 *group_ids, u64 *num_ids, u64 *num_all_ids)
Get the list of SPU thread group ids.
s32 sysDbgGetPPUThreadName(sys_ppu_thread_t id, char *name)
Get PPU thread name.
sys_dbg_spu_thread_group_status_t
Possible statuses for PPU thread groups.
Definition dbg.h:49
@ SPU_THREAD_GROUP_STATUS_WAITING_AND_SUSPENDED
Definition dbg.h:55
@ SPU_THREAD_GROUP_STATUS_UNKNOWN
Definition dbg.h:58
@ SPU_THREAD_GROUP_STATUS_NOTINITIALIZED
Definition dbg.h:50
@ SPU_THREAD_GROUP_STATUS_STOPPED
Definition dbg.h:57
@ SPU_THREAD_GROUP_STATUS_RUNNING
Definition dbg.h:56
@ SPU_THREAD_GROUP_STATUS_SUSPENDED
Definition dbg.h:54
@ SPU_THREAD_GROUP_STATUS_WAITING
Definition dbg.h:53
@ SPU_THREAD_GROUP_STATUS_INITIALIZED
Definition dbg.h:51
@ SPU_THREAD_GROUP_STATUS_READY
Definition dbg.h:52
#define SYS_DBG_PPU_NUM_VR
number of PPU VR registers
Definition dbg.h:17
s32 sysDbgUnregisterPPUExceptionHandler()
Unregister the PPU thread exception handler.
s32 sysDbgGetGetSPUThreadGroupStatus(u32 group_id, sys_dbg_spu_thread_group_status_t *status)
Get SPU thread group status.
s32 sysDbgGetPPUThreadStatus(sys_ppu_thread_t id, sys_dbg_ppu_thread_status_t *status)
Get PPU thread status.
#define SYS_DBG_PPU_NUM_GPR
number of PPU GPR registers
Definition dbg.h:13
s32 sysDbgFinalizePPUExceptionHandler()
#define SYS_DBG_SPU_NUM_MB
number of SPU inbound MB entries
Definition dbg.h:28
s32 sysDbgReadPPUThreadContext(sys_ppu_thread_t id, sys_dbg_ppu_thread_context_t *context)
Read a PPU thread context.
s32 sysDbgRegisterPPUExceptionHandler(dbg_exception_handler_t handler, u64 flags)
Register a PPU exception handler.
s32 sysDbgReadSPUThreadContext(u32 thread_id, sys_dbg_spu_thread_context_t *context)
Read a SPU thread context.
s32 sysDbgGetSPUThreadGroupName(u32 group_id, char *name)
Get SPU thread group name.
#define SYS_DBG_PPU_VR_WIDTH
size (in bytes) of a PPU VR register
Definition dbg.h:19
#define SYS_DBG_SPU_GPR_WIDTH
size (in bytes) of a SPU GPR register
Definition dbg.h:26
s32 sysDbgGetSPUThreadName(u32 thread_id, char *name)
Get SPU thread name.
struct _sys_dbg_ppu_thread_context sys_dbg_ppu_thread_context_t
PPU thread context.
#define SYS_DBG_PPU_NUM_FPR
number of PPU FPR registers
Definition dbg.h:15
#define SYS_DBG_SPU_NUM_GPR
number of SPU GPR registers
Definition dbg.h:22
#define SYS_DBG_SPU_NUM_MFC_CQ_SR
number of SPU MFC/CQ/SR registers
Definition dbg.h:24
s32 sysDbgGetSPUThreadIds(u32 group_id, u32 *thread_ids, u64 *num_ids, u64 *num_all_ids)
Get the list of SPU thread ids in a SPU thread group.
struct _sys_dbg_spu_thread_context sys_dbg_spu_thread_context_t
SPU thread context.
Event queue management functions.
PPU thread context.
Definition dbg.h:89
u32 cr
CR register.
Definition dbg.h:91
u32 fpscr
FPSCR register.
Definition dbg.h:97
u64 gpr[32]
GPR registers.
Definition dbg.h:90
u32 ctr
CTR register.
Definition dbg.h:94
u32 lr
LR register.
Definition dbg.h:93
u32 xer
XER register.
Definition dbg.h:92
sys_dbg_vr_t vscr
VSCR register.
Definition dbg.h:99
u64 fpr[32]
FPR registers.
Definition dbg.h:96
u32 pc
PC register.
Definition dbg.h:95
sys_dbg_vr_t vr[32]
VR registers.
Definition dbg.h:98
SPU thread context.
Definition dbg.h:104
u32 spu_status
SPU status.
Definition dbg.h:109
sys_dbg_spu_gpr_t gpr[128]
GPR registers.
Definition dbg.h:105
u32 decrementer
Decrementer register.
Definition dbg.h:114
u32 fpscr
FPSCR register.
Definition dbg.h:107
u32 mb_stat
MB status register.
Definition dbg.h:111
u32 ppu_mb
outbound MB register
Definition dbg.h:112
u64 spu_cfg
SPU config.
Definition dbg.h:110
u32 spu_mb[4]
inbound MB queue
Definition dbg.h:113
u64 mfc_cq_sr[96]
MFC CQ SR registers.
Definition dbg.h:115
u32 srr0
SRR0 register.
Definition dbg.h:108
u32 npc
NPC register.
Definition dbg.h:106
PPU thread syscalls.
contents of a SPU GPR register
Definition dbg.h:76
contents of a PPU VR register
Definition dbg.h:63