sceNp: add some constants

This commit is contained in:
Megamouse 2022-05-10 19:59:23 +02:00
parent d77c9139ad
commit e494fc04e5
8 changed files with 151 additions and 22 deletions

View File

@ -422,7 +422,7 @@ error_code sceNpInit(u32 poolsize, vm::ptr<void> poolptr)
return SCE_NP_ERROR_INVALID_ARGUMENT; return SCE_NP_ERROR_INVALID_ARGUMENT;
} }
if (poolsize < SCE_NP_MIN_POOLSIZE) if (poolsize < SCE_NP_MIN_POOL_SIZE)
{ {
return SCE_NP_ERROR_INSUFFICIENT_BUFFER; return SCE_NP_ERROR_INSUFFICIENT_BUFFER;
} }
@ -5064,7 +5064,7 @@ error_code sceNpSignalingGetLocalNetInfo(u32 ctx_id, vm::ptr<SceNpSignalingNetIn
info->nat_status = 0; info->nat_status = 0;
info->upnp_status = 0; info->upnp_status = 0;
info->npport_status = 0; info->npport_status = 0;
info->npport = 3658; info->npport = SCE_NP_PORT;
return CELL_OK; return CELL_OK;
} }

View File

@ -515,7 +515,8 @@ enum
enum enum
{ {
SCE_NP_MIN_POOLSIZE = 128 * 1024 SCE_NP_PORT = 3658,
SCE_NP_MIN_POOL_SIZE = 128 * 1024
}; };
enum enum
@ -529,6 +530,17 @@ enum : u64
SCE_NP_DRM_TIME_INFO_ENDLESS = 0x7FFFFFFFFFFFFFFFULL SCE_NP_DRM_TIME_INFO_ENDLESS = 0x7FFFFFFFFFFFFFFFULL
}; };
enum
{
SCE_NP_MANAGER_SUB_SIGNIN_MAX = 3,
};
enum
{
SCE_NP_MANAGER_SUB_SIGNIN_RESULT_OK = 0,
SCE_NP_MANAGER_SUB_SIGNIN_RESULT_CANCEL = 1,
};
// NP Manager Utility statuses // NP Manager Utility statuses
enum enum
{ {
@ -539,7 +551,10 @@ enum
SCE_NP_MANAGER_STATUS_ONLINE = 3, SCE_NP_MANAGER_STATUS_ONLINE = 3,
}; };
#define SCE_NP_MANAGER_EVENT_GOT_TICKET 255 enum
{
SCE_NP_MANAGER_EVENT_GOT_TICKET = 255
};
// Event types // Event types
enum enum
@ -824,6 +839,12 @@ enum
SCE_NP_ENTITLEMENT_ID_SIZE = 32, SCE_NP_ENTITLEMENT_ID_SIZE = 32,
}; };
enum
{
SCE_NP_ENTITLEMENT_TYPE_NON_CONSUMABLE = 0,
SCE_NP_ENTITLEMENT_TYPE_CONSUMABLE = 1
};
// Constants for ranking (score) functions and structures // Constants for ranking (score) functions and structures
enum enum
{ {
@ -906,6 +927,16 @@ enum
SCE_NP_SERVICE_ID_SIZE = 24, SCE_NP_SERVICE_ID_SIZE = 24,
}; };
enum
{
SCE_NP_LOOKUP_MAX_CTX_NUM = 32
};
enum
{
SCE_NP_AUTH_OAUTH_REQUEST_ID_MAX = 4
};
struct SceNpDrmKey struct SceNpDrmKey
{ {
u8 keydata[16]; u8 keydata[16];

View File

@ -136,6 +136,7 @@ enum
SCE_NP_MATCHING2_INVITATION_TARGET_SESSION_MAX = 2, SCE_NP_MATCHING2_INVITATION_TARGET_SESSION_MAX = 2,
SCE_NP_MATCHING2_LOBBY_MEMBER_DATA_INTERNAL_LIST_MAX = 256, SCE_NP_MATCHING2_LOBBY_MEMBER_DATA_INTERNAL_LIST_MAX = 256,
SCE_NP_MATCHING2_LOBBY_MEMBER_DATA_INTERNAL_EXTENDED_DATA_LIST_MAX = 64, SCE_NP_MATCHING2_LOBBY_MEMBER_DATA_INTERNAL_EXTENDED_DATA_LIST_MAX = 64,
SCE_NP_MATCHING2_LOBBY_BIN_ATTR_INTERNAL_NUM = 2,
SCE_NP_MATCHING2_LOBBYMEMBER_BIN_ATTR_INTERNAL_NUM = 1, SCE_NP_MATCHING2_LOBBYMEMBER_BIN_ATTR_INTERNAL_NUM = 1,
SCE_NP_MATCHING2_LOBBYMEMBER_BIN_ATTR_INTERNAL_MAX_SIZE = 64, SCE_NP_MATCHING2_LOBBYMEMBER_BIN_ATTR_INTERNAL_MAX_SIZE = 64,
SCE_NP_MATCHING2_LOBBY_MAX_SLOT = 256, SCE_NP_MATCHING2_LOBBY_MAX_SLOT = 256,
@ -149,6 +150,7 @@ enum
SCE_NP_MATCHING2_ROOM_BIN_ATTR_INTERNAL_NUM = 2, SCE_NP_MATCHING2_ROOM_BIN_ATTR_INTERNAL_NUM = 2,
SCE_NP_MATCHING2_ROOM_BIN_ATTR_INTERNAL_MAX_SIZE = 256, SCE_NP_MATCHING2_ROOM_BIN_ATTR_INTERNAL_MAX_SIZE = 256,
SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_NUM = 8, SCE_NP_MATCHING2_ROOM_SEARCHABLE_INT_ATTR_EXTERNAL_NUM = 8,
SCE_NP_MATCHING2_ROOM_SEARCHABLE_BIN_ATTR_EXTERNAL_NUM = 1,
SCE_NP_MATCHING2_ROOM_SEARCHABLE_BIN_ATTR_EXTERNAL_MAX_SIZE = 64, SCE_NP_MATCHING2_ROOM_SEARCHABLE_BIN_ATTR_EXTERNAL_MAX_SIZE = 64,
SCE_NP_MATCHING2_ROOMMEMBER_BIN_ATTR_INTERNAL_NUM = 1, SCE_NP_MATCHING2_ROOMMEMBER_BIN_ATTR_INTERNAL_NUM = 1,
SCE_NP_MATCHING2_ROOMMEMBER_BIN_ATTR_INTERNAL_MAX_SIZE = 64, SCE_NP_MATCHING2_ROOMMEMBER_BIN_ATTR_INTERNAL_MAX_SIZE = 64,
@ -156,6 +158,7 @@ enum
SCE_NP_MATCHING2_USER_BIN_ATTR_NUM = 1, SCE_NP_MATCHING2_USER_BIN_ATTR_NUM = 1,
SCE_NP_MATCHING2_USER_BIN_ATTR_MAX_SIZE = 128, SCE_NP_MATCHING2_USER_BIN_ATTR_MAX_SIZE = 128,
SCE_NP_MATCHING2_GET_USER_INFO_LIST_NPID_NUM_MAX = 25, SCE_NP_MATCHING2_GET_USER_INFO_LIST_NPID_NUM_MAX = 25,
SCE_NP_MATCHING2_GET_ROOM_DATA_EXTERNAL_LIST_ROOM_NUM_MAX = 20,
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetServerInfo = 4, SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetServerInfo = 4,
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetWorldInfoList = 3848, SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetWorldInfoList = 3848,
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetRoomMemberDataExternalList = 15624, SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_GetRoomMemberDataExternalList = 15624,
@ -187,6 +190,20 @@ enum
SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_LobbyInvitationInfo = 870, SCE_NP_MATCHING2_EVENT_DATA_MAX_SIZE_LobbyInvitationInfo = 870,
}; };
enum
{
SCE_NP_MATCHING2_MAX_SIZE_RoomDataExternal = 1288,
SCE_NP_MATCHING2_MAX_SIZE_RoomMemberDataInternal = 368,
SCE_NP_MATCHING2_MAX_SIZE_LobbyMemberDataInternal = 668,
SCE_NP_MATCHING2_MAX_SIZE_LobbyMemberDataInternal_NoExtendedData = 80,
SCE_NP_MATCHING2_MAX_SIZE_UserInfo = 704,
};
enum
{
SCE_NP_MATCHING2_TITLE_PASSPHRASE_SIZE = 128
};
// Comparison operator specified as the search condition // Comparison operator specified as the search condition
enum enum
{ {
@ -222,6 +239,11 @@ enum
SCE_NP_MATCHING2_SIGNALING_TYPE_STAR = 2, SCE_NP_MATCHING2_SIGNALING_TYPE_STAR = 2,
}; };
enum
{
SCE_NP_MATCHING2_SIGNALING_FLAG_MANUAL_MODE = 0x01
};
// Event cause // Event cause
enum enum
{ {
@ -300,6 +322,12 @@ enum
SCE_NP_MATCHING2_SEND_MSG_OPTION_WITH_AVATARURL = 0x04, SCE_NP_MATCHING2_SEND_MSG_OPTION_WITH_AVATARURL = 0x04,
}; };
enum
{
SCE_NP_MATCHING2_ROOM_ALLOWED_USER_MAX = 100,
SCE_NP_MATCHING2_ROOM_BLOCKED_USER_MAX = 100,
};
// Flag-type lobby attribute // Flag-type lobby attribute
enum enum
{ {
@ -328,6 +356,7 @@ enum
// Flah-type room member attribute // Flah-type room member attribute
enum enum
{ {
SCE_NP_MATCHING2_LOBBYMEMBER_FLAG_ATTR_OWNER = 0x80000000,
SCE_NP_MATCHING2_ROOMMEMBER_FLAG_ATTR_OWNER = 0x80000000, SCE_NP_MATCHING2_ROOMMEMBER_FLAG_ATTR_OWNER = 0x80000000,
}; };
@ -357,6 +386,13 @@ enum
SCE_NP_MATCHING2_ROOM_BIN_ATTR_EXTERNAL_2_ID = 0x0056, SCE_NP_MATCHING2_ROOM_BIN_ATTR_EXTERNAL_2_ID = 0x0056,
}; };
// ID of internal lobby binary attribute
enum
{
SCE_NP_MATCHING2_LOBBY_BIN_ATTR_INTERNAL_1_ID = 0x0037,
SCE_NP_MATCHING2_LOBBY_BIN_ATTR_INTERNAL_2_ID = 0x0038,
};
// ID of internal room binary attribute // ID of internal room binary attribute
enum enum
{ {
@ -453,6 +489,7 @@ enum
{ {
SCE_NP_MATCHING2_SIGNALING_EVENT_Dead = 0x5101, SCE_NP_MATCHING2_SIGNALING_EVENT_Dead = 0x5101,
SCE_NP_MATCHING2_SIGNALING_EVENT_Established = 0x5102, SCE_NP_MATCHING2_SIGNALING_EVENT_Established = 0x5102,
SCE_NP_MATCHING2_SIGNALING_EVENT_NetInfoResult = 0x5103,
}; };
// Context event // Context event
@ -463,6 +500,14 @@ enum
SCE_NP_MATCHING2_CONTEXT_EVENT_Stop = 0x6f03, SCE_NP_MATCHING2_CONTEXT_EVENT_Stop = 0x6f03,
}; };
enum
{
SCE_NP_MATCHING2_SIGNALING_NETINFO_NAT_STATUS_UNKNOWN = 0,
SCE_NP_MATCHING2_SIGNALING_NETINFO_NAT_STATUS_TYPE = 1,
SCE_NP_MATCHING2_SIGNALING_NETINFO_NAT_STATUS_TYPE2 = 2,
SCE_NP_MATCHING2_SIGNALING_NETINFO_NAT_STATUS_TYPE3 = 3,
};
typedef u16 SceNpMatching2ServerId; typedef u16 SceNpMatching2ServerId;
typedef u32 SceNpMatching2WorldId; typedef u32 SceNpMatching2WorldId;
typedef u16 SceNpMatching2WorldNumber; typedef u16 SceNpMatching2WorldNumber;

