mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 23:05:36 -04:00
86f892c3d3
* JKRDvdArchive.s split * JKRMemArchive.s split * JKRAramArchive.s split * JKRCompArchive.s split * JKRDecomp.s split * JKRDvdRipper.s split * JKRAramBlock.s split * JKRAramHeap.s split * JKRAramPiece.s split * JKRAramStream.s split * removed unused .s files * JKRDvdAramRipper.s split * JKRAram.s split * cleanup and making vtables easier to debug * fixed merge errors * fixed JKRFileLoader::fetchVolumeName Co-authored-by: Pheenoh <pheenoh@gmail.com>
77 lines
1.8 KiB
C++
77 lines
1.8 KiB
C++
#ifndef __JKRTHREAD_H__
|
|
#define __JKRTHREAD_H__
|
|
|
|
#include "dolphin/types.h"
|
|
#include "JSystem/JKernel/JKRDisposer/JKRDisposer.h"
|
|
#include "global.h"
|
|
|
|
class JKRThreadName_;
|
|
class JUTConsole;
|
|
class JKRHeap;
|
|
class JKRThread : JKRDisposer {
|
|
public:
|
|
JKRThread(u32 stack_size, int message_count, int param_3);
|
|
JKRThread(JKRHeap* heap, u32 stack_size, int message_count, int param_4);
|
|
JKRThread(OSThread* thread, int message_count);
|
|
virtual ~JKRThread();
|
|
|
|
/* vt[03] */ virtual void* run();
|
|
|
|
void setCommon_mesgQueue(JKRHeap* heap, int message_count);
|
|
void setCommon_heapSpecified(JKRHeap* heap, u32 stack_size, int param_3);
|
|
|
|
OSThread* getThreadRecord() {
|
|
return this->mOSThread;
|
|
}
|
|
|
|
private:
|
|
JSULink<JKRThread> mThreadListLink;
|
|
JKRHeap* mHeap;
|
|
OSThread* mOSThread;
|
|
OSMessageQueue mQueue;
|
|
OSMessage* mMessages;
|
|
int mMessageCount;
|
|
void* mStackPtr;
|
|
u32 mStackSize;
|
|
u8 field_0x60;
|
|
u8 padding_0x61[3];
|
|
u32 mCost;
|
|
u32 mSwitchCount;
|
|
u32 field_0x6c;
|
|
u32 field_0x70;
|
|
JKRHeap* field_0x74;
|
|
JKRHeap* field_0x78;
|
|
|
|
public:
|
|
static void* start(void* param_1);
|
|
static JKRThread* searchThread(OSThread* thread);
|
|
static JSUList<JKRThread>* getList() {
|
|
return &lbl_8043428C;
|
|
}
|
|
};
|
|
|
|
class JKRThreadSwitch {
|
|
public:
|
|
JKRThreadSwitch(JKRHeap*);
|
|
virtual ~JKRThreadSwitch();
|
|
|
|
static JKRThreadSwitch* createManager(JKRHeap* heap);
|
|
|
|
JKRThread* enter(JKRThread* param_1, int param_2);
|
|
static void callback(OSThread* param_1, OSThread* param_2);
|
|
void draw(JKRThreadName_* param_1, JUTConsole* param_2);
|
|
void draw(JKRThreadName_* param_1);
|
|
|
|
public:
|
|
JKRHeap* heap;
|
|
u8 field_0x8[4];
|
|
u32 field_0xC[2];
|
|
u8 field_0x14[4];
|
|
u32 field_0x18;
|
|
u32 field_0x1C;
|
|
u32 field_0x20;
|
|
u32 field_0x24;
|
|
};
|
|
|
|
#endif
|