Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
m_Do_dvd_thread.h
Go to the documentation of this file.
1#ifndef M_DO_M_DO_DVD_THREAD_H
2#define M_DO_M_DO_DVD_THREAD_H
3
7#include "f_pc/f_pc_node.h"
8
9#define mDoDvd_MOUNT_DIRECTION_HEAD 0
10#define mDoDvd_MOUNT_DIRECTION_TAIL 1
11
12class JKRHeap;
13class JKRMemArchive;
14
15typedef void* (*mDoDvdThd_callback_func)(void*);
16
18public:
19 /* 0x0C */ bool mIsDone;
20 /* 0x10 vtable*/
21public:
22 /* 800158FC */ virtual ~mDoDvdThd_command_c();
23 /* 80015B74 */ mDoDvdThd_command_c();
24 inline s32 sync() { return mIsDone; }
25 inline void destroy() { delete this; }
26 virtual s32 execute() = 0;
27}; // Size = 0x14
28
30public:
31 /* 80016338 */ mDoDvdThd_toMainRam_c(u8);
32 /* 80016394 */ static mDoDvdThd_toMainRam_c* create(char const*, u8, JKRHeap*);
33 /* 8001645C */ virtual ~mDoDvdThd_toMainRam_c();
34 /* 800164BC */ virtual s32 execute();
35
36 void* getMemAddress() const { return mData; }
37
38private:
39 /* 0x14 */ u8 mMountDirection;
40 /* 0x18 */ s32 mEntryNum;
41 /* 0x1C */ void* mData;
42 /* 0x20 */ s32 mDataSize;
43 /* 0x24 */ JKRHeap* mHeap;
44}; // Size = 0x28
45
47public:
48 /* 80015944 */ mDoDvdThd_param_c();
49 /* 8001598C */ void kick();
50 /* 800159B4 */ s32 waitForKick();
51 /* 800159DC */ mDoDvdThd_command_c* getFirstCommand();
52 /* 800159E4 */ void addition(mDoDvdThd_command_c*);
53 /* 80015A3C */ void cut(mDoDvdThd_command_c*);
54 /* 80015AD8 */ void mainLoop();
55
56private:
58 /* 0x20 */ void* mMessageQueueMessages;
60 /* 0x30 */ OSMutex mMutext;
61}; // Size = 0x48
62
64public:
65 /* 80016108 */ virtual ~mDoDvdThd_mountXArchive_c();
67 /* 800161E0 */ static mDoDvdThd_mountXArchive_c* create(char const*, u8, JKRArchive::EMountMode,
68 JKRHeap*);
69 /* 800162B0 */ virtual s32 execute();
70
71 JKRArchive* getArchive() const { return mArchive; }
72
73private:
74 /* 0x14 */ u8 mMountDirection;
75 /* 0x18 */ s32 mEntryNum;
76 /* 0x1C */ JKRArchive* mArchive;
78 /* 0x24 */ JKRHeap* mHeap;
79}; // Size = 0x28
80
82public:
83 /* 80015D44 */ virtual ~mDoDvdThd_mountArchive_c();
84 /* 80015DA4 */ mDoDvdThd_mountArchive_c(u8);
85 /* 80015E14 */ static mDoDvdThd_mountArchive_c* create(char const*, u8, JKRHeap*);
86 /* 80015EDC */ virtual s32 execute();
87
88 JKRMemArchive* getArchive() const { return mArchive; }
89 JKRHeap* getHeap() const { return mHeap; }
90
91private:
92 /* 0x14 */ u8 mMountDirection;
93 /* 0x18 */ s32 mEntryNumber;
95 /* 0x20 */ JKRHeap* mHeap;
96}; // Size = 0x24
97
99public:
100 /* 80015BB8 */ virtual ~mDoDvdThd_callback_c();
101 /* 80015C18 */ mDoDvdThd_callback_c(mDoDvdThd_callback_func, void*);
102 /* 80015C74 */ static mDoDvdThd_callback_c* create(mDoDvdThd_callback_func, void*);
103 /* 80015CF0 */ virtual s32 execute();
104
105private:
107 /* 0x18 */ void* mData;
108 /* 0x1C */ void* mResult;
109};
110
112 u8 stack[4096];
113} __attribute__((aligned(16)));
114
115struct mDoDvdThd {
116 /* 800157FC */ static s32 main(void*);
117 /* 80015858 */ static void create(s32);
118 /* 800158B4 */ static void suspend();
119
124
125#endif /* M_DO_M_DO_DVD_THREAD_H */
T cLib_calcTimer(T *value)
Definition c_lib.h:79
Definition JKRArchive.h:57
EMountMode
Definition JKRArchive.h:96
Definition JKRHeap.h:16
Definition JKRMemArchive.h:15
Definition m_Do_dvd_thread.h:98
static mDoDvdThd_callback_c * create(mDoDvdThd_callback_func, void *)
Definition m_Do_dvd_thread.cpp:140
virtual ~mDoDvdThd_callback_c()
Definition m_Do_dvd_thread.cpp:130
void * mData
Definition m_Do_dvd_thread.h:107
void * mResult
Definition m_Do_dvd_thread.h:108
virtual s32 execute()
Definition m_Do_dvd_thread.cpp:151
mDoDvdThd_callback_func mFunction
Definition m_Do_dvd_thread.h:106
Definition m_Do_dvd_thread.h:17
mDoDvdThd_command_c()
Definition m_Do_dvd_thread.cpp:124
virtual ~mDoDvdThd_command_c()
Definition m_Do_dvd_thread.cpp:57
void destroy()
Definition m_Do_dvd_thread.h:25
s32 sync()
Definition m_Do_dvd_thread.h:24
bool mIsDone
Definition m_Do_dvd_thread.h:19
virtual s32 execute()=0
Definition m_Do_dvd_thread.h:81
JKRHeap * mHeap
Definition m_Do_dvd_thread.h:95
virtual ~mDoDvdThd_mountArchive_c()
Definition m_Do_dvd_thread.cpp:159
JKRMemArchive * getArchive() const
Definition m_Do_dvd_thread.h:88
JKRHeap * getHeap() const
Definition m_Do_dvd_thread.h:89
s32 mEntryNumber
Definition m_Do_dvd_thread.h:93
static mDoDvdThd_mountArchive_c * create(char const *, u8, JKRHeap *)
Definition m_Do_dvd_thread.cpp:175
u8 mMountDirection
Definition m_Do_dvd_thread.h:92
virtual s32 execute()
Definition m_Do_dvd_thread.cpp:194
JKRMemArchive * mArchive
Definition m_Do_dvd_thread.h:94
Definition m_Do_dvd_thread.h:63
u8 mMountDirection
Definition m_Do_dvd_thread.h:74
JKRArchive * getArchive() const
Definition m_Do_dvd_thread.h:71
s32 mEntryNum
Definition m_Do_dvd_thread.h:75
JKRArchive::EMountMode mMountMode
Definition m_Do_dvd_thread.h:77
static mDoDvdThd_mountXArchive_c * create(char const *, u8, JKRArchive::EMountMode, JKRHeap *)
Definition m_Do_dvd_thread.cpp:266
virtual ~mDoDvdThd_mountXArchive_c()
Definition m_Do_dvd_thread.cpp:249
virtual s32 execute()
Definition m_Do_dvd_thread.cpp:287
JKRHeap * mHeap
Definition m_Do_dvd_thread.h:78
JKRArchive * mArchive
Definition m_Do_dvd_thread.h:76
Definition m_Do_dvd_thread.h:46
OSMutex mMutext
Definition m_Do_dvd_thread.h:60
void addition(mDoDvdThd_command_c *)
Definition m_Do_dvd_thread.cpp:84
void cut(mDoDvdThd_command_c *)
Definition m_Do_dvd_thread.cpp:93
void kick()
Definition m_Do_dvd_thread.cpp:67
node_list_class mNodeList
Definition m_Do_dvd_thread.h:59
s32 waitForKick()
Definition m_Do_dvd_thread.cpp:73
mDoDvdThd_command_c * getFirstCommand()
Definition m_Do_dvd_thread.cpp:78
OSMessageQueue mMessageQueue
Definition m_Do_dvd_thread.h:57
void * mMessageQueueMessages
Definition m_Do_dvd_thread.h:58
void mainLoop()
Definition m_Do_dvd_thread.cpp:110
mDoDvdThd_param_c()
Definition m_Do_dvd_thread.cpp:60
Definition m_Do_dvd_thread.h:29
static mDoDvdThd_toMainRam_c * create(char const *, u8, JKRHeap *)
Definition m_Do_dvd_thread.cpp:307
virtual s32 execute()
Definition m_Do_dvd_thread.cpp:330
JKRHeap * mHeap
Definition m_Do_dvd_thread.h:43
u8 mMountDirection
Definition m_Do_dvd_thread.h:39
s32 mEntryNum
Definition m_Do_dvd_thread.h:40
s32 mDataSize
Definition m_Do_dvd_thread.h:42
virtual ~mDoDvdThd_toMainRam_c()
Definition m_Do_dvd_thread.cpp:326
void * mData
Definition m_Do_dvd_thread.h:41
void * getMemAddress() const
Definition m_Do_dvd_thread.h:36
void *(* mDoDvdThd_callback_func)(void *)
Definition m_Do_dvd_thread.h:15
struct mDoDvdThd __attribute__
void main()
Definition m_Do_main.cpp:506
Definition OSMessage.h:12
Definition OSMutex.h:10
Definition OSThread.h:56
Definition m_Do_dvd_thread.h:111
u8 stack[4096]
Definition m_Do_dvd_thread.h:112
Definition m_Do_dvd_thread.h:115
static void suspend()
Definition m_Do_dvd_thread.cpp:46
static OSThread l_thread
Definition m_Do_dvd_thread.h:120
static mDoDvdThdStack l_threadStack
Definition m_Do_dvd_thread.h:121
static mDoDvdThd_param_c l_param
Definition m_Do_dvd_thread.h:122
static void create(s32)
Definition m_Do_dvd_thread.cpp:39
Definition c_node.h:5
Definition c_list.h:7
signed long s32
Definition types.h:6
unsigned char u8
Definition types.h:8