rpcsx/ps3fw/cellSpudll.cpp

69 lines
1.6 KiB
C++
Raw Normal View History

2015-07-29 20:35:03 +02:00
#include "stdafx.h"
2016-03-21 20:43:03 +01:00
#include "Emu/Cell/PPUModule.h"
2015-07-29 20:35:03 +02:00
#include "cellSpudll.h"
2016-08-19 23:14:10 +02:00
LOG_CHANNEL(cellSpudll);
2015-07-29 20:35:03 +02:00
template <>
void fmt_class_string<CellSpudllError>::format(std::string& out, u64 arg)
{
format_enum(out, arg, [](auto error)
{
switch (error)
{
STR_CASE(CELL_SPUDLL_ERROR_INVAL);
STR_CASE(CELL_SPUDLL_ERROR_STAT);
STR_CASE(CELL_SPUDLL_ERROR_ALIGN);
STR_CASE(CELL_SPUDLL_ERROR_NULL_POINTER);
STR_CASE(CELL_SPUDLL_ERROR_SRCH);
STR_CASE(CELL_SPUDLL_ERROR_UNDEF);
STR_CASE(CELL_SPUDLL_ERROR_FATAL);
}
return unknown;
});
}
error_code cellSpudllGetImageSize(vm::ptr<u32> psize, vm::cptr<void> so_elf, vm::cptr<CellSpudllHandleConfig> config)
2015-07-29 20:35:03 +02:00
{
cellSpudll.todo("cellSpudllGetImageSize(psize=*0x%x, so_elf=*0x%x, config=*0x%x)", psize, so_elf, config);
if (!psize || !so_elf)
{
return CELL_SPUDLL_ERROR_NULL_POINTER;
}
// todo
return CELL_OK;
2015-07-29 20:35:03 +02:00
}
error_code cellSpudllHandleConfigSetDefaultValues(vm::ptr<CellSpudllHandleConfig> config)
2015-07-29 20:35:03 +02:00
{
cellSpudll.trace("cellSpudllHandleConfigSetDefaultValues(config=*0x%x)", config);
if (!config)
{
return CELL_SPUDLL_ERROR_NULL_POINTER;
}
config->mode = 0;
config->dmaTag = 0;
config->numMaxReferred = 16;
config->numMaxDepend = 16;
config->unresolvedSymbolValueForFunc = vm::null;
config->unresolvedSymbolValueForObject = vm::null;
config->unresolvedSymbolValueForOther = vm::null;
std::memset(config->__reserved__, 0, sizeof(config->__reserved__));
return CELL_OK;
2015-07-29 20:35:03 +02:00
}
2016-03-21 20:43:03 +01:00
DECLARE(ppu_module_manager::cellSpudll)("cellSpudll", []()
{
REG_FUNC(cellSpudll, cellSpudllGetImageSize);
REG_FUNC(cellSpudll, cellSpudllHandleConfigSetDefaultValues).flag(MFF_PERFECT);
});