#include "stdafx.h" #include "Emu/Cell/PPUModule.h" LOG_CHANNEL(cellSysutilAp); // Return Codes enum CellSysutilApError : u32 { CELL_SYSUTIL_AP_ERROR_OUT_OF_MEMORY = 0x8002cd00, CELL_SYSUTIL_AP_ERROR_FATAL = 0x8002cd01, CELL_SYSUTIL_AP_ERROR_INVALID_VALUE = 0x8002cd02, CELL_SYSUTIL_AP_ERROR_NOT_INITIALIZED = 0x8002cd03, CELL_SYSUTIL_AP_ERROR_ZERO_REGISTERED = 0x8002cd13, CELL_SYSUTIL_AP_ERROR_NETIF_DISABLED = 0x8002cd14, CELL_SYSUTIL_AP_ERROR_NETIF_NO_CABLE = 0x8002cd15, CELL_SYSUTIL_AP_ERROR_NETIF_CANNOT_CONNECT = 0x8002cd16, }; template <> void fmt_class_string::format(std::string& out, u64 arg) { format_enum(out, arg, [](auto error) { switch (error) { STR_CASE(CELL_SYSUTIL_AP_ERROR_OUT_OF_MEMORY); STR_CASE(CELL_SYSUTIL_AP_ERROR_FATAL); STR_CASE(CELL_SYSUTIL_AP_ERROR_INVALID_VALUE); STR_CASE(CELL_SYSUTIL_AP_ERROR_NOT_INITIALIZED); STR_CASE(CELL_SYSUTIL_AP_ERROR_ZERO_REGISTERED); STR_CASE(CELL_SYSUTIL_AP_ERROR_NETIF_DISABLED); STR_CASE(CELL_SYSUTIL_AP_ERROR_NETIF_NO_CABLE); STR_CASE(CELL_SYSUTIL_AP_ERROR_NETIF_CANNOT_CONNECT); } return unknown; }); } enum { CELL_SYSUTIL_AP_TITLE_ID_LEN = 9, CELL_SYSUTIL_AP_SSID_LEN = 32, CELL_SYSUTIL_AP_WPA_KEY_LEN = 64 }; struct CellSysutilApTitleId { char data[CELL_SYSUTIL_AP_TITLE_ID_LEN]; char padding[3]; }; struct CellSysutilApSsid { char data[CELL_SYSUTIL_AP_SSID_LEN + 1]; char padding[3]; }; struct CellSysutilApWpaKey { char data[CELL_SYSUTIL_AP_WPA_KEY_LEN + 1]; char padding[3]; }; struct CellSysutilApParam { be_t type; be_t wlanFlag; CellSysutilApTitleId titleId; CellSysutilApSsid ssid; CellSysutilApWpaKey wpakey; }; s32 cellSysutilApGetRequiredMemSize() { cellSysutilAp.trace("cellSysutilApGetRequiredMemSize()"); return 1024 * 1024; // Return 1 MB as required size } error_code cellSysutilApOn(vm::ptr pParam, u32 container) { cellSysutilAp.todo("cellSysutilApOn(pParam=*0x%x, container=0x%x)", pParam, container); return CELL_OK; } error_code cellSysutilApOff() { cellSysutilAp.todo("cellSysutilApOff()"); return CELL_OK; } DECLARE(ppu_module_manager::cellSysutilAp)("cellSysutilAp", []() { REG_FUNC(cellSysutilAp, cellSysutilApGetRequiredMemSize); REG_FUNC(cellSysutilAp, cellSysutilApOn); REG_FUNC(cellSysutilAp, cellSysutilApOff); });