mirror of
https://github.com/RPCSX/rpcsx.git
synced 2025-12-06 07:12:14 +01:00
69 lines
1.6 KiB
C++
69 lines
1.6 KiB
C++
#include "stdafx.h"
|
|
#include "Emu/Cell/PPUModule.h"
|
|
|
|
#include "cellSpudll.h"
|
|
|
|
LOG_CHANNEL(cellSpudll);
|
|
|
|
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)
|
|
{
|
|
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;
|
|
}
|
|
|
|
error_code cellSpudllHandleConfigSetDefaultValues(vm::ptr<CellSpudllHandleConfig> config)
|
|
{
|
|
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;
|
|
}
|
|
|
|
DECLARE(ppu_module_manager::cellSpudll)("cellSpudll", []()
|
|
{
|
|
REG_FUNC(cellSpudll, cellSpudllGetImageSize);
|
|
REG_FUNC(cellSpudll, cellSpudllHandleConfigSetDefaultValues).flag(MFF_PERFECT);
|
|
});
|