github.com/gotranspile/cxgo@v0.3.8-0.20240118201721-29871598a6a2/libs/includes/sys/socket.h (about) 1 #include <sys/types.h> 2 #include <arpa/inet.h> 3 4 const _cxgo_go_int AF_INET = 2; /* Internet IP Protocol */ 5 6 const _cxgo_go_int SOCK_STREAM = 1; /* stream (connection) socket */ 7 const _cxgo_go_int SOCK_DGRAM = 2; /* datagram (conn.less) socket */ 8 9 const _cxgo_uint16 SOL_SOCKET = 0xffff; 10 11 const _cxgo_go_int SO_BROADCAST = 0x20; 12 13 #define socklen_t _cxgo_go_int 14 15 struct sockaddr { 16 _cxgo_int16 sa_family; 17 char sa_data[14]; 18 }; 19 20 // TODO: should be elsewhere 21 struct in_addr { 22 _cxgo_uint32 s_addr; 23 }; 24 25 struct sockaddr_in { 26 _cxgo_int16 sin_family; // e.g. AF_INET 27 _cxgo_uint16 sin_port; // e.g. htons(3490) 28 struct in_addr sin_addr; 29 char sin_zero[8]; 30 }; 31 32 _cxgo_go_int accept(_cxgo_go_int, struct sockaddr *restrict, socklen_t *restrict); 33 _cxgo_go_int bind(_cxgo_go_int, const struct sockaddr *, socklen_t); 34 int connect(int, const struct sockaddr *, socklen_t); 35 int getpeername(int, struct sockaddr *restrict, socklen_t *restrict); 36 int getsockname(int, struct sockaddr *restrict, socklen_t *restrict); 37 int getsockopt(int, int, int, void *restrict, socklen_t *restrict); 38 _cxgo_int32 listen(_cxgo_int32, _cxgo_int32); 39 _cxgo_int32 recv(_cxgo_int32, void *, _cxgo_uint32, _cxgo_int32); 40 _cxgo_int32 recvfrom(_cxgo_int32, void *restrict, _cxgo_uint32, _cxgo_int32, struct sockaddr *restrict, socklen_t *restrict); 41 ssize_t recvmsg(int, struct msghdr *, int); 42 _cxgo_int32 send(_cxgo_int32, const void *, _cxgo_int32, _cxgo_int32); 43 ssize_t sendmsg(int, const struct msghdr *, int); 44 _cxgo_int32 sendto(_cxgo_int32, const void *, _cxgo_uint32, _cxgo_int32, const struct sockaddr *, socklen_t); 45 _cxgo_int32 setsockopt(_cxgo_int32, _cxgo_int32, _cxgo_int32, const void *, socklen_t); 46 _cxgo_int32 shutdown(_cxgo_int32, _cxgo_int32); 47 _cxgo_go_int socket(_cxgo_go_int, _cxgo_go_int, _cxgo_go_int); 48 int sockatmark(int); 49 int socketpair(int, int, int, int[2]);