View File

@ -109,6 +109,34 @@ enum
SCE_NP_CLANS_PAGING_REQUEST_PAGE_MAX = 100, SCE_NP_CLANS_PAGING_REQUEST_PAGE_MAX = 100,
}; };
enum
{
SCE_NP_CLANS_FIELDS_SEARCHABLE_ATTR_INT_ATTR1 = 0x00000001,
SCE_NP_CLANS_FIELDS_SEARCHABLE_ATTR_INT_ATTR2 = 0x00000002,
SCE_NP_CLANS_FIELDS_SEARCHABLE_ATTR_INT_ATTR3 = 0x00000004,
SCE_NP_CLANS_FIELDS_SEARCHABLE_ATTR_BIN_ATTR1 = 0x00000008,
SCE_NP_CLANS_FIELDS_SEARCHABLE_PROFILE_TAG = 0x00000010,
SCE_NP_CLANS_FIELDS_SEARCHABLE_PROFILE_NUM_MEMBERS = 0x00000020,
SCE_NP_CLANS_FIELDS_UPDATABLE_CLAN_INFO_DESCR = 0x00000040,
SCE_NP_CLANS_FIELDS_UPDATABLE_CLAN_INFO_BIN_DATA1 = 0x00000080,
SCE_NP_CLANS_FIELDS_UPDATABLE_MEMBER_INFO_DESCR = 0x00000100,
SCE_NP_CLANS_FIELDS_UPDATABLE_MEMBER_INFO_BIN_ATTR1 = 0x00000200,
SCE_NP_CLANS_FIELDS_UPDATABLE_MEMBER_INFO_BIN_DATA1 = 0x00000400,
SCE_NP_CLANS_FIELDS_UPDATABLE_MEMBER_INFO_ALLOW_MSG = 0x00000800,
};
enum
{
SCE_NP_CLANS_MESSAGE_OPTIONS_NONE = 0x00000000,
SCE_NP_CLANS_MESSAGE_OPTIONS_CENSOR = 0x00000001,
};
enum
{
SCE_NP_CLANS_INVALID_ID = 0,
SCE_NP_CLANS_INVALID_REQUEST_HANDLE = 0,
};
// Request handle for clan API // Request handle for clan API
using SceNpClansRequestHandle = vm::ptr<struct SceNpClansRequest>; using SceNpClansRequestHandle = vm::ptr<struct SceNpClansRequest>;

