Files
dusklight/include/dolphin/os/OSThread.h
T
Pheenoh bd670ab091 d_a_npc work
daBaseNpc_c::setBckAnm and J3DAnmTransform* daBaseNpc_c

daBaseNpc_c::setBtpAnm

daBaseNpc_c::attnSttsOn

daBaseNpc_c::orderEvent

daBaseNpc_c::setEnvTevColor

daBaseNpc_c::setRoomNo

daBaseNpc_c::checkEndAnm attempt

CheckCreateHeap

daNpcF_addIdx

daNpcF_subIdx

daNpcF_incIdx

daNpcF_decIdx

daNpcF_ActorMngr_c::initialize()

daNpcF_ActorMngr_c::entry

cleanup daNpcF_ActorMngr_c::entry

daNpcF_ActorMngr_c::remove

daNpcF_ActorMngr_c::getActorP

daNpcF_MatAnm_c::calc attempt

daNpcF_SPCurve_c::initialize

minor fixes

daNpcF_Path_c::initialize

daNpcF_Path_c::setPathInfo

daNpcF_Path_c::chkPassed

daNpcF_Path_c::reverse

daNpcF_Path_c::setNextIdx

daNpcF_Path_c::getNextIdx

daNpcF_Path_c::getBeforeIdx

daNpcF_Path_c::getBeforePos

daNpcF_Path_c::getNextPos

daNpcT_MatAnm_c::initialize

daNpcT_MatAnm_c::calc

daNpcT_addIdx

daNpcT_subIdx

daNpcT_decIdx

daNpcT_Path_c::hermite

daNpcT_Path_c::initialize

daNpcT_Path_c::setPathInfo attempt

daNpcT_Path_c::setNextPathInfo

daNpcT_Path_c::reverse

daNpcT_Path_c::setNextIdx

daNpcT_Path_c::getDstPos attempt

daNpcT_DmgStagger_c::setParam

Add FLOAT_LABEL where possible

fopEn_enemy / fix e_wb

move jasper's jsystem work over

d_attention / d_demo / d_lib work

remove asm

clean up dolphin files / work on some rels (#212)

* d_a_alldie / d_a_tboxSw / d_a_tag_gstart / d_a_tag_hstop

* dolphin OS work / cleanup

* dolphin GX work / cleanup

* finish changing dolphin files to C

* more files into C

* match rest of MSL_C math functions

* more dolphin files converted to C

* remove asm

* d_bg_w work

* remove asm

* d_a_alink work / kytag14

initial changes to d_a_e_yc

checkpoint until virtual destructor issue is solved

daNpcF_Lookat_c::adjustMoveDisAngle

daBaseNpc_c::setMtx

daBaseNpc_moveBgActor_c::daBaseNpc_moveBgActor_c()

daNpcT_c::ctrlFaceMotion

daNpcT_c::ctrlMsgAnm attempt

daNpcT_c::initTalk

daNpcF_clearMessageTmpBit

daNpcF_getDistTableIdx

daNpcF_offTmpBit

daNpcF_onTmpBit

daNpcF_chkTmpBit

daNpcF_onEvtBit

daNpcF_chkEvtBit

daNpcF_c::getDistTableIdx

daNpcF_chkPointInArea

daNpcF_chkDoBtnEqSpeak

daNpcF_getPlayerInfoFromPlayerList attempt

daNpcF_pntVsLineSegmentLengthSquare2D

daNpcF_c::chkPointInArea

daNpcF_c::chkPointInArea

daNpcF_c::getAttentionPos

daNpcT_chkTmpBit

daNpcT_offTmpBit

daNpcT_onTmpBit

daNpcT_chkEvtBit

daNpcT_offEvtBit

daNpcT_onEvtBit

daNpcT_chkDoBtnIsSpeak

daNpcT_getDistTableIdx

daBaseNpc_acMngr_c::entry

daNpcF_c::initTalk

undo override
2022-12-20 16:28:41 -07:00

102 lines
2.7 KiB
C

#ifndef OSTHREAD_H
#define OSTHREAD_H
#include "dolphin/os/OSContext.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef u16 OSThreadState;
#define OS_THREAD_STATE_UNINITIALIZED 0
#define OS_THREAD_STATE_READY 1
#define OS_THREAD_STATE_RUNNING 2
#define OS_THREAD_STATE_WAITING 4
#define OS_THREAD_STATE_DEAD 8
typedef struct OSThreadLink {
struct OSThread* prev;
struct OSThread* next;
} OSThreadLink;
typedef struct OSThreadQueue {
/* 0x0 */ struct OSThread* head;
/* 0x4 */ struct OSThread* tail;
} OSThreadQueue;
typedef struct OSMutexLink {
struct OSMutex* prev;
struct OSMutex* next;
} OSMutexLink;
typedef struct OSMutexQueue {
struct OSMutex* prev;
struct OSMutex* next;
} OSMutexQueue;
typedef struct OSCond {
OSThreadQueue queue;
} OSCond;
typedef struct OSThread {
OSContext context;
OSThreadState state;
u16 attributes;
s32 suspend_count;
s32 effective_priority;
u32 base_priority;
void* exit_value;
OSThreadQueue* queue;
OSThreadLink link;
OSThreadQueue join_queue;
struct OSMutex* mutex;
OSMutexQueue owned_mutexes;
OSThreadLink active_threads_link;
u8* stack_base;
u8* stack_end;
u8* error_code;
void* data[2];
} OSThread;
typedef void (*OSSwitchThreadCallback)(OSThread* from, OSThread* to);
OSThreadQueue OS_THREAD_QUEUE : 0x800000DC;
OSThread* OS_CURRENT_THREAD : 0x800000E4;
static void DefaultSwitchThreadCallback(OSThread* from, OSThread* to);
OSSwitchThreadCallback OSSetSwitchThreadCallback(OSSwitchThreadCallback func);
void __OSThreadInit(void);
void OSInitThreadQueue(OSThreadQueue* queue);
OSThread* OSGetCurrentThread(void);
BOOL OSIsThreadTerminated(OSThread* thread);
s32 OSDisableScheduler(void);
s32 OSEnableScheduler(void);
static void UnsetRun(OSThread* thread);
s32 __OSGetEffectivePriority(OSThread* thread);
static void SetEffectivePriority(OSThread* thread, s32 priority);
void __OSPromoteThread(OSThread* thread, s32 priority);
static void SelectThread(OSThread* thread);
void __OSReschedule(void);
void OSYieldThread(void);
BOOL OSCreateThread(OSThread* thread, void* func, void* param, void* stackBase,
u32 stackSize, s32 priority, u16 attribute);
void OSExitThread(void* exitValue);
void OSCancelThread(OSThread* thread);
void OSDetachThread(OSThread* thread);
s32 OSResumeThread(OSThread* thread);
s32 OSSuspendThread(OSThread* thread);
void OSSleepThread(OSThreadQueue* queue);
void OSWakeupThread(OSThreadQueue* queue);
s32 OSSetThreadPriority(OSThread* thread, s32 priority);
s32 OSGetThreadPriority(OSThread* thread);
static s32 CheckThreadQueue(OSThread* thread);
s32 OSCheckActiveThreads(void);
static void OSClearStack(u32 value);
extern u8 data_804516D0[8];
#ifdef __cplusplus
};
#endif
#endif /* OSTHREAD_H */