#include "stdafx.h" #include "Emu/Cell/PPUModule.h" #include "cellSpudll.h" LOG_CHANNEL(cellSpudll); template <> void fmt_class_string::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 psize, vm::cptr so_elf, vm::cptr 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 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); });