View File

@ -15,6 +15,30 @@ enum
SCE_NP_TUS_MAX_SELECTED_FRIENDS_NUM = 100, SCE_NP_TUS_MAX_SELECTED_FRIENDS_NUM = 100,
}; };
enum
{
SCE_NP_TUS_OPETYPE_EQUAL = 1,
SCE_NP_TUS_OPETYPE_NOT_EQUAL,
SCE_NP_TUS_OPETYPE_GREATER_THAN,
SCE_NP_TUS_OPETYPE_GREATER_OR_EQUAL,
SCE_NP_TUS_OPETYPE_LESS_THAN,
SCE_NP_TUS_OPETYPE_LESS_OR_EQUAL
};
enum
{
SCE_NP_TUS_VARIABLE_SORTTYPE_DESCENDING_DATE = 1,
SCE_NP_TUS_VARIABLE_SORTTYPE_ASCENDING_DATE,
SCE_NP_TUS_VARIABLE_SORTTYPE_DESCENDING_VALUE,
SCE_NP_TUS_VARIABLE_SORTTYPE_ASCENDING_VALUE
};
enum
{
SCE_NP_TUS_DATASTATUS_SORTTYPE_DESCENDING_DATE = 1,
SCE_NP_TUS_DATASTATUS_SORTTYPE_ASCENDING_DATE
};
enum SceNpTssStatusCodeType enum SceNpTssStatusCodeType
{ {
SCE_NP_TSS_STATUS_TYPE_OK, SCE_NP_TSS_STATUS_TYPE_OK,

View File

@ -77,13 +77,13 @@ s32 lv2_socket_p2p::bind(const sys_net_sockaddr& addr, s32 ps3_id)
sys_net.notice("[P2P] Trying to bind %s:%d:%d", np::ip_to_string(std::bit_cast<u32>(psa_in_p2p->sin_addr)), p2p_port, p2p_vport); sys_net.notice("[P2P] Trying to bind %s:%d:%d", np::ip_to_string(std::bit_cast<u32>(psa_in_p2p->sin_addr)), p2p_port, p2p_vport);
if (p2p_port != 3658) if (p2p_port != SCE_NP_PORT)
{ {
if (p2p_port == 0) if (p2p_port == 0)
{ {
return -SYS_NET_EINVAL; return -SYS_NET_EINVAL;
} }
sys_net.warning("[P2P] Attempting to bind a socket to a port != 3658"); sys_net.warning("[P2P] Attempting to bind a socket to a port != %d", +SCE_NP_PORT);
} }
socket_type real_socket{}; socket_type real_socket{};

View File

@ -531,12 +531,12 @@ s32 lv2_socket_p2ps::bind(const sys_net_sockaddr& addr, s32 ps3_id)
if (p2p_port == 0) if (p2p_port == 0)
{ {
p2p_port = 3658; p2p_port = SCE_NP_PORT;
} }
if (p2p_port != 3658) if (p2p_port != SCE_NP_PORT)
{ {
sys_net.warning("[P2PS] Attempting to bind a socket to a port != 3658"); sys_net.warning("[P2PS] Attempting to bind a socket to a port != %d", +SCE_NP_PORT);
} }
socket_type real_socket{}; socket_type real_socket{};

View File

@ -1,5 +1,6 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Cell/lv2/sys_sync.h" #include "Emu/Cell/lv2/sys_sync.h"
#include "Emu/Cell/Modules/sceNp.h" // for SCE_NP_PORT
#include "network_context.h" #include "network_context.h"
#include "Emu/system_config.h" #include "Emu/system_config.h"
@ -14,14 +15,14 @@ s32 send_packet_from_p2p_port(const std::vector<u8>& data, const sockaddr_in& ad
auto& nc = g_fxo->get<network_context>(); auto& nc = g_fxo->get<network_context>();
{ {
std::lock_guard list_lock(nc.list_p2p_ports_mutex); std::lock_guard list_lock(nc.list_p2p_ports_mutex);
if (nc.list_p2p_ports.contains(3658)) if (nc.list_p2p_ports.contains(SCE_NP_PORT))
{ {
auto& def_port = nc.list_p2p_ports.at(3658); auto& def_port = nc.list_p2p_ports.at(SCE_NP_PORT);
res = ::sendto(def_port.p2p_socket, reinterpret_cast<const char*>(data.data()), data.size(), 0, reinterpret_cast<const sockaddr*>(&addr), sizeof(sockaddr_in)); res = ::sendto(def_port.p2p_socket, reinterpret_cast<const char*>(data.data()), data.size(), 0, reinterpret_cast<const sockaddr*>(&addr), sizeof(sockaddr_in));
} }
else else
{ {
sys_net.error("send_packet_from_p2p_port: port %d not present", 3658); sys_net.error("send_packet_from_p2p_port: port %d not present", +SCE_NP_PORT);
} }
} }
@ -34,9 +35,9 @@ std::vector<std::vector<u8>> get_rpcn_msgs()
auto& nc = g_fxo->get<network_context>(); auto& nc = g_fxo->get<network_context>();
{ {
std::lock_guard list_lock(nc.list_p2p_ports_mutex); std::lock_guard list_lock(nc.list_p2p_ports_mutex);
if (nc.list_p2p_ports.contains(3658)) if (nc.list_p2p_ports.contains(SCE_NP_PORT))
{ {
auto& def_port = nc.list_p2p_ports.at(3658); auto& def_port = nc.list_p2p_ports.at(SCE_NP_PORT);
{ {
std::lock_guard lock(def_port.s_rpcn_mutex); std::lock_guard lock(def_port.s_rpcn_mutex);
msgs = std::move(def_port.rpcn_msgs); msgs = std::move(def_port.rpcn_msgs);
@ -45,7 +46,7 @@ std::vector<std::vector<u8>> get_rpcn_msgs()
} }
else else
{ {
sys_net.error("get_rpcn_msgs: port %d not present", 3658); sys_net.error("get_rpcn_msgs: port %d not present", +SCE_NP_PORT);
} }
} }
@ -58,9 +59,9 @@ std::vector<std::pair<std::pair<u32, u16>, std::vector<u8>>> get_sign_msgs()
auto& nc = g_fxo->get<network_context>(); auto& nc = g_fxo->get<network_context>();
{ {
std::lock_guard list_lock(nc.list_p2p_ports_mutex); std::lock_guard list_lock(nc.list_p2p_ports_mutex);
if (nc.list_p2p_ports.contains(3658)) if (nc.list_p2p_ports.contains(SCE_NP_PORT))
{ {
auto& def_port = nc.list_p2p_ports.at(3658); auto& def_port = nc.list_p2p_ports.at(SCE_NP_PORT);
{ {
std::lock_guard lock(def_port.s_sign_mutex); std::lock_guard lock(def_port.s_sign_mutex);
msgs = std::move(def_port.sign_msgs); msgs = std::move(def_port.sign_msgs);
@ -69,7 +70,7 @@ std::vector<std::pair<std::pair<u32, u16>, std::vector<u8>>> get_sign_msgs()
} }
else else
{ {
sys_net.error("get_sign_msgs: port %d not present", 3658); sys_net.error("get_sign_msgs: port %d not present", +SCE_NP_PORT);
} }
} }
@ -85,7 +86,7 @@ void need_network()
network_thread::network_thread() noexcept network_thread::network_thread() noexcept
{ {
if (g_cfg.net.psn_status == np_psn_status::psn_rpcn) if (g_cfg.net.psn_status == np_psn_status::psn_rpcn)
list_p2p_ports.emplace(std::piecewise_construct, std::forward_as_tuple(3658), std::forward_as_tuple(3658)); list_p2p_ports.emplace(std::piecewise_construct, std::forward_as_tuple(SCE_NP_PORT), std::forward_as_tuple(SCE_NP_PORT));
} }
network_thread::~network_thread() network_thread::~network_thread()