#pragma once namespace vm { using namespace ps3; } // must die #undef s_addr namespace sys_net { // only for reference, no need to use it using in_addr_t = u32; using in_port_t = u16; using sa_family_t = u8; using socklen_t = u32; struct fd_set { be_t fds_bits[32]; }; struct hostent { vm::bptr h_name; vm::bpptr h_aliases; be_t h_addrtype; be_t h_length; vm::bpptr h_addr_list; }; struct in_addr { be_t s_addr; }; struct iovec { be_t zero1; vm::bptr iov_base; be_t zero2; be_t iov_len; }; struct ip_mreq { be_t imr_multiaddr; be_t imr_interface; }; struct msghdr { be_t zero1; vm::bptr msg_name; be_t msg_namelen; be_t pad1; be_t zero2; vm::bptr msg_iov; be_t msg_iovlen; be_t pad2; be_t zero3; vm::bptr msg_control; be_t msg_controllen; be_t msg_flags; }; struct pollfd { be_t fd; be_t events; be_t revents; }; struct sockaddr { u8 sa_len; u8 sa_family; char sa_data[14]; }; struct sockaddr_dl { u8 sdl_len; u8 sdl_family; be_t sdl_index; u8 sdl_type; u8 sdl_nlen; u8 sdl_alen; u8 sdl_slen; char sdl_data[12]; }; struct sockaddr_in { u8 sin_len; u8 sin_family; be_t sin_port; be_t sin_addr; char sin_zero[8]; }; struct sockaddr_in_p2p { u8 sin_len; u8 sin_family; be_t sin_port; be_t sin_addr; be_t sin_vport; char sin_zero[6]; }; struct timeval { be_t tv_sec; be_t tv_usec; }; } struct sys_net_initialize_parameter_t { vm::bptr memory; be_t memory_size; be_t flags; }; // PS3 libnet socket struct struct net_socket_t { std::intptr_t native_handle; };