cellFiber stub activated

This commit is contained in:
Nekotekina 2014-08-28 02:14:24 +04:00
parent d5aa7aae43
commit f6bb62a76c
7 changed files with 94 additions and 79 deletions

View file

@ -9,6 +9,8 @@ extern void cellAudio_init();
extern Module *cellAudio; extern Module *cellAudio;
extern void cellDmux_init(); extern void cellDmux_init();
extern Module *cellDmux; extern Module *cellDmux;
extern void cellFiber_init();
extern Module *cellFiber;
extern void cellFont_init(); extern void cellFont_init();
extern void cellFont_load(); extern void cellFont_load();
extern void cellFont_unload(); extern void cellFont_unload();
@ -225,6 +227,8 @@ void ModuleManager::init()
m_mod_init.emplace_back(0x0011, cellAudio_init); m_mod_init.emplace_back(0x0011, cellAudio_init);
cellDmux = static_cast <Module*>(&(m_mod_init.back())) + 1; cellDmux = static_cast <Module*>(&(m_mod_init.back())) + 1;
m_mod_init.emplace_back(0x0007, cellDmux_init); m_mod_init.emplace_back(0x0007, cellDmux_init);
cellFiber = static_cast <Module*>(&(m_mod_init.back())) + 1;
m_mod_init.emplace_back(0x0043, cellFiber_init);
cellFont = static_cast <Module*>(&(m_mod_init.back())) + 1; cellFont = static_cast <Module*>(&(m_mod_init.back())) + 1;
m_mod_init.emplace_back(0x0019, cellFont_init, cellFont_load, cellFont_unload); m_mod_init.emplace_back(0x0019, cellFont_init, cellFont_load, cellFont_unload);
cellFontFT = static_cast <Module*>(&(m_mod_init.back())) + 1; cellFontFT = static_cast <Module*>(&(m_mod_init.back())) + 1;

View file

@ -1,24 +1,13 @@
#include "stdafx.h" #include "stdafx.h"
#if 0 #include "Emu/Memory/Memory.h"
#include "Emu/System.h"
#include "Emu/SysCalls/Modules.h"
void cellFiber_init(); #include "cellFiber.h"
Module cellFiber(0x0043, cellFiber_init);
// Return Codes //void cellFiber_init();
enum //Module cellFiber(0x0043, cellFiber_init);
{ Module* cellFiber = nullptr;
CELL_FIBER_ERROR_AGAIN = 0x80760001,
CELL_FIBER_ERROR_INVAL = 0x80760002,
CELL_FIBER_ERROR_NOMEM = 0x80760004,
CELL_FIBER_ERROR_DEADLK = 0x80760008,
CELL_FIBER_ERROR_PERM = 0x80760009,
CELL_FIBER_ERROR_BUSY = 0x8076000A,
CELL_FIBER_ERROR_ABORT = 0x8076000C,
CELL_FIBER_ERROR_STAT = 0x8076000F,
CELL_FIBER_ERROR_ALIGN = 0x80760010,
CELL_FIBER_ERROR_NULL_POINTER = 0x80760011,
CELL_FIBER_ERROR_NOSYSINIT = 0x80760020,
};
int _cellFiberPpuInitialize() int _cellFiberPpuInitialize()
{ {
@ -92,10 +81,12 @@ int cellFiberPpuJoinFiber()
return CELL_OK; return CELL_OK;
} }
int cellFiberPpuSelf() u32 cellFiberPpuSelf()
{ {
UNIMPLEMENTED_FUNC(cellFiber); cellFiber->Log("cellFiberPpuSelf() -> nullptr"); // TODO
return CELL_OK;
// returns fiber structure (zero for simple PPU thread)
return 0;
} }
int cellFiberPpuSendSignal() int cellFiberPpuSendSignal()
@ -304,58 +295,57 @@ int cellFiberPpuUtilWorkerControlInitializeWithAttribute()
void cellFiber_init() void cellFiber_init()
{ {
cellFiber.AddFunc(0x55870804, _cellFiberPpuInitialize); cellFiber->AddFunc(0x55870804, _cellFiberPpuInitialize);
cellFiber.AddFunc(0x9e25c72d, _cellFiberPpuSchedulerAttributeInitialize); cellFiber->AddFunc(0x9e25c72d, _cellFiberPpuSchedulerAttributeInitialize);
cellFiber.AddFunc(0xee3b604d, cellFiberPpuInitializeScheduler); cellFiber->AddFunc(0xee3b604d, cellFiberPpuInitializeScheduler);
cellFiber.AddFunc(0x8b6baa01, cellFiberPpuFinalizeScheduler); cellFiber->AddFunc(0x8b6baa01, cellFiberPpuFinalizeScheduler);
cellFiber.AddFunc(0x12b1acf0, cellFiberPpuRunFibers); cellFiber->AddFunc(0x12b1acf0, cellFiberPpuRunFibers);
cellFiber.AddFunc(0xf6c6900c, cellFiberPpuCheckFlags); cellFiber->AddFunc(0xf6c6900c, cellFiberPpuCheckFlags);
cellFiber.AddFunc(0xe492a675, cellFiberPpuHasRunnableFiber); cellFiber->AddFunc(0xe492a675, cellFiberPpuHasRunnableFiber);
cellFiber.AddFunc(0xc11f8056, _cellFiberPpuAttributeInitialize); cellFiber->AddFunc(0xc11f8056, _cellFiberPpuAttributeInitialize);
cellFiber.AddFunc(0x7c2f4034, cellFiberPpuCreateFiber); cellFiber->AddFunc(0x7c2f4034, cellFiberPpuCreateFiber);
cellFiber.AddFunc(0xfa8d5f95, cellFiberPpuExit); cellFiber->AddFunc(0xfa8d5f95, cellFiberPpuExit);
cellFiber.AddFunc(0x0c44f441, cellFiberPpuYield); cellFiber->AddFunc(0x0c44f441, cellFiberPpuYield);
cellFiber.AddFunc(0xa6004249, cellFiberPpuJoinFiber); cellFiber->AddFunc(0xa6004249, cellFiberPpuJoinFiber);
cellFiber.AddFunc(0x5d9a7034, cellFiberPpuSelf); cellFiber->AddFunc(0x5d9a7034, cellFiberPpuSelf);
cellFiber.AddFunc(0x8afb8356, cellFiberPpuSendSignal); cellFiber->AddFunc(0x8afb8356, cellFiberPpuSendSignal);
cellFiber.AddFunc(0x6c164b3b, cellFiberPpuWaitSignal); cellFiber->AddFunc(0x6c164b3b, cellFiberPpuWaitSignal);
cellFiber.AddFunc(0xa4599cf3, cellFiberPpuWaitFlag); cellFiber->AddFunc(0xa4599cf3, cellFiberPpuWaitFlag);
cellFiber.AddFunc(0xb0594b2d, cellFiberPpuGetScheduler); cellFiber->AddFunc(0xb0594b2d, cellFiberPpuGetScheduler);
cellFiber.AddFunc(0xfbf5fe40, cellFiberPpuSetPriority); cellFiber->AddFunc(0xfbf5fe40, cellFiberPpuSetPriority);
cellFiber.AddFunc(0xf3e81219, cellFiberPpuCheckStackLimit); cellFiber->AddFunc(0xf3e81219, cellFiberPpuCheckStackLimit);
cellFiber.AddFunc(0x31252ec3, _cellFiberPpuContextAttributeInitialize); cellFiber->AddFunc(0x31252ec3, _cellFiberPpuContextAttributeInitialize);
cellFiber.AddFunc(0x72086315, cellFiberPpuContextInitialize); cellFiber->AddFunc(0x72086315, cellFiberPpuContextInitialize);
cellFiber.AddFunc(0xb3a48079, cellFiberPpuContextFinalize); cellFiber->AddFunc(0xb3a48079, cellFiberPpuContextFinalize);
cellFiber.AddFunc(0xaba1c563, cellFiberPpuContextRun); cellFiber->AddFunc(0xaba1c563, cellFiberPpuContextRun);
cellFiber.AddFunc(0xd0066b17, cellFiberPpuContextSwitch); cellFiber->AddFunc(0xd0066b17, cellFiberPpuContextSwitch);
cellFiber.AddFunc(0x34a81091, cellFiberPpuContextSelf); cellFiber->AddFunc(0x34a81091, cellFiberPpuContextSelf);
cellFiber.AddFunc(0x01036193, cellFiberPpuContextReturnToThread); cellFiber->AddFunc(0x01036193, cellFiberPpuContextReturnToThread);
cellFiber.AddFunc(0xb90c871b, cellFiberPpuContextCheckStackLimit); cellFiber->AddFunc(0xb90c871b, cellFiberPpuContextCheckStackLimit);
cellFiber.AddFunc(0x081c98be, cellFiberPpuContextRunScheduler); cellFiber->AddFunc(0x081c98be, cellFiberPpuContextRunScheduler);
cellFiber.AddFunc(0x0a25b6c8, cellFiberPpuContextEnterScheduler); cellFiber->AddFunc(0x0a25b6c8, cellFiberPpuContextEnterScheduler);
cellFiber.AddFunc(0xbf9cd933, cellFiberPpuSchedulerTraceInitialize); cellFiber->AddFunc(0xbf9cd933, cellFiberPpuSchedulerTraceInitialize);
cellFiber.AddFunc(0x3860a12a, cellFiberPpuSchedulerTraceFinalize); cellFiber->AddFunc(0x3860a12a, cellFiberPpuSchedulerTraceFinalize);
cellFiber.AddFunc(0xadedbebf, cellFiberPpuSchedulerTraceStart); cellFiber->AddFunc(0xadedbebf, cellFiberPpuSchedulerTraceStart);
cellFiber.AddFunc(0xe665f9a9, cellFiberPpuSchedulerTraceStop); cellFiber->AddFunc(0xe665f9a9, cellFiberPpuSchedulerTraceStop);
cellFiber.AddFunc(0x68ba4568, _cellFiberPpuUtilWorkerControlAttributeInitialize); cellFiber->AddFunc(0x68ba4568, _cellFiberPpuUtilWorkerControlAttributeInitialize);
cellFiber.AddFunc(0x1e7a247a, cellFiberPpuUtilWorkerControlRunFibers); cellFiber->AddFunc(0x1e7a247a, cellFiberPpuUtilWorkerControlRunFibers);
cellFiber.AddFunc(0x3204b146, cellFiberPpuUtilWorkerControlInitialize); cellFiber->AddFunc(0x3204b146, cellFiberPpuUtilWorkerControlInitialize);
cellFiber.AddFunc(0x392c5aa5, cellFiberPpuUtilWorkerControlSetPollingMode); cellFiber->AddFunc(0x392c5aa5, cellFiberPpuUtilWorkerControlSetPollingMode);
cellFiber.AddFunc(0x3b417f82, cellFiberPpuUtilWorkerControlJoinFiber); cellFiber->AddFunc(0x3b417f82, cellFiberPpuUtilWorkerControlJoinFiber);
cellFiber.AddFunc(0x4fc86b2c, cellFiberPpuUtilWorkerControlDisconnectEventQueue); cellFiber->AddFunc(0x4fc86b2c, cellFiberPpuUtilWorkerControlDisconnectEventQueue);
cellFiber.AddFunc(0x5d3992dd, cellFiberPpuUtilWorkerControlSendSignal); cellFiber->AddFunc(0x5d3992dd, cellFiberPpuUtilWorkerControlSendSignal);
cellFiber.AddFunc(0x62a20f0d, cellFiberPpuUtilWorkerControlConnectEventQueueToSpurs); cellFiber->AddFunc(0x62a20f0d, cellFiberPpuUtilWorkerControlConnectEventQueueToSpurs);
cellFiber.AddFunc(0xa27c95ca, cellFiberPpuUtilWorkerControlFinalize); cellFiber->AddFunc(0xa27c95ca, cellFiberPpuUtilWorkerControlFinalize);
cellFiber.AddFunc(0xbabf714b, cellFiberPpuUtilWorkerControlWakeup); cellFiber->AddFunc(0xbabf714b, cellFiberPpuUtilWorkerControlWakeup);
cellFiber.AddFunc(0xbfca88d3, cellFiberPpuUtilWorkerControlCreateFiber); cellFiber->AddFunc(0xbfca88d3, cellFiberPpuUtilWorkerControlCreateFiber);
cellFiber.AddFunc(0xc04e2438, cellFiberPpuUtilWorkerControlShutdown); cellFiber->AddFunc(0xc04e2438, cellFiberPpuUtilWorkerControlShutdown);
cellFiber.AddFunc(0xea6dc1ad, cellFiberPpuUtilWorkerControlCheckFlags); cellFiber->AddFunc(0xea6dc1ad, cellFiberPpuUtilWorkerControlCheckFlags);
cellFiber.AddFunc(0xf2ccad4f, cellFiberPpuUtilWorkerControlInitializeWithAttribute); cellFiber->AddFunc(0xf2ccad4f, cellFiberPpuUtilWorkerControlInitializeWithAttribute);
} }
#endif

View file

@ -0,0 +1,17 @@
#pragma once
// Return Codes
enum
{
CELL_FIBER_ERROR_AGAIN = 0x80760001,
CELL_FIBER_ERROR_INVAL = 0x80760002,
CELL_FIBER_ERROR_NOMEM = 0x80760004,
CELL_FIBER_ERROR_DEADLK = 0x80760008,
CELL_FIBER_ERROR_PERM = 0x80760009,
CELL_FIBER_ERROR_BUSY = 0x8076000A,
CELL_FIBER_ERROR_ABORT = 0x8076000C,
CELL_FIBER_ERROR_STAT = 0x8076000F,
CELL_FIBER_ERROR_ALIGN = 0x80760010,
CELL_FIBER_ERROR_NULL_POINTER = 0x80760011,
CELL_FIBER_ERROR_NOSYSINIT = 0x80760020,
};

View file

@ -770,7 +770,7 @@ void cellSpursJq_init()
extern Module* sysPrxForUser; extern Module* sysPrxForUser;
extern Module* cellSpurs; extern Module* cellSpurs;
//extern Module* cellFiber; extern Module* cellFiber;
FIX_IMPORT(cellSpurs, cellSpursSendWorkloadSignal , libspurs_jq + 0x6728); FIX_IMPORT(cellSpurs, cellSpursSendWorkloadSignal , libspurs_jq + 0x6728);
FIX_IMPORT(cellSpurs, cellSpursWorkloadAttributeSetName , libspurs_jq + 0x6748); FIX_IMPORT(cellSpurs, cellSpursWorkloadAttributeSetName , libspurs_jq + 0x6748);
@ -781,8 +781,8 @@ void cellSpursJq_init()
FIX_IMPORT(cellSpurs, cellSpursAddWorkloadWithAttribute , libspurs_jq + 0x67E8); FIX_IMPORT(cellSpurs, cellSpursAddWorkloadWithAttribute , libspurs_jq + 0x67E8);
FIX_IMPORT(cellSpurs, cellSpursSetExceptionEventHandler , libspurs_jq + 0x6808); FIX_IMPORT(cellSpurs, cellSpursSetExceptionEventHandler , libspurs_jq + 0x6808);
FIX_IMPORT(cellSpurs, _cellSpursWorkloadAttributeInitialize , libspurs_jq + 0x6828); FIX_IMPORT(cellSpurs, _cellSpursWorkloadAttributeInitialize , libspurs_jq + 0x6828);
FIX_IMPORT(cellSpurs, cellFiberPpuSelf , libspurs_jq + 0x6848); // ! FIX_IMPORT(cellFiber, cellFiberPpuSelf , libspurs_jq + 0x6848);
FIX_IMPORT(cellSpurs, cellFiberPpuWaitSignal , libspurs_jq + 0x6868); // ! FIX_IMPORT(cellFiber, cellFiberPpuWaitSignal , libspurs_jq + 0x6868);
FIX_IMPORT(sysPrxForUser, _sys_strncmp , libspurs_jq + 0x6888); FIX_IMPORT(sysPrxForUser, _sys_strncmp , libspurs_jq + 0x6888);
FIX_IMPORT(sysPrxForUser, _sys_snprintf , libspurs_jq + 0x68A8); FIX_IMPORT(sysPrxForUser, _sys_snprintf , libspurs_jq + 0x68A8);
FIX_IMPORT(sysPrxForUser, sys_lwcond_destroy , libspurs_jq + 0x68C8); FIX_IMPORT(sysPrxForUser, sys_lwcond_destroy , libspurs_jq + 0x68C8);

View file

@ -415,13 +415,13 @@ void cellSync2_init()
extern Module* sysPrxForUser; extern Module* sysPrxForUser;
extern Module* cellSpurs; extern Module* cellSpurs;
extern Module* cellSpursJq; extern Module* cellSpursJq;
//extern Module* cellFiber; extern Module* cellFiber;
FIX_IMPORT(cellSpurs, _cellSpursSendSignal , libsync2 + 0x61F0); FIX_IMPORT(cellSpurs, _cellSpursSendSignal , libsync2 + 0x61F0);
FIX_IMPORT(cellSpursJq, cellSpursJobQueueSendSignal , libsync2 + 0x6210); FIX_IMPORT(cellSpursJq, cellSpursJobQueueSendSignal , libsync2 + 0x6210);
FIX_IMPORT(cellSync2, cellFiberPpuUtilWorkerControlSendSignal , libsync2 + 0x6230); // ! FIX_IMPORT(cellFiber, cellFiberPpuUtilWorkerControlSendSignal , libsync2 + 0x6230);
FIX_IMPORT(cellSync2, cellFiberPpuSelf , libsync2 + 0x6250); // ! FIX_IMPORT(cellFiber, cellFiberPpuSelf , libsync2 + 0x6250);
FIX_IMPORT(cellSync2, cellFiberPpuWaitSignal , libsync2 + 0x6270); // ! FIX_IMPORT(cellFiber, cellFiberPpuWaitSignal , libsync2 + 0x6270);
FIX_IMPORT(sysPrxForUser, sys_lwmutex_lock , libsync2 + 0x6290); FIX_IMPORT(sysPrxForUser, sys_lwmutex_lock , libsync2 + 0x6290);
FIX_IMPORT(sysPrxForUser, sys_lwmutex_unlock , libsync2 + 0x62B0); FIX_IMPORT(sysPrxForUser, sys_lwmutex_unlock , libsync2 + 0x62B0);
FIX_IMPORT(sysPrxForUser, sys_lwmutex_create , libsync2 + 0x62D0); FIX_IMPORT(sysPrxForUser, sys_lwmutex_create , libsync2 + 0x62D0);

View file

@ -355,6 +355,7 @@
<ClInclude Include="Emu\SysCalls\Modules\cellAdec.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellAdec.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellAtrac.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellAtrac.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellDmux.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellDmux.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellFiber.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellFont.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellFont.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellFontFT.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellFontFT.h" />
<ClInclude Include="Emu\SysCalls\Modules\cellGame.h" /> <ClInclude Include="Emu\SysCalls\Modules\cellGame.h" />

View file

@ -380,9 +380,6 @@
<ClCompile Include="Emu\SysCalls\Modules\cellCelpEnc.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellCelpEnc.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter> <Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellFiber.cpp">
<Filter>Emu\SysCalls\currently_unused</Filter>
</ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellGem.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellGem.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
@ -608,6 +605,9 @@
<ClCompile Include="Emu\SysCalls\Modules\cellSpursJq.cpp"> <ClCompile Include="Emu\SysCalls\Modules\cellSpursJq.cpp">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Emu\SysCalls\Modules\cellFiber.cpp">
<Filter>Emu\SysCalls\Modules</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="Crypto\aes.h"> <ClInclude Include="Crypto\aes.h">
@ -1168,5 +1168,8 @@
<ClInclude Include="Emu\SysCalls\Modules\cellSpursJq.h"> <ClInclude Include="Emu\SysCalls\Modules\cellSpursJq.h">
<Filter>Emu\SysCalls\Modules</Filter> <Filter>Emu\SysCalls\Modules</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="Emu\SysCalls\Modules\cellFiber.h">
<Filter>Emu\SysCalls\Modules</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>