PSPSDK 2024-10-31
Loading...
Searching...
No Matches
pspthreadman_kernel.h
Go to the documentation of this file.
1/*
2 * PSP Software Development Kit - https://github.com/pspdev
3 * -----------------------------------------------------------------------
4 * Licensed under the BSD license, see LICENSE in PSPSDK root for details.
5 *
6 * pspthreadman_kernel.h - Interface to the kernel side of threadman
7 *
8 * Copyright (c) 2005 James F.
9 *
10 */
11
12#ifndef PSPTHREADMANKERNEL_H
13#define PSPTHREADMANKERNEL_H
14
15#include <pspkerneltypes.h>
16#include <pspthreadman.h>
17
25#ifdef __cplusplus
26extern "C" {
27#endif
28
35
42
49
55unsigned int sceKernelGetSyscallRA(void);
56
65
72
82int sceKernelExtendKernelStack(int type, void (*cb)(void*), void *arg);
83
90
100int sceKernelAllocateKTLS(int id, int (*cb)(unsigned int *size, void *arg), void *arg);
101
110
118void *sceKernelGetKTLS(int id);
119
129void *sceKernelGetThreadKTLS(int id, SceUID thid, int mode);
130
134 unsigned int type;
135 unsigned int gpr[31];
136 unsigned int fpr[32];
137 unsigned int fc31;
138 unsigned int hi;
139 unsigned int lo;
140 unsigned int SR;
141 unsigned int EPC;
142 unsigned int field_114;
143 unsigned int field_118;
144};
145
147{
148 unsigned int status;
149 unsigned int epc;
150 unsigned int sp;
151 unsigned int ra;
152 unsigned int k1;
153 unsigned int unk[3];
154};
155
216
226
227#ifdef __cplusplus
228}
229#endif
230
233#endif /* PSPTHREADMANKERNEL_H */
int(* SceKernelThreadEntry)(SceSize args, void *argp)
Definition pspthreadman.h:71
void * sceKernelGetKTLS(int id)
Get the KTLS of the current thread.
int sceKernelCheckThreadKernelStack(void)
Check the thread kernel stack.
void * sceKernelGetThreadKTLS(int id, SceUID thid, int mode)
Get the KTLS of a thread.
int sceKernelIsUserModeThread(void)
Checks if the current thread is a usermode thread.
int sceKernelFreeKTLS(int id)
Free the KTLS allocator.
unsigned int sceKernelGetSystemStatusFlag(void)
Get the system status flag.
int sceKernelGetUserLevel(void)
Get the user level of the current thread.
int ThreadManForKernel_2D69D086(SceUID uid, SceKernelThreadKInfo *info)
Refer kernel version of thread information.
int sceKernelExtendKernelStack(int type, void(*cb)(void *), void *arg)
Extend the kernel thread stack.
int sceKernelAllocateKTLS(int id, int(*cb)(unsigned int *size, void *arg), void *arg)
Setup the KTLS allocator.
unsigned int sceKernelGetSyscallRA(void)
Get the return address of the current thread's syscall.
int sceKernelSuspendAllUserThreads(void)
Suspend all user mode threads in the system.
int sceKernelGetThreadKernelStackFreeSize(SceUID thid)
Get the free stack space on the kernel thread.
unsigned int SceUInt
Definition pspkerneltypes.h:31
unsigned int SceSize
Definition pspkerneltypes.h:27
int SceUID
UIDs are used to describe many different kernel objects.
Definition pspkerneltypes.h:24
unsigned char size
Definition pspsysmem_kernel.h:6
struct _uidControlBlock * type
Definition pspsysmem_kernel.h:2
float x
Definition psptypes.h:0
64-bit system clock type.
Definition pspthreadman.h:39
Structure to hold the status information for a thread (kernel form) 1.5 form.
Definition pspthreadman_kernel.h:159
SceUID waitId
Wait id.
Definition pspthreadman_kernel.h:191
SceSize args
Size of args.
Definition pspthreadman_kernel.h:181
float * vfpuContext
VFPU Context.
Definition pspthreadman_kernel.h:208
void * gpReg
Pointer to the gp.
Definition pspthreadman_kernel.h:179
struct SceSCContext * scContext
Syscall Context.
Definition pspthreadman_kernel.h:214
int status
Thread status.
Definition pspthreadman_kernel.h:167
void * kstackSize
Kernel stack size.
Definition pspthreadman_kernel.h:177
int initPriority
Initial priority.
Definition pspthreadman_kernel.h:185
void * kstack
Kernel stack pointer.
Definition pspthreadman_kernel.h:175
SceUInt releaseCount
Release count.
Definition pspthreadman_kernel.h:204
void * argp
Pointer to args.
Definition pspthreadman_kernel.h:183
struct SceThreadContext * thContext
Thread Context.
Definition pspthreadman_kernel.h:206
int wakeupCount
Wakeup count.
Definition pspthreadman_kernel.h:193
SceUInt threadPreemptCount
Thread preemption count.
Definition pspthreadman_kernel.h:202
void * retAddr
Return address from syscall.
Definition pspthreadman_kernel.h:210
int waitType
Wait type.
Definition pspthreadman_kernel.h:189
char name[32]
Nul terminated name of the thread.
Definition pspthreadman_kernel.h:163
SceSize size
Size of the structure.
Definition pspthreadman_kernel.h:161
void * stack
Thread stack pointer.
Definition pspthreadman_kernel.h:171
int stackSize
Thread stack size.
Definition pspthreadman_kernel.h:173
SceUInt attr
Thread attributes.
Definition pspthreadman_kernel.h:165
SceKernelSysClock runClocks
Number of clock cycles run.
Definition pspthreadman_kernel.h:195
SceUInt unknown1
Unknown, possibly size of SC context.
Definition pspthreadman_kernel.h:212
SceUInt intrPreemptCount
Interrupt preemption count.
Definition pspthreadman_kernel.h:200
SceKernelThreadEntry entry
Thread entry point.
Definition pspthreadman_kernel.h:169
int currentPriority
Current priority.
Definition pspthreadman_kernel.h:187
Definition pspthreadman_kernel.h:147
unsigned int k1
Definition pspthreadman_kernel.h:152
unsigned int ra
Definition pspthreadman_kernel.h:151
unsigned int epc
Definition pspthreadman_kernel.h:149
unsigned int unk[3]
Definition pspthreadman_kernel.h:153
unsigned int sp
Definition pspthreadman_kernel.h:150
unsigned int status
Definition pspthreadman_kernel.h:148
Thread context Structues for the thread context taken from florinsasu's post on the forums.
Definition pspthreadman_kernel.h:133
unsigned int type
Definition pspthreadman_kernel.h:134
unsigned int fpr[32]
Definition pspthreadman_kernel.h:136
unsigned int fc31
Definition pspthreadman_kernel.h:137
unsigned int SR
Definition pspthreadman_kernel.h:140
unsigned int field_118
Definition pspthreadman_kernel.h:143
unsigned int field_114
Definition pspthreadman_kernel.h:142
unsigned int gpr[31]
Definition pspthreadman_kernel.h:135
unsigned int hi
Definition pspthreadman_kernel.h:138
unsigned int EPC
Definition pspthreadman_kernel.h:141
unsigned int lo
Definition pspthreadman_kernel.h:139