rpcs3/rpcs3/Emu/Cell/Modules/cellSysutilAp.cpp
2020-12-06 15:30:12 +03:00

99 lines
2.3 KiB
C++

#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<CellSysutilApError>::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<s32> type;
be_t<s32> 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<CellSysutilApParam> 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);
});