mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-04-21 20:14:45 +00:00
initial sceNetCtl module implementation
This commit is contained in:
parent
e6d57cc978
commit
8d647ee323
2 changed files with 62 additions and 8 deletions
|
@ -143,7 +143,17 @@ int PS4_SYSV_ABI sceNetCtlGetIfStat() {
|
|||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
int PS4_SYSV_ABI sceNetCtlGetInfo() {
|
||||
int PS4_SYSV_ABI sceNetCtlGetInfo(int code, OrbisNetCtlInfo* info) {
|
||||
switch (code) {
|
||||
case ORBIS_NET_CTL_INFO_DEVICE:
|
||||
info->device = 0;
|
||||
break;
|
||||
case ORBIS_NET_CTL_INFO_LINK:
|
||||
info->link = 0; // disconnected
|
||||
break;
|
||||
default:
|
||||
LOG_ERROR(Lib_NetCtl, "{} unsupported code", code);
|
||||
}
|
||||
LOG_ERROR(Lib_NetCtl, "(STUBBED) called");
|
||||
return ORBIS_OK;
|
||||
}
|
||||
|
@ -173,8 +183,9 @@ int PS4_SYSV_ABI sceNetCtlGetNetEvConfigInfoIpcInt() {
|
|||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
int PS4_SYSV_ABI sceNetCtlGetResult() {
|
||||
int PS4_SYSV_ABI sceNetCtlGetResult(int eventType, int* errorCode) {
|
||||
LOG_ERROR(Lib_NetCtl, "(STUBBED) called");
|
||||
*errorCode = 0;
|
||||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
|
@ -213,8 +224,9 @@ int PS4_SYSV_ABI sceNetCtlGetScanInfoForSsidScanIpcInt() {
|
|||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
int PS4_SYSV_ABI sceNetCtlGetState() {
|
||||
int PS4_SYSV_ABI sceNetCtlGetState(int* state) {
|
||||
LOG_ERROR(Lib_NetCtl, "(STUBBED) called");
|
||||
*state = 0;
|
||||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
|
@ -248,8 +260,9 @@ int PS4_SYSV_ABI sceNetCtlIsBandwidthManagementEnabledIpcInt() {
|
|||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
int PS4_SYSV_ABI sceNetCtlRegisterCallback() {
|
||||
int PS4_SYSV_ABI sceNetCtlRegisterCallback(OrbisNetCtlCallback func, void* arg, int* cid) {
|
||||
LOG_ERROR(Lib_NetCtl, "(STUBBED) called");
|
||||
*cid = 1;
|
||||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,47 @@ class SymbolsResolver;
|
|||
|
||||
namespace Libraries::NetCtl {
|
||||
|
||||
constexpr int ORBIS_NET_ETHER_ADDR_LEN = 6;
|
||||
|
||||
struct OrbisNetEtherAddr {
|
||||
u8 data[ORBIS_NET_ETHER_ADDR_LEN];
|
||||
};
|
||||
|
||||
constexpr int ORBIS_NET_CTL_SSID_LEN = 32 + 1;
|
||||
constexpr int ORBIS_NET_CTL_HOSTNAME_LEN = 255 + 1;
|
||||
constexpr int ORBIS_NET_CTL_AUTH_NAME_LEN = 127 + 1;
|
||||
constexpr int ORBIS_NET_CTL_IPV4_ADDR_STR_LEN = 16;
|
||||
|
||||
typedef union OrbisNetCtlInfo {
|
||||
u32 device;
|
||||
OrbisNetEtherAddr ether_addr;
|
||||
u32 mtu;
|
||||
u32 link;
|
||||
OrbisNetEtherAddr bssid;
|
||||
char ssid[ORBIS_NET_CTL_SSID_LEN];
|
||||
u32 wifi_security;
|
||||
u8 rssi_dbm;
|
||||
uint8_t rssi_percentage;
|
||||
u8 channel;
|
||||
u32 ip_config;
|
||||
char dhcp_hostname[ORBIS_NET_CTL_HOSTNAME_LEN];
|
||||
char pppoe_auth_name[ORBIS_NET_CTL_AUTH_NAME_LEN];
|
||||
char ip_address[ORBIS_NET_CTL_IPV4_ADDR_STR_LEN];
|
||||
char netmask[ORBIS_NET_CTL_IPV4_ADDR_STR_LEN];
|
||||
char default_route[ORBIS_NET_CTL_IPV4_ADDR_STR_LEN];
|
||||
char primary_dns[ORBIS_NET_CTL_IPV4_ADDR_STR_LEN];
|
||||
char secondary_dns[ORBIS_NET_CTL_IPV4_ADDR_STR_LEN];
|
||||
u32 http_proxy_config;
|
||||
char http_proxy_server[ORBIS_NET_CTL_HOSTNAME_LEN];
|
||||
u16 http_proxy_port;
|
||||
} SceNetCtlInfo;
|
||||
|
||||
using OrbisNetCtlCallback = PS4_SYSV_ABI void (*)(int eventType, void* arg);
|
||||
|
||||
// GetInfo codes
|
||||
constexpr int ORBIS_NET_CTL_INFO_DEVICE = 1;
|
||||
constexpr int ORBIS_NET_CTL_INFO_LINK = 4;
|
||||
|
||||
int PS4_SYSV_ABI sceNetBweCheckCallbackIpcInt();
|
||||
int PS4_SYSV_ABI sceNetBweClearEventIpcInt();
|
||||
int PS4_SYSV_ABI sceNetBweFinishInternetConnectionTestIpcInt();
|
||||
|
@ -38,13 +79,13 @@ int PS4_SYSV_ABI sceNetCtlEnableBandwidthManagementIpcInt();
|
|||
int PS4_SYSV_ABI sceNetCtlGetBandwidthInfoIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetEtherLinkMode();
|
||||
int PS4_SYSV_ABI sceNetCtlGetIfStat();
|
||||
int PS4_SYSV_ABI sceNetCtlGetInfo();
|
||||
int PS4_SYSV_ABI sceNetCtlGetInfo(int code, OrbisNetCtlInfo* info);
|
||||
int PS4_SYSV_ABI sceNetCtlGetInfoIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetInfoV6IpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetNatInfo();
|
||||
int PS4_SYSV_ABI sceNetCtlGetNatInfoIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetNetEvConfigInfoIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetResult();
|
||||
int PS4_SYSV_ABI sceNetCtlGetResult(int eventType, int* errorCode);
|
||||
int PS4_SYSV_ABI sceNetCtlGetResultIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetResultV6IpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetScanInfoBssidForSsidListScanIpcInt();
|
||||
|
@ -52,14 +93,14 @@ int PS4_SYSV_ABI sceNetCtlGetScanInfoBssidIpcInt();
|
|||
int PS4_SYSV_ABI sceNetCtlGetScanInfoByBssidIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetScanInfoForSsidListScanIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetScanInfoForSsidScanIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetState();
|
||||
int PS4_SYSV_ABI sceNetCtlGetState(int* state);
|
||||
int PS4_SYSV_ABI sceNetCtlGetState2IpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetStateIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetStateV6IpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlGetWifiType();
|
||||
int PS4_SYSV_ABI sceNetCtlInit();
|
||||
int PS4_SYSV_ABI sceNetCtlIsBandwidthManagementEnabledIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlRegisterCallback();
|
||||
int PS4_SYSV_ABI sceNetCtlRegisterCallback(OrbisNetCtlCallback func, void* arg, int* cid);
|
||||
int PS4_SYSV_ABI sceNetCtlRegisterCallbackForLibIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlRegisterCallbackIpcInt();
|
||||
int PS4_SYSV_ABI sceNetCtlRegisterCallbackV6IpcInt();
|
||||
|
|
Loading…
Add table
Reference in a new issue