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]);