MCPcopy Create free account
hub / github.com/RPCSX/rpcsx / create_socket

Method create_socket

kernel/cellos/src/sys_net/lv2_socket_native.cpp:59–82  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57lv2_socket_native::~lv2_socket_native() noexcept { lv2_socket_native::close(); }
58
59s32 lv2_socket_native::create_socket() {
60 ensure(family == SYS_NET_AF_INET);
61 ensure(type == SYS_NET_SOCK_STREAM || type == SYS_NET_SOCK_DGRAM);
62 ensure(protocol == SYS_NET_IPPROTO_IP || protocol == SYS_NET_IPPROTO_TCP ||
63 protocol == SYS_NET_IPPROTO_UDP);
64
65 const int native_domain = AF_INET;
66
67 const int native_type =
68 type == SYS_NET_SOCK_STREAM ? SOCK_STREAM : SOCK_DGRAM;
69
70 int native_proto = protocol == SYS_NET_IPPROTO_TCP ? IPPROTO_TCP
71 : protocol == SYS_NET_IPPROTO_UDP ? IPPROTO_UDP
72 : IPPROTO_IP;
73
74 auto socket_res = ::socket(native_domain, native_type, native_proto);
75
76 if (socket_res == invalid_socket) {
77 return -get_last_error(false);
78 }
79
80 set_socket(socket_res, family, type, protocol);
81 return CELL_OK;
82}
83
84void lv2_socket_native::set_socket(socket_type native_socket,
85 lv2_socket_family family,

Callers 2

loadMethod · 0.80
sys_net_bnet_socketFunction · 0.80

Calls 3

socketFunction · 0.85
get_last_errorFunction · 0.85
ensureFunction · 0.50

Tested by

no test coverage detected