mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-09 00:11:24 +12:00
SPURS: Reorder, rename and some cleanup
This commit is contained in:
parent
ba6ac5019e
commit
2c70f5168a
3 changed files with 826 additions and 795 deletions
|
@ -26,7 +26,7 @@ extern u32 libsre;
|
||||||
extern u32 libsre_rtoc;
|
extern u32 libsre_rtoc;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool spursKernelMain(SPUThread & spu);
|
bool spursKernelEntry(SPUThread & spu);
|
||||||
s64 cellSpursLookUpTasksetAddress(vm::ptr<CellSpurs> spurs, vm::ptr<CellSpursTaskset> taskset, u32 id);
|
s64 cellSpursLookUpTasksetAddress(vm::ptr<CellSpurs> spurs, vm::ptr<CellSpursTaskset> taskset, u32 id);
|
||||||
s64 _cellSpursSendSignal(vm::ptr<CellSpursTaskset> taskset, u32 taskID);
|
s64 _cellSpursSendSignal(vm::ptr<CellSpursTaskset> taskset, u32 taskID);
|
||||||
|
|
||||||
|
@ -182,7 +182,7 @@ s64 spursInit(
|
||||||
{
|
{
|
||||||
auto spu = spu_thread_initialize(tg, num, spurs->m.spuImg, name, SYS_SPU_THREAD_OPTION_DEC_SYNC_TB_ENABLE, num, spurs.addr(), 0, 0);
|
auto spu = spu_thread_initialize(tg, num, spurs->m.spuImg, name, SYS_SPU_THREAD_OPTION_DEC_SYNC_TB_ENABLE, num, spurs.addr(), 0, 0);
|
||||||
#ifndef PRX_DEBUG_XXX
|
#ifndef PRX_DEBUG_XXX
|
||||||
spu->RegisterHleFunction(spurs->m.spuImg.entry_point, spursKernelMain);
|
spu->RegisterHleFunction(spurs->m.spuImg.entry_point, spursKernelEntry);
|
||||||
#endif
|
#endif
|
||||||
spurs->m.spus[num] = spu->GetId();
|
spurs->m.spus[num] = spu->GetId();
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,8 +105,8 @@ enum SPURSKernelInterfaces
|
||||||
CELL_SPURS_KERNEL_DMA_TAG_ID = 31,
|
CELL_SPURS_KERNEL_DMA_TAG_ID = 31,
|
||||||
CELL_SPURS_KERNEL1_ENTRY_ADDR = 0x818,
|
CELL_SPURS_KERNEL1_ENTRY_ADDR = 0x818,
|
||||||
CELL_SPURS_KERNEL2_ENTRY_ADDR = 0x848,
|
CELL_SPURS_KERNEL2_ENTRY_ADDR = 0x848,
|
||||||
CELL_SPURS_KERNEL1_YIELD_ADDR = 0x808,
|
CELL_SPURS_KERNEL1_EXIT_ADDR = 0x808,
|
||||||
CELL_SPURS_KERNEL2_YIELD_ADDR = 0x838,
|
CELL_SPURS_KERNEL2_EXIT_ADDR = 0x838,
|
||||||
CELL_SPURS_KERNEL1_SELECT_WORKLOAD_ADDR = 0x290,
|
CELL_SPURS_KERNEL1_SELECT_WORKLOAD_ADDR = 0x290,
|
||||||
CELL_SPURS_KERNEL2_SELECT_WORKLOAD_ADDR = 0x290,
|
CELL_SPURS_KERNEL2_SELECT_WORKLOAD_ADDR = 0x290,
|
||||||
};
|
};
|
||||||
|
@ -886,8 +886,8 @@ struct CellSpursTaskBinInfo
|
||||||
CellSpursTaskLsPattern lsPattern;
|
CellSpursTaskLsPattern lsPattern;
|
||||||
};
|
};
|
||||||
|
|
||||||
// The SPURS kernel data store. This resides at 0x100 of the LS.
|
// The SPURS kernel context. This resides at 0x100 of the LS.
|
||||||
struct SpursKernelMgmtData
|
struct SpursKernelContext
|
||||||
{
|
{
|
||||||
u8 tempArea[0x80]; // 0x100
|
u8 tempArea[0x80]; // 0x100
|
||||||
u8 wklLocContention[0x10]; // 0x180
|
u8 wklLocContention[0x10]; // 0x180
|
||||||
|
@ -900,7 +900,7 @@ struct SpursKernelMgmtData
|
||||||
vm::bptr<const void, 1, u64> wklCurrentAddr; // 0x1D0
|
vm::bptr<const void, 1, u64> wklCurrentAddr; // 0x1D0
|
||||||
be_t<u32> wklCurrentUniqueId; // 0x1D8
|
be_t<u32> wklCurrentUniqueId; // 0x1D8
|
||||||
be_t<u32> wklCurrentId; // 0x1DC
|
be_t<u32> wklCurrentId; // 0x1DC
|
||||||
be_t<u32> yieldToKernelAddr; // 0x1E0
|
be_t<u32> exitToKernelAddr; // 0x1E0
|
||||||
be_t<u32> selectWorkloadAddr; // 0x1E4
|
be_t<u32> selectWorkloadAddr; // 0x1E4
|
||||||
u8 moduleId[2]; // 0x1E8
|
u8 moduleId[2]; // 0x1E8
|
||||||
u8 sysSrvInitialised; // 0x1EA
|
u8 sysSrvInitialised; // 0x1EA
|
||||||
|
@ -923,10 +923,10 @@ struct SpursKernelMgmtData
|
||||||
be_t<u32> guid[4]; // 0x280
|
be_t<u32> guid[4]; // 0x280
|
||||||
};
|
};
|
||||||
|
|
||||||
static_assert(sizeof(SpursKernelMgmtData) == 0x190, "Incorrect size for SpursKernelMgmtData");
|
static_assert(sizeof(SpursKernelContext) == 0x190, "Incorrect size for SpursKernelContext");
|
||||||
|
|
||||||
// The SPURS taskset policy module data store. This resides at 0x2700 of the LS.
|
// The SPURS taskset policy module context. This resides at 0x2700 of the LS.
|
||||||
struct SpursTasksetPmMgmtData
|
struct SpursTasksetContext
|
||||||
{
|
{
|
||||||
u8 tempAreaTaskset[0x80]; // 0x2700
|
u8 tempAreaTaskset[0x80]; // 0x2700
|
||||||
u8 tempAreaTaskInfo[0x30]; // 0x2780
|
u8 tempAreaTaskInfo[0x30]; // 0x2780
|
||||||
|
@ -956,7 +956,7 @@ struct SpursTasksetPmMgmtData
|
||||||
u8 x2FD8[0x3000 - 0x2FD8]; // 0x2FD8
|
u8 x2FD8[0x3000 - 0x2FD8]; // 0x2FD8
|
||||||
};
|
};
|
||||||
|
|
||||||
static_assert(sizeof(SpursTasksetPmMgmtData) == 0x900, "Incorrect size for SpursTasksetPmMgmtData");
|
static_assert(sizeof(SpursTasksetContext) == 0x900, "Incorrect size for SpursTasksetContext");
|
||||||
|
|
||||||
s64 spursAttachLv2EventQueue(vm::ptr<CellSpurs> spurs, u32 queue, vm::ptr<u8> port, s32 isDynamic, bool wasCreated);
|
s64 spursAttachLv2EventQueue(vm::ptr<CellSpurs> spurs, u32 queue, vm::ptr<u8> port, s32 isDynamic, bool wasCreated);
|
||||||
s64 spursWakeUp(PPUThread& CPU, vm::ptr<CellSpurs> spurs);
|
s64 spursWakeUp(PPUThread& CPU, vm::ptr<CellSpurs> spurs);
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue