1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2025-01-31 20:41:45 +01:00

Some functions added

This commit is contained in:
Nekotekina 2015-08-01 04:46:42 +03:00
parent ce9cd13e42
commit 0b1e45b6b5
10 changed files with 93 additions and 12 deletions

View File

@ -116,8 +116,6 @@ namespace vm
{
AT m_addr;
using type = RT(T...);
AT addr() const
{
return m_addr;
@ -141,7 +139,7 @@ namespace vm
RT operator()(ARMv7Context& context, T... args) const;
// conversion to another function pointer
template<typename AT2> operator _ptr_base<type, AT2>() const
template<typename AT2> operator _ptr_base<RT(T...), AT2>() const
{
return{ VM_CAST(m_addr) };
}

View File

@ -191,8 +191,7 @@ s32 cellMicGetStatus()
s32 cellMicStopEx()
{
UNIMPLEMENTED_FUNC(cellMic);
return CELL_OK;
throw EXCEPTION("Unexpected function");
}
s32 cellMicSysShareClose()
@ -298,7 +297,7 @@ Module cellMic("cellMic", []()
REG_FUNC(cellMic, cellMicReadDsp);
REG_FUNC(cellMic, cellMicGetStatus);
REG_FUNC(cellMic, cellMicStopEx);
REG_FUNC(cellMic, cellMicStopEx); // this function shouldn't exist
REG_FUNC(cellMic, cellMicSysShareClose);
REG_FUNC(cellMic, cellMicGetFormat);
REG_FUNC(cellMic, cellMicSetMultiMicNotifyEventQueue);

View File

@ -83,6 +83,11 @@ s32 cellPadPeriphGetInfo(vm::ptr<CellPadPeriphInfo> info)
return CELL_OK;
}
s32 cellPadPeriphGetData()
{
throw EXCEPTION("");
}
s32 cellPadGetData(u32 port_no, vm::ptr<CellPadData> data)
{
sys_io.Log("cellPadGetData(port_no=%d, data=*0x%x)", port_no, data);
@ -262,6 +267,11 @@ s32 cellPadGetData(u32 port_no, vm::ptr<CellPadData> data)
return CELL_OK;
}
s32 cellPadGetRawData(u32 port_no, vm::ptr<CellPadData> data)
{
throw EXCEPTION("");
}
s32 cellPadGetDataExtra(u32 port_no, vm::ptr<u32> device_type, vm::ptr<CellPadData> data)
{
sys_io.Log("cellPadGetDataExtra(port_no=%d, device_type=*0x%x, device_type=*0x%x)", port_no, device_type, data);
@ -526,23 +536,26 @@ s32 cellPadLddUnregisterController(s32 handle)
return CELL_OK;
}
void cellPad_init()
{
REG_FUNC(sys_io, cellPadInit);
REG_FUNC(sys_io, cellPadEnd);
REG_FUNC(sys_io, cellPadClearBuf);
REG_FUNC(sys_io, cellPadGetData);
REG_FUNC(sys_io, cellPadGetRawData); //
REG_FUNC(sys_io, cellPadGetDataExtra);
REG_FUNC(sys_io, cellPadSetActDirect);
REG_FUNC(sys_io, cellPadGetInfo);
REG_FUNC(sys_io, cellPadGetInfo); //
REG_FUNC(sys_io, cellPadGetInfo2);
REG_FUNC(sys_io, cellPadPeriphGetInfo);
REG_FUNC(sys_io, cellPadPeriphGetData);
REG_FUNC(sys_io, cellPadSetPortSetting);
REG_FUNC(sys_io, cellPadInfoPressMode);
REG_FUNC(sys_io, cellPadInfoSensorMode);
REG_FUNC(sys_io, cellPadSetPressMode);
REG_FUNC(sys_io, cellPadSetSensorMode);
REG_FUNC(sys_io, cellPadGetCapabilityInfo);
REG_FUNC(sys_io, cellPadInfoPressMode); //
REG_FUNC(sys_io, cellPadInfoSensorMode); //
REG_FUNC(sys_io, cellPadSetPressMode); //
REG_FUNC(sys_io, cellPadSetSensorMode); //
REG_FUNC(sys_io, cellPadGetCapabilityInfo); //
REG_FUNC(sys_io, cellPadLddRegisterController);
REG_FUNC(sys_io, cellPadLddDataInsert);
REG_FUNC(sys_io, cellPadLddGetPortNo);

View File

@ -1737,6 +1737,13 @@ s32 cellSpursSetPriorities(vm::ptr<CellSpurs> spurs, u32 wid, vm::cptr<u8> prior
return CELL_OK;
}
/// Set the priority of a workload for the specified SPU
s32 cellSpursSetPriority(vm::ptr<CellSpurs> spurs, u32 wid, u32 spuId, u32 priority)
{
cellSpurs.Todo("cellSpursSetPriority(spurs=*0x%x, wid=%d, spuId=%d, priority=%d)", spurs, wid, spuId, priority);
return CELL_OK;
}
/// Set preemption victim SPU
s32 cellSpursSetPreemptionVictimHints(vm::ptr<CellSpurs> spurs, vm::cptr<b8> isPreemptible)
{
@ -4226,6 +4233,7 @@ Module cellSpurs("cellSpurs", []()
REG_FUNC(cellSpurs, cellSpursGetInfo);
REG_FUNC(cellSpurs, cellSpursSetMaxContention);
REG_FUNC(cellSpurs, cellSpursSetPriorities);
REG_FUNC(cellSpurs, cellSpursSetPriority);
REG_FUNC(cellSpurs, cellSpursSetPreemptionVictimHints);
REG_FUNC(cellSpurs, cellSpursAttachLv2EventQueue);
REG_FUNC(cellSpurs, cellSpursDetachLv2EventQueue);

View File

@ -378,6 +378,12 @@ s32 cellSpursJobQueueSetExceptionEventHandler()
return CELL_OK;
}
s32 cellSpursJobQueueSetExceptionEventHandler2()
{
UNIMPLEMENTED_FUNC(cellSpursJq);
return CELL_OK;
}
s32 cellSpursJobQueueUnsetExceptionEventHandler()
{
UNIMPLEMENTED_FUNC(cellSpursJq);
@ -447,5 +453,6 @@ Module cellSpursJq("cellSpursJq", []()
REG_FUNC(cellSpursJq, _cellSpursJobQueuePort2CopyPushJobBody);
REG_FUNC(cellSpursJq, _cellSpursJobQueuePort2PushJobBody);
REG_FUNC(cellSpursJq, cellSpursJobQueueSetExceptionEventHandler);
REG_FUNC(cellSpursJq, cellSpursJobQueueSetExceptionEventHandler2);
REG_FUNC(cellSpursJq, cellSpursJobQueueUnsetExceptionEventHandler);
});

View File

@ -251,6 +251,13 @@ s32 cellSync2QueueGetDepth()
Module cellSync2("cellSync2", []()
{
//REG_VARIABLE(cellSync2, gCellSync2CallerThreadTypePpuThread);
//REG_VARIABLE(cellSync2, gCellSync2NotifierPpuThread);
//REG_VARIABLE(cellSync2, gCellSync2CallerThreadTypePpuFiber);
//REG_VARIABLE(cellSync2, gCellSync2NotifierPpuFiber);
//REG_VARIABLE(cellSync2, gCellSync2NotifierSpursTask);
//REG_VARIABLE(cellSync2, gCellSync2NotifierSpursJobQueueJob);
REG_FUNC(cellSync2, _cellSync2MutexAttributeInitialize);
REG_FUNC(cellSync2, cellSync2MutexEstimateBufferSize);
REG_FUNC(cellSync2, cellSync2MutexInitialize);

View File

@ -950,6 +950,8 @@ s32 cellVdecSetFrameRate(u32 handle, CellVdecFrameRate frc)
Module cellVdec("cellVdec", []()
{
//REG_VARIABLE(cellVdec, _cell_vdec_prx_ver); // 0x085a7ecb
REG_FUNC(cellVdec, cellVdecQueryAttr);
REG_FUNC(cellVdec, cellVdecQueryAttrEx);
REG_FUNC(cellVdec, cellVdecOpen);

View File

@ -220,6 +220,11 @@ s32 cellVoiceWriteToIPortEx()
return CELL_OK;
}
s32 cellVoiceWriteToIPortEx2()
{
throw EXCEPTION("");
}
s32 cellVoiceReadFromOPort()
{
UNIMPLEMENTED_FUNC(cellVoice);
@ -266,6 +271,7 @@ Module cellVoice("cellVoice", []()
REG_FUNC(cellVoice, cellVoiceUpdatePort);
REG_FUNC(cellVoice, cellVoiceWriteToIPort);
REG_FUNC(cellVoice, cellVoiceWriteToIPortEx);
REG_FUNC(cellVoice, cellVoiceWriteToIPortEx2);
REG_FUNC(cellVoice, cellVoiceReadFromOPort);
REG_FUNC(cellVoice, cellVoiceDebugTopology);
});

View File

@ -1297,6 +1297,8 @@ Module sysPrxForUser("sysPrxForUser", []()
// Setup random number generator
srand(time(NULL));
//REG_VARIABLE(sysPrxForUser, sys_prx_version); // 0x7df066cf
REG_FUNC(sysPrxForUser, sys_initialize_tls);
REG_FUNC(sysPrxForUser, sys_lwmutex_create);

View File

@ -7,9 +7,48 @@ extern void cellPad_init();
extern void cellKb_init();
extern void cellMouse_init();
s32 sys_config_start()
{
throw EXCEPTION("");
}
s32 sys_config_stop()
{
throw EXCEPTION("");
}
s32 sys_config_add_service_listener()
{
throw EXCEPTION("");
}
s32 sys_config_remove_service_listener()
{
throw EXCEPTION("");
}
s32 sys_config_register_service()
{
throw EXCEPTION("");
}
s32 sys_config_unregister_service()
{
throw EXCEPTION("");
}
Module sys_io("sys_io", []()
{
cellPad_init();
cellKb_init();
cellMouse_init();
REG_FUNC(sys_io, sys_config_start);
REG_FUNC(sys_io, sys_config_stop);
REG_FUNC(sys_io, sys_config_add_service_listener);
REG_FUNC(sys_io, sys_config_remove_service_listener);
REG_FUNC(sys_io, sys_config_register_service);
REG_FUNC(sys_io, sys_config_unregister_service);
});