#pragma once typedef u32 SceNetSocklen_t; struct SceNetInAddr { le_t s_addr; }; struct SceNetSockaddrIn { u8 sin_len; u8 sin_family; le_t sin_port; SceNetInAddr sin_addr; le_t sin_vport; char sin_zero[6]; }; struct SceNetDnsInfo { SceNetInAddr dns_addr[2]; }; struct SceNetSockaddr { u8 sa_len; u8 sa_family; char sa_data[14]; }; struct SceNetEpollDataExt { le_t id; le_t data; }; union SceNetEpollData { vm::lptr ptr; le_t fd; le_t _u32; le_t _u64; SceNetEpollDataExt ext; }; struct SceNetEpollSystemData { le_t system[4]; }; struct SceNetEpollEvent { le_t events; le_t reserved; SceNetEpollSystemData system; SceNetEpollData data; }; struct SceNetEtherAddr { u8 data[6]; }; typedef u32 SceNetIdMask; struct SceNetFdSet { SceNetIdMask bits[32]; }; struct SceNetIpMreq { SceNetInAddr imr_multiaddr; SceNetInAddr imr_interface; }; struct SceNetInitParam { vm::lptr memory; le_t size; le_t flags; }; struct SceNetEmulationData { le_t drop_rate; le_t drop_duration; le_t pass_duration; le_t delay_time; le_t delay_jitter; le_t order_rate; le_t order_delay_time; le_t duplication_rate; le_t bps_limit; le_t lower_size_limit; le_t upper_size_limit; le_t system_policy_pattern; le_t game_policy_pattern; le_t policy_flags[64]; u8 reserved[64]; }; struct SceNetEmulationParam { le_t version; le_t option_number; le_t current_version; le_t result; le_t flags; le_t reserved1; SceNetEmulationData send; SceNetEmulationData recv; le_t seed; u8 reserved[44]; }; using SceNetResolverFunctionAllocate = vm::ptr(u32 size, s32 rid, vm::cptr name, vm::ptr user); using SceNetResolverFunctionFree = void(vm::ptr ptr, s32 rid, vm::cptr name, vm::ptr user); struct SceNetResolverParam { vm::lptr allocate; vm::lptr free; vm::lptr user; }; struct SceNetLinger { le_t l_onoff; le_t l_linger; }; struct SceNetIovec { vm::lptr iov_base; le_t iov_len; }; struct SceNetMsghdr { vm::lptr msg_name; le_t msg_namelen; vm::lptr msg_iov; le_t msg_iovlen; vm::lptr msg_control; le_t msg_controllen; le_t msg_flags; }; struct SceNetSockInfo { char name[32]; le_t pid; le_t s; s8 socket_type; s8 policy; le_t reserved16; le_t recv_queue_length; le_t send_queue_length; SceNetInAddr local_adr; SceNetInAddr remote_adr; le_t local_port; le_t remote_port; le_t local_vport; le_t remote_vport; le_t state; le_t flags; le_t reserved[8]; }; struct SceNetStatisticsInfo { le_t kernel_mem_free_size; le_t kernel_mem_free_min; le_t packet_count; le_t packet_qos_count; le_t libnet_mem_free_size; le_t libnet_mem_free_min; };