#include "PR/os.h" #include "common.h" void func_8008949C(void*); INCLUDE_ASM(const s32, "19050", __idle_start_4_threads); /* 192F0 80088EF0*/ s32* func_80088EF0(void) { extern s32 D_800E8B14; return &D_800E8B14; } typedef struct { /* 0x00 */ OSMesgQueue field_0x0; /* 0x30 */ u8 field_0x30[0x58]; /* 0x88 */ OSMesgQueue field_0x70; /* 0x74 */ u8 field_0x74[0x20]; /* 0xa8 */ OSMesgQueue field_0xa8; } Unk0; extern Unk0 MQ_800E8B4C; Unk0* func_80088EFC(void) { return &MQ_800E8B4C; } INCLUDE_ASM(const s32, "19050", __thread_80088F08); extern Stack__dma_load_loop *D_800E9178[0]; extern u8 __MAIN_NOT_NULL_INF_LOOP; /* 19454 80089054 */ void Stack__dma_load_loop_new(Stack__dma_load_loop* arg0, OSMesgQueue* mq, s16 flags) { s32 mask = osSetIntMask(OS_IM_NONE); arg0->mq = mq; arg0->next = D_800E9178[0]; arg0->flags = flags; D_800E9178[0] = arg0; if ((flags & 2) && (__MAIN_NOT_NULL_INF_LOOP != 0)) { osSendMesg(mq, (u8*)(&D_800E9178) - 0x666, OS_MESG_NOBLOCK); } osSetIntMask(mask); } INCLUDE_ASM(const s32, "19050", func_800890E4); INCLUDE_ASM(const s32, "19050", Stack__dma_load_loop_delete); INCLUDE_ASM(const s32, "19050", func_800891A0); INCLUDE_ASM(const s32, "19050", __thread_80089200); INCLUDE_ASM(const s32, "19050", __thread_80089358); extern OSMesgQueue MQ_800B9C40; void __thread_800893C0(void) { typedef struct { /* 0x00 */ s32 field_0x0; /* 0x04 */ s32 field_0x4; /* 0x08 */ s32 field_0x8; /* 0x1C */ u8 field_0x1c[0x42]; /* 0x50 */ OSMesgQueue* field_0x50; } Stack0; Stack0* sp10; void* sp14; while(1) { osRecvMesg(&MQ_800E8B4C.field_0x0, &sp10, 1); if (!(__MAIN_NOT_NULL_INF_LOOP & 2)) { func_8008949C(sp10); osWritebackDCacheAll(); osSendMesg(&MQ_800B9C40, sp10, OS_MESG_BLOCK); osRecvMesg(&MQ_800E8B4C.field_0x70, &sp14, OS_MESG_BLOCK); osSendMesg(&MQ_800B9C40, NULL, OS_MESG_BLOCK); if (!(sp10->field_0x8 & 2)) { osRecvMesg(&MQ_800E8B4C.field_0xa8, &sp14, OS_MESG_BLOCK); } } osSendMesg(sp10->field_0x50, sp10, OS_MESG_BLOCK); } } INCLUDE_ASM(const s32, "19050", func_8008949C); // INCLUDE_ASM(const s32, "19050", func_80089528); void func_80089528(s8 arg0) { extern s8 D_800E918D; D_800E918D = arg0; } INCLUDE_ASM(const s32, "19050", func_80089534); INCLUDE_ASM(const s32, "19050", __thread_80089540); INCLUDE_ASM(const s32, "19050", __start_thread_800B9C88); INCLUDE_ASM(const s32, "19050", func_80089804); /* 19D90 80089990 */ void func_80089990(s32 arg0) { extern void func_80089A10(); extern s32 D_800AA090; s32 mask; func_80089A10(); mask = osSetIntMask(OS_IM_NONE); D_800AA090 = arg0; osSetIntMask(mask); }