mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-05 02:37:50 -04:00
bd670ab091
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
102 lines
2.7 KiB
C
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 */
|