SSBM Decomp
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
{
16
struct
OSThread
*
head
;
17
struct
OSThread
*
tail
;
18
}
OSThreadQueue
;
19
20
typedef
struct
OSThreadLink
21
{
22
struct
OSThread
*
next
;
23
struct
OSThread
*
prev
;
24
}
OSThreadLink
;
25
26
typedef
struct
OSMutexQueue
27
{
28
struct
OSMutex
*
head
;
29
struct
OSMutex
*
tail
;
30
}
OSMutexQueue
;
31
32
typedef
struct
OSMutexLink
33
{
34
struct
OSMutex
*
next
;
35
struct
OSMutex
*
prev
;
36
}
OSMutexLink
;
37
38
typedef
struct
OSThread
39
{
40
/*0x000*/
struct
OSContext
context
;
41
/*0x2C8*/
u16
state
;
42
/*0x2CA*/
u16
attr
;
43
/*0x2CC*/
s32
suspend
;
44
/*0x2D0*/
OSPriority
priority
;
45
/*0x2D4*/
OSPriority
base
;
46
/*0x2D8*/
void
*
val
;
47
/*0x2DC*/
struct
OSThreadQueue
*
queue
;
48
/*0x2E0*/
struct
OSThreadLink
link
;
49
/*0x2E8*/
struct
OSThreadQueue
queueJoin
;
50
/*0x2F0*/
struct
OSMutex
*
mutex
;
51
/*0x2F4*/
struct
OSMutexQueue
queueMutex
;
52
/*0x2FC*/
struct
OSThreadLink
linkActive
;
53
/*0x304*/
u8
*
stackBase
;
54
/*0x308*/
u32
*
stackEnd
;
55
}
OSThread
;
56
57
enum
OS_THREAD_STATE
58
{
59
OS_THREAD_STATE_READY
= 1,
60
OS_THREAD_STATE_RUNNING
= 2,
61
OS_THREAD_STATE_WAITING
= 4,
62
OS_THREAD_STATE_MORIBUND
= 8,
63
};
64
65
#define OS_PRIORITY_MIN 0
// highest
66
#define OS_PRIORITY_MAX 31
// lowest
67
#define OS_PRIORITY_IDLE OS_PRIORITY_MAX
68
69
#define OS_THREAD_ATTR_DETACH 0x0001u
70
71
#define OS_THREAD_STACK_MAGIC 0xDEADBABE
72
73
void
OSInitThreadQueue
(
OSThreadQueue
*queue);
74
void
OSSleepThread
(
OSThreadQueue
*queue);
75
void
OSWakeupThread
(
OSThreadQueue
*queue);
76
s32
OSSuspendThread
(
OSThread
*thread);
77
s32
OSResumeThread
(
OSThread
* thread);
78
void
OSCancelThread
(
OSThread
* thread);
79
OSThread
*
OSGetCurrentThread
(
void
);
80
s32
OSEnableScheduler
(
void
);
81
s32
OSDisableScheduler
(
void
);
82
long
OSCheckActiveThreads
(
void
);
83
int
OSCreateThread
(
struct
OSThread
* thread,
void
* (*
func
)(
void
*),
void
* param,
void
* stack,
unsigned
long
stackSize,
long
priority,
unsigned
short
attr);
84
85
#define IsSuspended(suspend) (suspend > 0)
86
87
#endif
OSContext.h
OSResumeThread
s32 OSResumeThread(OSThread *thread)
OS_THREAD_STATE
OS_THREAD_STATE
Definition
OSThread.h:58
OS_THREAD_STATE_MORIBUND
@ OS_THREAD_STATE_MORIBUND
Definition
OSThread.h:62
OS_THREAD_STATE_WAITING
@ OS_THREAD_STATE_WAITING
Definition
OSThread.h:61
OS_THREAD_STATE_READY
@ OS_THREAD_STATE_READY
Definition
OSThread.h:59
OS_THREAD_STATE_RUNNING
@ OS_THREAD_STATE_RUNNING
Definition
OSThread.h:60
OSWakeupThread
void OSWakeupThread(OSThreadQueue *queue)
OSGetCurrentThread
OSThread * OSGetCurrentThread(void)
OSSleepThread
void OSSleepThread(OSThreadQueue *queue)
OSCancelThread
void OSCancelThread(OSThread *thread)
OSCreateThread
int OSCreateThread(struct OSThread *thread, void *(*func)(void *), void *param, void *stack, unsigned long stackSize, long priority, unsigned short attr)
OSPriority
s32 OSPriority
Definition
OSThread.h:6
OSDisableScheduler
s32 OSDisableScheduler(void)
OSInitThreadQueue
void OSInitThreadQueue(OSThreadQueue *queue)
OSEnableScheduler
s32 OSEnableScheduler(void)
OSCheckActiveThreads
long OSCheckActiveThreads(void)
OSSuspendThread
s32 OSSuspendThread(OSThread *thread)
u32
unsigned long u32
Definition
types.h:9
u16
unsigned short int u16
Definition
types.h:7
s32
signed long s32
Definition
hsd_3B2B.h:1
u8
unsigned char u8
Definition
hsd_3B2B.h:2
func
void(* func)(void)
Definition
state.c:134
OSContext
Definition
OSContext.h:138
OSMutexLink
Definition
OSThread.h:33
OSMutexLink::next
struct OSMutex * next
Definition
OSThread.h:34
OSMutexLink::prev
struct OSMutex * prev
Definition
OSThread.h:35
OSMutexQueue
Definition
OSThread.h:27
OSMutexQueue::tail
struct OSMutex * tail
Definition
OSThread.h:29
OSMutexQueue::head
struct OSMutex * head
Definition
OSThread.h:28
OSMutex
Definition
OSMutex.h:11
OSThreadLink
Definition
OSThread.h:21
OSThreadLink::next
struct OSThread * next
Definition
OSThread.h:22
OSThreadLink::prev
struct OSThread * prev
Definition
OSThread.h:23
OSThreadQueue
Definition
OSThread.h:15
OSThreadQueue::head
struct OSThread * head
Definition
OSThread.h:16
OSThreadQueue::tail
struct OSThread * tail
Definition
OSThread.h:17
OSThread
Definition
OSThread.h:39
OSThread::queueMutex
struct OSMutexQueue queueMutex
Definition
OSThread.h:51
OSThread::state
u16 state
Definition
OSThread.h:41
OSThread::priority
OSPriority priority
Definition
OSThread.h:44
OSThread::queueJoin
struct OSThreadQueue queueJoin
Definition
OSThread.h:49
OSThread::base
OSPriority base
Definition
OSThread.h:45
OSThread::suspend
s32 suspend
Definition
OSThread.h:43
OSThread::stackBase
u8 * stackBase
Definition
OSThread.h:53
OSThread::mutex
struct OSMutex * mutex
Definition
OSThread.h:50
OSThread::queue
struct OSThreadQueue * queue
Definition
OSThread.h:47
OSThread::context
struct OSContext context
Definition
OSThread.h:40
OSThread::stackEnd
u32 * stackEnd
Definition
OSThread.h:54
OSThread::val
void * val
Definition
OSThread.h:46
OSThread::linkActive
struct OSThreadLink linkActive
Definition
OSThread.h:52
OSThread::attr
u16 attr
Definition
OSThread.h:42
OSThread::link
struct OSThreadLink link
Definition
OSThread.h:48
extern
dolphin
include
dolphin
os
OSThread.h
Generated by
1.15.0