pspsdk-1.0+beta2
Main Page
Modules
Data Structures
Files
File List
Globals
pspsdk-1.0+beta2
Modules
Data Structures
Files
File List
src
asfparser
atrac3
audio
base
ctrl
debug
display
fpu
ge
gu
gum
hprm
kernel
libc
mp3
mpeg
nand
net
openpsid
power
prof
registry
rtc
sdk
sircs
startup
umd
usb
usbstor
user
pspintrman.c
pspintrman.h
pspiofilemgr.h
pspiofilemgr_dirent.h
pspiofilemgr_fcntl.h
pspiofilemgr_stat.h
pspkerneltypes.h
pspkerror.h
psploadexec.h
pspmoduleexport.h
pspmoduleinfo.h
pspmodulemgr.h
pspmscm.h
pspstdio.h
pspsuspend.h
pspsysmem.h
pspthreadman.h
pspuser.h
psputils.h
utility
vfpu
video
vsh
wlan
tools
Globals
pspthreadman.h
Go to the documentation of this file.
1
/*
2
* PSP Software Development Kit - http://www.pspdev.org
3
* -----------------------------------------------------------------------
4
* Licensed under the BSD license, see LICENSE in PSPSDK root for details.
5
*
6
* pspthreadman.h - Library imports for the kernel threading library.
7
*
8
* Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
9
* Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
10
* Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
11
* Copyright (c) 2005 Florin Sasu
12
*
13
* $Id: pspthreadman.h 2433 2008-10-15 10:00:27Z iwn $
14
*/
15
#ifndef __THREADMAN_H__
16
#define __THREADMAN_H__
17
18
#include <
psptypes.h
>
19
#include <
pspkerneltypes.h
>
20
/* Include for profile register definitions */
21
#include <
pspdebug.h
>
22
23
/* Note: Some of the structures, types, and definitions in this file were
24
extrapolated from symbolic debugging information found in the Japanese
25
version of Puzzle Bobble. */
26
31
#ifdef __cplusplus
32
extern
"C"
{
33
#endif
34
38
40
typedef
struct
SceKernelSysClock
{
41
SceUInt32
low
;
42
SceUInt32
hi
;
43
}
SceKernelSysClock
;
44
46
enum
PspThreadAttributes
47
{
49
PSP_THREAD_ATTR_VFPU
= 0x00004000,
52
PSP_THREAD_ATTR_USER
= 0x80000000,
54
PSP_THREAD_ATTR_USBWLAN
= 0xa0000000,
56
PSP_THREAD_ATTR_VSH
= 0xc0000000,
58
PSP_THREAD_ATTR_SCRATCH_SRAM
= 0x00008000,
60
PSP_THREAD_ATTR_NO_FILLSTACK
= 0x00100000,
62
PSP_THREAD_ATTR_CLEAR_STACK
= 0x00200000,
63
};
64
65
/* Maintained for compatibility with older versions of PSPSDK. */
66
#define THREAD_ATTR_VFPU PSP_THREAD_ATTR_VFPU
67
#define THREAD_ATTR_USER PSP_THREAD_ATTR_USER
68
69
70
/* Threads. */
71
72
typedef
int (*
SceKernelThreadEntry
)(
SceSize
args,
void
*argp);
73
75
typedef
struct
SceKernelThreadOptParam
{
77
SceSize
size
;
79
SceUID
stackMpid
;
80
}
SceKernelThreadOptParam
;
81
85
typedef
struct
SceKernelThreadInfo
{
87
SceSize
size
;
89
char
name
[32];
91
SceUInt
attr
;
93
int
status
;
95
SceKernelThreadEntry
entry
;
97
void
*
stack
;
99
int
stackSize
;
101
void
*
gpReg
;
103
int
initPriority
;
105
int
currentPriority
;
107
int
waitType
;
109
SceUID
waitId
;
111
int
wakeupCount
;
113
int
exitStatus
;
115
SceKernelSysClock
runClocks
;
117
SceUInt
intrPreemptCount
;
119
SceUInt
threadPreemptCount
;
121
SceUInt
releaseCount
;
122
}
SceKernelThreadInfo
;
123
127
typedef
struct
SceKernelThreadRunStatus
{
128
SceSize
size
;
129
int
status
;
130
int
currentPriority
;
131
int
waitType
;
132
int
waitId
;
133
int
wakeupCount
;
134
SceKernelSysClock
runClocks
;
135
SceUInt
intrPreemptCount
;
136
SceUInt
threadPreemptCount
;
137
SceUInt
releaseCount
;
138
}
SceKernelThreadRunStatus
;
139
140
/* Sure there must be more than this, but haven't seen them */
141
enum
PspThreadStatus
142
{
143
PSP_THREAD_RUNNING
= 1,
144
PSP_THREAD_READY
= 2,
145
PSP_THREAD_WAITING
= 4,
146
PSP_THREAD_SUSPEND
= 8,
147
PSP_THREAD_STOPPED
= 16,
148
PSP_THREAD_KILLED
= 32,
/* Thread manager has killed the thread (stack overflow) */
149
};
150
169
SceUID
sceKernelCreateThread
(
const
char
*
name
,
SceKernelThreadEntry
entry,
int
initPriority,
170
int
stackSize,
SceUInt
attr
,
SceKernelThreadOptParam
*
option
);
171
179
int
sceKernelDeleteThread
(
SceUID
thid);
180
188
int
sceKernelStartThread
(
SceUID
thid,
SceSize
arglen,
void
*argp);
189
195
int
sceKernelExitThread
(
int
status);
196
202
int
sceKernelExitDeleteThread
(
int
status);
203
211
int
sceKernelTerminateThread
(
SceUID
thid);
212
220
int
sceKernelTerminateDeleteThread
(
SceUID
thid);
221
227
int
sceKernelSuspendDispatchThread
(
void
);
228
237
int
sceKernelResumeDispatchThread
(
int
state);
238
244
int
sceKernelSleepThread
(
void
);
245
255
int
sceKernelSleepThreadCB
(
void
);
256
264
int
sceKernelWakeupThread
(
SceUID
thid);
265
273
int
sceKernelCancelWakeupThread
(
SceUID
thid);
274
282
int
sceKernelSuspendThread
(
SceUID
thid);
283
291
int
sceKernelResumeThread
(
SceUID
thid);
292
301
int
sceKernelWaitThreadEnd
(
SceUID
thid,
SceUInt
*timeout);
302
311
int
sceKernelWaitThreadEndCB
(
SceUID
thid,
SceUInt
*timeout);
312
323
int
sceKernelDelayThread
(
SceUInt
delay);
324
335
int
sceKernelDelayThreadCB
(
SceUInt
delay);
336
344
int
sceKernelDelaySysClockThread
(
SceKernelSysClock
*delay);
345
354
int
sceKernelDelaySysClockThreadCB
(
SceKernelSysClock
*delay);
355
364
int
sceKernelChangeCurrentThreadAttr
(
int
unknown,
SceUInt
attr
);
365
381
int
sceKernelChangeThreadPriority
(
SceUID
thid,
int
priority);
382
390
int
sceKernelRotateThreadReadyQueue
(
int
priority);
391
399
int
sceKernelReleaseWaitThread
(
SceUID
thid);
400
406
int
sceKernelGetThreadId
(
void
);
407
413
int
sceKernelGetThreadCurrentPriority
(
void
);
414
422
int
sceKernelGetThreadExitStatus
(
SceUID
thid);
423
429
int
sceKernelCheckThreadStack
(
void
);
430
439
int
sceKernelGetThreadStackFreeSize
(
SceUID
thid);
440
458
int
sceKernelReferThreadStatus
(
SceUID
thid,
SceKernelThreadInfo
*info);
459
468
int
sceKernelReferThreadRunStatus
(
SceUID
thid,
SceKernelThreadRunStatus
*status);
469
470
471
/* Semaphores. */
472
474
typedef
struct
SceKernelSemaOptParam
{
476
SceSize
size
;
477
}
SceKernelSemaOptParam
;
478
482
typedef
struct
SceKernelSemaInfo
{
484
SceSize
size
;
486
char
name
[32];
488
SceUInt
attr
;
490
int
initCount
;
492
int
currentCount
;
494
int
maxCount
;
496
int
numWaitThreads
;
497
}
SceKernelSemaInfo
;
498
515
SceUID
sceKernelCreateSema
(
const
char
*
name
,
SceUInt
attr
,
int
initVal,
int
maxVal,
SceKernelSemaOptParam
*
option
);
516
523
int
sceKernelDeleteSema
(
SceUID
semaid);
524
539
int
sceKernelSignalSema
(
SceUID
semaid,
int
signal);
540
555
int
sceKernelWaitSema
(
SceUID
semaid,
int
signal,
SceUInt
*timeout);
556
571
int
sceKernelWaitSemaCB
(
SceUID
semaid,
int
signal,
SceUInt
*timeout);
572
581
int
sceKernelPollSema
(
SceUID
semaid,
int
signal);
582
591
int
sceKernelReferSemaStatus
(
SceUID
semaid,
SceKernelSemaInfo
*info);
592
593
594
/* Event flags. */
595
597
typedef
struct
SceKernelEventFlagInfo
{
598
SceSize
size
;
599
char
name
[32];
600
SceUInt
attr
;
601
SceUInt
initPattern
;
602
SceUInt
currentPattern
;
603
int
numWaitThreads
;
604
}
SceKernelEventFlagInfo
;
605
606
struct
SceKernelEventFlagOptParam
{
607
SceSize
size
;
608
};
609
610
typedef
struct
SceKernelEventFlagOptParam
SceKernelEventFlagOptParam
;
611
613
enum
PspEventFlagAttributes
614
{
616
PSP_EVENT_WAITMULTIPLE
= 0x200
617
};
618
620
enum
PspEventFlagWaitTypes
621
{
623
PSP_EVENT_WAITAND
= 0,
625
PSP_EVENT_WAITOR
= 1,
627
PSP_EVENT_WAITCLEAR
= 0x20
628
};
629
645
SceUID
sceKernelCreateEventFlag
(
const
char
*
name
,
int
attr
,
int
bits,
SceKernelEventFlagOptParam
*opt);
646
655
int
sceKernelSetEventFlag
(
SceUID
evid,
u32
bits);
656
665
int
sceKernelClearEventFlag
(
SceUID
evid,
u32
bits);
666
676
int
sceKernelPollEventFlag
(
int
evid,
u32
bits,
u32
wait,
u32
*outBits);
677
688
int
sceKernelWaitEventFlag
(
int
evid,
u32
bits,
u32
wait,
u32
*outBits,
SceUInt
*timeout);
689
700
int
sceKernelWaitEventFlagCB
(
int
evid,
u32
bits,
u32
wait,
u32
*outBits,
SceUInt
*timeout);
701
709
int
sceKernelDeleteEventFlag
(
int
evid);
710
719
int
sceKernelReferEventFlagStatus
(
SceUID
event,
SceKernelEventFlagInfo
*status);
720
721
722
/* Message boxes. */
723
725
typedef
struct
SceKernelMbxOptParam
{
727
SceSize
size
;
728
}
SceKernelMbxOptParam
;
729
733
typedef
struct
SceKernelMbxInfo
{
735
SceSize
size
;
737
char
name
[32];
739
SceUInt
attr
;
741
int
numWaitThreads
;
743
int
numMessages
;
745
void
*
firstMessage
;
746
}
SceKernelMbxInfo
;
747
751
typedef
struct
SceKernelMsgPacket
{
753
struct
SceKernelMsgPacket
*
next
;
755
SceUChar
msgPriority
;
756
SceUChar
dummy
[3];
758
}
SceKernelMsgPacket
;
759
774
SceUID
sceKernelCreateMbx
(
const
char
*
name
,
SceUInt
attr
,
SceKernelMbxOptParam
*
option
);
775
782
int
sceKernelDeleteMbx
(
SceUID
mbxid);
783
806
int
sceKernelSendMbx
(
SceUID
mbxid,
void
*message);
807
824
int
sceKernelReceiveMbx
(
SceUID
mbxid,
void
**pmessage,
SceUInt
*timeout);
825
842
int
sceKernelReceiveMbxCB
(
SceUID
mbxid,
void
**pmessage,
SceUInt
*timeout);
843
859
int
sceKernelPollMbx
(
SceUID
mbxid,
void
**pmessage);
860
876
int
sceKernelCancelReceiveMbx
(
SceUID
mbxid,
int
*pnum);
877
886
int
sceKernelReferMbxStatus
(
SceUID
mbxid,
SceKernelMbxInfo
*info);
887
888
889
/* Alarms. */
890
892
typedef
SceUInt
(*
SceKernelAlarmHandler
)(
void
*common);
893
895
typedef
struct
SceKernelAlarmInfo
{
898
SceSize
size
;
899
/* The current schedule */
900
SceKernelSysClock
schedule
;
902
SceKernelAlarmHandler
handler
;
904
void
*
common
;
905
}
SceKernelAlarmInfo
;
906
915
SceUID
sceKernelSetAlarm
(
SceUInt
clock
,
SceKernelAlarmHandler
handler,
void
*common);
916
926
SceUID
sceKernelSetSysClockAlarm
(
SceKernelSysClock
*
clock
,
SceKernelAlarmHandler
handler,
void
*common);
927
935
int
sceKernelCancelAlarm
(
SceUID
alarmid);
936
945
int
sceKernelReferAlarmStatus
(
SceUID
alarmid,
SceKernelAlarmInfo
*info);
946
947
/* Callbacks. */
948
950
typedef
int (*
SceKernelCallbackFunction
)(
int
arg1,
int
arg2,
void
*arg);
951
953
typedef
struct
SceKernelCallbackInfo
{
955
SceSize
size
;
957
char
name
[32];
959
SceUID
threadId
;
961
SceKernelCallbackFunction
callback
;
963
void
*
common
;
965
int
notifyCount
;
967
int
notifyArg
;
968
}
SceKernelCallbackInfo
;
969
985
int
sceKernelCreateCallback
(
const
char
*
name
,
SceKernelCallbackFunction
func,
void
*arg);
986
996
int
sceKernelReferCallbackStatus
(
SceUID
cb,
SceKernelCallbackInfo
*status);
997
1005
int
sceKernelDeleteCallback
(
SceUID
cb);
1006
1015
int
sceKernelNotifyCallback
(
SceUID
cb,
int
arg2);
1016
1024
int
sceKernelCancelCallback
(
SceUID
cb);
1025
1033
int
sceKernelGetCallbackCount
(
SceUID
cb);
1034
1040
int
sceKernelCheckCallback
(
void
);
1041
1042
/* Misc. */
1043
1045
enum
SceKernelIdListType
1046
{
1047
SCE_KERNEL_TMID_Thread
= 1,
1048
SCE_KERNEL_TMID_Semaphore
= 2,
1049
SCE_KERNEL_TMID_EventFlag
= 3,
1050
SCE_KERNEL_TMID_Mbox
= 4,
1051
SCE_KERNEL_TMID_Vpl
= 5,
1052
SCE_KERNEL_TMID_Fpl
= 6,
1053
SCE_KERNEL_TMID_Mpipe
= 7,
1054
SCE_KERNEL_TMID_Callback
= 8,
1055
SCE_KERNEL_TMID_ThreadEventHandler
= 9,
1056
SCE_KERNEL_TMID_Alarm
= 10,
1057
SCE_KERNEL_TMID_VTimer
= 11,
1058
SCE_KERNEL_TMID_SleepThread
= 64,
1059
SCE_KERNEL_TMID_DelayThread
= 65,
1060
SCE_KERNEL_TMID_SuspendThread
= 66,
1061
SCE_KERNEL_TMID_DormantThread
= 67,
1062
};
1063
1075
int
sceKernelGetThreadmanIdList
(
enum
SceKernelIdListType
type
,
SceUID
*readbuf,
int
readbufsize,
int
*idcount);
1076
1078
typedef
struct
SceKernelSystemStatus
{
1080
SceSize
size
;
1082
SceUInt
status
;
1084
SceKernelSysClock
idleClocks
;
1086
SceUInt
comesOutOfIdleCount
;
1088
SceUInt
threadSwitchCount
;
1090
SceUInt
vfpuSwitchCount
;
1091
}
SceKernelSystemStatus
;
1092
1100
int
sceKernelReferSystemStatus
(
SceKernelSystemStatus
*status);
1101
1102
1114
SceUID
sceKernelCreateMsgPipe
(
const
char
*
name
,
int
part,
int
attr
,
void
*unk1,
void
*opt);
1115
1123
int
sceKernelDeleteMsgPipe
(
SceUID
uid);
1124
1137
int
sceKernelSendMsgPipe
(
SceUID
uid,
void
*message,
unsigned
int
size
,
int
unk1,
void
*unk2,
unsigned
int
*timeout);
1138
1151
int
sceKernelSendMsgPipeCB
(
SceUID
uid,
void
*message,
unsigned
int
size
,
int
unk1,
void
*unk2,
unsigned
int
*timeout);
1152
1164
int
sceKernelTrySendMsgPipe
(
SceUID
uid,
void
*message,
unsigned
int
size
,
int
unk1,
void
*unk2);
1165
1178
int
sceKernelReceiveMsgPipe
(
SceUID
uid,
void
*message,
unsigned
int
size
,
int
unk1,
void
*unk2,
unsigned
int
*timeout);
1179
1192
int
sceKernelReceiveMsgPipeCB
(
SceUID
uid,
void
*message,
unsigned
int
size
,
int
unk1,
void
*unk2,
unsigned
int
*timeout);
1193
1205
int
sceKernelTryReceiveMsgPipe
(
SceUID
uid,
void
*message,
unsigned
int
size
,
int
unk1,
void
*unk2);
1206
1216
int
sceKernelCancelMsgPipe
(
SceUID
uid,
int
*psend,
int
*precv);
1217
1219
typedef
struct
SceKernelMppInfo
{
1220
SceSize
size
;
1221
char
name
[32];
1222
SceUInt
attr
;
1223
int
bufSize
;
1224
int
freeSize
;
1225
int
numSendWaitThreads
;
1226
int
numReceiveWaitThreads
;
1227
}
SceKernelMppInfo
;
1228
1237
int
sceKernelReferMsgPipeStatus
(
SceUID
uid,
SceKernelMppInfo
*info);
1238
1239
/* VPL Functions */
1240
1241
struct
SceKernelVplOptParam
{
1242
SceSize
size
;
1243
};
1244
1256
SceUID
sceKernelCreateVpl
(
const
char
*
name
,
int
part,
int
attr
,
unsigned
int
size
,
struct
SceKernelVplOptParam
*opt);
1257
1265
int
sceKernelDeleteVpl
(
SceUID
uid);
1266
1277
int
sceKernelAllocateVpl
(
SceUID
uid,
unsigned
int
size
,
void
**data,
unsigned
int
*timeout);
1278
1289
int
sceKernelAllocateVplCB
(
SceUID
uid,
unsigned
int
size
,
void
**data,
unsigned
int
*timeout);
1290
1300
int
sceKernelTryAllocateVpl
(
SceUID
uid,
unsigned
int
size
,
void
**data);
1301
1310
int
sceKernelFreeVpl
(
SceUID
uid,
void
*data);
1311
1320
int
sceKernelCancelVpl
(
SceUID
uid,
int
*pnum);
1321
1323
typedef
struct
SceKernelVplInfo
{
1324
SceSize
size
;
1325
char
name
[32];
1326
SceUInt
attr
;
1327
int
poolSize
;
1328
int
freeSize
;
1329
int
numWaitThreads
;
1330
}
SceKernelVplInfo
;
1331
1340
int
sceKernelReferVplStatus
(
SceUID
uid,
SceKernelVplInfo
*info);
1341
1342
/* FPL Functions */
1343
1344
struct
SceKernelFplOptParam
{
1345
SceSize
size
;
1346
};
1347
1360
int
sceKernelCreateFpl
(
const
char
*
name
,
int
part,
int
attr
,
unsigned
int
size
,
unsigned
int
blocks,
struct
SceKernelFplOptParam
*opt);
1361
1369
int
sceKernelDeleteFpl
(
SceUID
uid);
1370
1380
int
sceKernelAllocateFpl
(
SceUID
uid,
void
**data,
unsigned
int
*timeout);
1381
1391
int
sceKernelAllocateFplCB
(
SceUID
uid,
void
**data,
unsigned
int
*timeout);
1392
1401
int
sceKernelTryAllocateFpl
(
SceUID
uid,
void
**data);
1402
1411
int
sceKernelFreeFpl
(
SceUID
uid,
void
*data);
1412
1421
int
sceKernelCancelFpl
(
SceUID
uid,
int
*pnum);
1422
1424
typedef
struct
SceKernelFplInfo
{
1425
SceSize
size
;
1426
char
name
[32];
1427
SceUInt
attr
;
1428
int
blockSize
;
1429
int
numBlocks
;
1430
int
freeBlocks
;
1431
int
numWaitThreads
;
1432
}
SceKernelFplInfo
;
1433
1442
int
sceKernelReferFplStatus
(
SceUID
uid,
SceKernelFplInfo
*info);
1443
1447
void
_sceKernelReturnFromTimerHandler
(
void
);
1448
1453
void
_sceKernelReturnFromCallback
(
void
);
1454
1463
int
sceKernelUSec2SysClock
(
unsigned
int
usec,
SceKernelSysClock
*
clock
);
1464
1472
SceInt64
sceKernelUSec2SysClockWide
(
unsigned
int
usec);
1473
1483
int
sceKernelSysClock2USec
(
SceKernelSysClock
*
clock
,
unsigned
int
*low,
unsigned
int
*high);
1484
1494
int
sceKernelSysClock2USecWide
(
SceInt64
clock
,
unsigned
*low,
unsigned
int
*high);
1495
1503
int
sceKernelGetSystemTime
(
SceKernelSysClock
*
time
);
1504
1510
SceInt64
sceKernelGetSystemTimeWide
(
void
);
1511
1517
unsigned
int
sceKernelGetSystemTimeLow
(
void
);
1518
1519
struct
SceKernelVTimerOptParam
{
1520
SceSize
size
;
1521
};
1522
1531
SceUID
sceKernelCreateVTimer
(
const
char
*
name
,
struct
SceKernelVTimerOptParam
*opt);
1532
1540
int
sceKernelDeleteVTimer
(
SceUID
uid);
1541
1550
int
sceKernelGetVTimerBase
(
SceUID
uid,
SceKernelSysClock
*base);
1551
1559
SceInt64
sceKernelGetVTimerBaseWide
(
SceUID
uid);
1560
1569
int
sceKernelGetVTimerTime
(
SceUID
uid,
SceKernelSysClock
*
time
);
1570
1578
SceInt64
sceKernelGetVTimerTimeWide
(
SceUID
uid);
1579
1588
int
sceKernelSetVTimerTime
(
SceUID
uid,
SceKernelSysClock
*
time
);
1589
1598
SceInt64
sceKernelSetVTimerTimeWide
(
SceUID
uid,
SceInt64
time
);
1599
1607
int
sceKernelStartVTimer
(
SceUID
uid);
1608
1616
int
sceKernelStopVTimer
(
SceUID
uid);
1617
1618
typedef
SceUInt
(*
SceKernelVTimerHandler
)(
SceUID
uid,
SceKernelSysClock
*, SceKernelSysClock *,
void
*);
1619
typedef
SceUInt
(*
SceKernelVTimerHandlerWide
)(
SceUID
uid,
SceInt64
,
SceInt64
,
void
*);
1620
1631
int
sceKernelSetVTimerHandler
(
SceUID
uid, SceKernelSysClock *
time
,
SceKernelVTimerHandler
handler,
void
*common);
1632
1643
int
sceKernelSetVTimerHandlerWide
(
SceUID
uid, SceInt64
time
,
SceKernelVTimerHandlerWide
handler,
void
*common);
1644
1652
int
sceKernelCancelVTimerHandler
(
SceUID
uid);
1653
1654
typedef
struct
SceKernelVTimerInfo
{
1655
SceSize
size
;
1656
char
name
[32];
1657
int
active
;
1658
SceKernelSysClock
base
;
1659
SceKernelSysClock
current
;
1660
SceKernelSysClock
schedule
;
1661
SceKernelVTimerHandler
handler
;
1662
void
*
common
;
1663
}
SceKernelVTimerInfo
;
1664
1673
int
sceKernelReferVTimerStatus
(
SceUID
uid,
SceKernelVTimerInfo
*info);
1674
1679
void
_sceKernelExitThread
(
void
);
1680
1688
enum
SceKernelIdListType
sceKernelGetThreadmanIdType
(
SceUID
uid);
1689
1690
typedef
int (*
SceKernelThreadEventHandler
)(
int
mask,
SceUID
thid,
void
*common);
1691
1693
typedef
struct
SceKernelThreadEventHandlerInfo
{
1694
SceSize
size
;
1695
char
name
[32];
1696
SceUID
threadId
;
1697
int
mask
;
1698
SceKernelThreadEventHandler
handler
;
1699
void
*
common
;
1700
}
SceKernelThreadEventHandlerInfo
;
1701
1702
enum
ThreadEventIds
1703
{
1704
THREADEVENT_ALL
= 0xFFFFFFFF,
1705
THREADEVENT_KERN
= 0xFFFFFFF8,
1706
THREADEVENT_USER
= 0xFFFFFFF0,
1707
THREADEVENT_CURRENT
= 0
1708
};
1709
1710
enum
ThreadEvents
1711
{
1712
THREAD_CREATE
= 1,
1713
THREAD_START
= 2,
1714
THREAD_EXIT
= 4,
1715
THREAD_DELETE
= 8,
1716
};
1717
1729
SceUID
sceKernelRegisterThreadEventHandler
(
const
char
*
name
,
SceUID
threadID,
int
mask,
SceKernelThreadEventHandler
handler,
void
*common);
1730
1738
int
sceKernelReleaseThreadEventHandler
(
SceUID
uid);
1739
1748
int
sceKernelReferThreadEventHandlerStatus
(
SceUID
uid,
struct
SceKernelThreadEventHandlerInfo
*info);
1749
1754
PspDebugProfilerRegs
*
sceKernelReferThreadProfiler
(
void
);
1755
1760
PspDebugProfilerRegs
*
sceKernelReferGlobalProfiler
(
void
);
1761
1764
#ifdef __cplusplus
1765
}
1766
#endif
1767
1768
#endif
src
user
pspthreadman.h
Generated on Sat Apr 9 2016 07:00:25 for pspsdk-1.0+beta2 by
1.8.1.2