SSBM Decomp
Toggle main menu visibility
Loading...
Searching...
No Matches
OSThread.h
Go to the documentation of this file.
1
#ifndef _DOLPHIN_OSTHREAD_H_
2
#define _DOLPHIN_OSTHREAD_H_
3
4
#include <
dolphin/os/OSContext.h
>
5
6
typedef
s32
OSPriority
;
7
8
struct
OSThread
;
9
struct
OSMutex
;
10
struct
OSMutexQueue
;
11
12
typedef
struct
OSThread
OSThread
;
13
14
typedef
struct
OSThreadQueue
{
15
struct
OSThread
*
head
;
16
struct
OSThread
*
tail
;
17
}
OSThreadQueue
;
18
19
typedef
struct
OSThreadLink
{
20
struct
OSThread
*
next
;
21
struct
OSThread
*
prev
;
22
}
OSThreadLink
;
23
24
typedef
struct
OSMutexQueue
{
25
struct
OSMutex
*
head
;
26
struct
OSMutex
*
tail
;
27
}
OSMutexQueue
;
28
29
typedef
struct
OSMutexLink
{
30
struct
OSMutex
*
next
;
31
struct
OSMutex
*
prev
;
32
}
OSMutexLink
;
33
34
typedef
struct
OSThread
{
35
/*0x000*/
struct
OSContext
context
;
36
/*0x2C8*/
u16
state
;
37
/*0x2CA*/
u16
attr
;
38
/*0x2CC*/
s32
suspend
;
39
/*0x2D0*/
OSPriority
priority
;
40
/*0x2D4*/
OSPriority
base
;
41
/*0x2D8*/
void
*
val
;
42
/*0x2DC*/
struct
OSThreadQueue
*
queue
;
43
/*0x2E0*/
struct
OSThreadLink
link
;
44
/*0x2E8*/
struct
OSThreadQueue
queueJoin
;
45
/*0x2F0*/
struct
OSMutex
*
mutex
;
46
/*0x2F4*/
struct
OSMutexQueue
queueMutex
;
47
/*0x2FC*/
struct
OSThreadLink
linkActive
;
48
/*0x304*/
u8
*
stackBase
;
49
/*0x308*/
u32
*
stackEnd
;
50
}
OSThread
;
51
52
enum
OS_THREAD_STATE
{
53
OS_THREAD_STATE_READY
= 1,
54
OS_THREAD_STATE_RUNNING
= 2,
55
OS_THREAD_STATE_WAITING
= 4,
56
OS_THREAD_STATE_MORIBUND
= 8,
57
};
58
59
#define OS_PRIORITY_MIN 0
// highest
60
#define OS_PRIORITY_MAX 31
// lowest
61
#define OS_PRIORITY_IDLE OS_PRIORITY_MAX
62
63
#define OS_THREAD_ATTR_DETACH 0x0001u
64
65
#define OS_THREAD_STACK_MAGIC 0xDEADBABE
66
67
void
OSInitThreadQueue
(
OSThreadQueue
* queue);
68
void
OSSleepThread
(
OSThreadQueue
* queue);
69
void
OSWakeupThread
(
OSThreadQueue
* queue);
70
s32
OSSuspendThread
(
OSThread
* thread);
71
s32
OSResumeThread
(
OSThread
* thread);
72
void
OSCancelThread
(
OSThread
* thread);
73
OSThread
*
OSGetCurrentThread
(
void
);
74
s32
OSEnableScheduler
(
void
);
75
s32
OSDisableScheduler
(
void
);
76
long
OSCheckActiveThreads
(
void
);
77
int
OSCreateThread
(
struct
OSThread
* thread,
void
* (*func)(
void
*),
void
* param,
78
void
* stack,
unsigned
long
stackSize,
long
priority,
79
unsigned
short
attr);
80
81
#define IsSuspended(suspend) (suspend > 0)
82
83
#endif
OSContext.h
OS_THREAD_STATE
OS_THREAD_STATE
Definition
OSThread.h:52
OS_THREAD_STATE_MORIBUND
@ OS_THREAD_STATE_MORIBUND
Definition
OSThread.h:56
OS_THREAD_STATE_WAITING
@ OS_THREAD_STATE_WAITING
Definition
OSThread.h:55
OS_THREAD_STATE_READY
@ OS_THREAD_STATE_READY
Definition
OSThread.h:53
OS_THREAD_STATE_RUNNING
@ OS_THREAD_STATE_RUNNING
Definition
OSThread.h:54
OSWakeupThread
void OSWakeupThread(OSThreadQueue *queue)
Definition
OSThread.c:704
OSSleepThread
void OSSleepThread(OSThreadQueue *queue)
Definition
OSThread.c:679
OSCancelThread
void OSCancelThread(OSThread *thread)
Definition
OSThread.c:523
OSCreateThread
int OSCreateThread(struct OSThread *thread, void *(*func)(void *), void *param, void *stack, unsigned long stackSize, long priority, unsigned short attr)
Definition
OSThread.c:439
OSPriority
s32 OSPriority
Definition
OSThread.h:6
OSGetCurrentThread
OSThread * OSGetCurrentThread(void)
Definition
OSThread.c:174
OSDisableScheduler
s32 OSDisableScheduler(void)
Definition
OSThread.c:217
OSInitThreadQueue
void OSInitThreadQueue(OSThreadQueue *queue)
Definition
OSThread.c:169
OSResumeThread
s32 OSResumeThread(OSThread *thread)
Definition
OSThread.c:609
OSEnableScheduler
s32 OSEnableScheduler(void)
Definition
OSThread.c:229
OSCheckActiveThreads
long OSCheckActiveThreads(void)
Definition
OSThread.c:828
OSSuspendThread
s32 OSSuspendThread(OSThread *thread)
Definition
OSThread.c:643
s32
signed int s32
Definition
types.h:12
u32
unsigned int u32
Definition
types.h:13
u16
unsigned short int u16
Definition
types.h:7
u8
unsigned char u8
Definition
types.h:5
OSContext
Definition
OSContext.h:137
OSMutexLink
Definition
OSThread.h:29
OSMutexLink::next
struct OSMutex * next
Definition
OSThread.h:30
OSMutexLink::prev
struct OSMutex * prev
Definition
OSThread.h:31
OSMutexQueue
Definition
OSThread.h:24
OSMutexQueue::tail
struct OSMutex * tail
Definition
OSThread.h:26
OSMutexQueue::head
struct OSMutex * head
Definition
OSThread.h:25
OSMutex
Definition
OSMutex.h:10
OSThreadLink
Definition
OSThread.h:19
OSThreadLink::next
struct OSThread * next
Definition
OSThread.h:20
OSThreadLink::prev
struct OSThread * prev
Definition
OSThread.h:21
OSThreadQueue
Definition
OSThread.h:14
OSThreadQueue::head
struct OSThread * head
Definition
OSThread.h:15
OSThreadQueue::tail
struct OSThread * tail
Definition
OSThread.h:16
OSThread
Definition
OSThread.h:34
OSThread::queueMutex
struct OSMutexQueue queueMutex
Definition
OSThread.h:46
OSThread::state
u16 state
Definition
OSThread.h:36
OSThread::priority
OSPriority priority
Definition
OSThread.h:39
OSThread::queueJoin
struct OSThreadQueue queueJoin
Definition
OSThread.h:44
OSThread::base
OSPriority base
Definition
OSThread.h:40
OSThread::suspend
s32 suspend
Definition
OSThread.h:38
OSThread::stackBase
u8 * stackBase
Definition
OSThread.h:48
OSThread::mutex
struct OSMutex * mutex
Definition
OSThread.h:45
OSThread::queue
struct OSThreadQueue * queue
Definition
OSThread.h:42
OSThread::context
struct OSContext context
Definition
OSThread.h:35
OSThread::stackEnd
u32 * stackEnd
Definition
OSThread.h:49
OSThread::val
void * val
Definition
OSThread.h:41
OSThread::linkActive
struct OSThreadLink linkActive
Definition
OSThread.h:47
OSThread::attr
u16 attr
Definition
OSThread.h:37
OSThread::link
struct OSThreadLink link
Definition
OSThread.h:43
libs
dolphin
include
dolphin
os
OSThread.h
Generated by
1.17.0