(root)/
glibc-2.38/
include/
sys/
socket.h
       1  #ifndef _SYS_SOCKET_H
       2  #include <socket/sys/socket.h>
       3  
       4  #ifndef _ISOMAC
       5  /* Now define the internal interfaces.  */
       6  
       7  /* Create a new socket of type TYPE in domain DOMAIN, using
       8     protocol PROTOCOL.  If PROTOCOL is zero, one is chosen automatically.
       9     Returns a file descriptor for the new socket, or -1 for errors.  */
      10  extern int __socket (int __domain, int __type,
      11  		     int __protocol);
      12  libc_hidden_proto (__socket)
      13  
      14  /* Create two new sockets, of type TYPE in domain DOMAIN and using
      15     protocol PROTOCOL, which are connected to each other, and put file
      16     descriptors for them in FDS[0] and FDS[1].  If PROTOCOL is zero,
      17     one will be chosen automatically.  Returns 0 on success, -1 for errors.  */
      18  extern int __socketpair (int __domain, int __type, int __protocol,
      19  			 int __fds[2]) attribute_hidden;
      20  
      21  /* Return a socket of any type.  The socket can be used in subsequent
      22     ioctl calls to talk to the kernel.  */
      23  extern int __opensock (void) attribute_hidden;
      24  
      25  /* Put the address of the peer connected to socket FD into *ADDR
      26     (which is *LEN bytes long), and its actual length into *LEN.  */
      27  extern int __getpeername (int __fd, __SOCKADDR_ARG __addr,
      28  			  socklen_t *__len) attribute_hidden;
      29  
      30  /* Send N bytes of BUF to socket FD.  Returns the number sent or -1.  */
      31  extern ssize_t __libc_send (int __fd, const void *__buf, size_t __n,
      32  			    int __flags);
      33  extern ssize_t __send (int __fd, const void *__buf, size_t __n, int __flags);
      34  libc_hidden_proto (__send)
      35  
      36  /* Read N bytes into BUF from socket FD.
      37     Returns the number read or -1 for errors.  */
      38  extern ssize_t __libc_recv (int __fd, void *__buf, size_t __n, int __flags);
      39  
      40  /* Send N bytes of BUF on socket FD to peer at address ADDR (which is
      41     ADDR_LEN bytes long).  Returns the number sent, or -1 for errors.  */
      42  extern ssize_t __libc_sendto (int __fd, const void *__buf, size_t __n,
      43  			      int __flags, __CONST_SOCKADDR_ARG __addr,
      44  			      socklen_t __addr_len);
      45  
      46  /* Read N bytes into BUF through socket FD.
      47     If ADDR is not NULL, fill in *ADDR_LEN bytes of it with the address of
      48     the sender, and store the actual size of the address in *ADDR_LEN.
      49     Returns the number of bytes read or -1 for errors.  */
      50  extern ssize_t __libc_recvfrom (int __fd, void *__restrict __buf, size_t __n,
      51  				int __flags, __SOCKADDR_ARG __addr,
      52  				socklen_t *__restrict __addr_len);
      53  
      54  /* Open a connection on socket FD to peer at ADDR (which LEN bytes long).
      55     For connectionless socket types, just set the default address to send to
      56     and the only address from which to accept transmissions.
      57     Return 0 on success, -1 for errors.  */
      58  extern int __libc_connect (int __fd, __CONST_SOCKADDR_ARG __addr,
      59  			   socklen_t __len);
      60  extern int __connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);
      61  libc_hidden_proto (__connect)
      62  
      63  /* Read N bytes into BUF from socket FD.
      64     Returns the number read or -1 for errors.
      65  
      66     This function is a cancellation point and therefore not marked with
      67     __THROW.  */
      68  extern ssize_t __recv (int __fd, void *__buf, size_t __n, int __flags);
      69  libc_hidden_proto (__recv)
      70  
      71  /* Send N bytes of BUF on socket FD to peer at address ADDR (which is
      72     ADDR_LEN bytes long).  Returns the number sent, or -1 for errors.  */
      73  extern ssize_t __libc_sendto (int __fd, const void *__buf, size_t __n,
      74  			      int __flags, __CONST_SOCKADDR_ARG __addr,
      75  			      socklen_t __addr_len);
      76  extern ssize_t __sendto (int __fd, const void *__buf, size_t __n,
      77  			 int __flags, __CONST_SOCKADDR_ARG __addr,
      78  			 socklen_t __addr_len) attribute_hidden;
      79  
      80  /* Read N bytes into BUF through socket FD.
      81     If ADDR is not NULL, fill in *ADDR_LEN bytes of it with the address of
      82     the sender, and store the actual size of the address in *ADDR_LEN.
      83     Returns the number of bytes read or -1 for errors.  */
      84  extern ssize_t __recvfrom (int __fd, void *__restrict __buf, size_t __n,
      85  			   int __flags, __SOCKADDR_ARG __addr,
      86  			   socklen_t *__restrict __addr_len) attribute_hidden;
      87  
      88  /* Send a message described MESSAGE on socket FD.
      89     Returns the number of bytes sent, or -1 for errors.  */
      90  extern ssize_t __libc_sendmsg (int __fd, const struct msghdr *__message,
      91  			       int __flags);
      92  extern ssize_t __sendmsg (int __fd, const struct msghdr *__message,
      93  			  int __flags) attribute_hidden;
      94  
      95  #ifdef __USE_GNU
      96  extern int __sendmmsg (int __fd, struct mmsghdr *__vmessages,
      97                         unsigned int __vlen, int __flags);
      98  libc_hidden_proto (__sendmmsg)
      99  #endif
     100  
     101  extern ssize_t __libc_recvmsg (int __fd, struct msghdr *__message,
     102  			       int __flags);
     103  extern ssize_t __recvmsg (int __fd, struct msghdr *__message,
     104  			  int __flags) attribute_hidden;
     105  #if __TIMESIZE == 64
     106  # define __libc_recvmsg64 __libc_recvmsg
     107  # define __recvmsg64  __recvmsg
     108  # define __recvmmsg64 __recvmmsg
     109  #else
     110  extern ssize_t __libc_recvmsg64 (int __fd, struct msghdr *__message,
     111  				 int __flags);
     112  extern ssize_t __recvmsg64 (int __fd, struct msghdr *__message,
     113  			    int __flags);
     114  /* Receive a message as described by MESSAGE from socket FD.
     115     Returns the number of bytes read or -1 for errors.  */
     116  extern int __recvmmsg64 (int __fd, struct mmsghdr *vmessages,
     117  			 unsigned int vlen, int flags,
     118  			 struct __timespec64 *timeout);
     119  libc_hidden_proto (__recvmmsg64)
     120  #endif
     121  
     122  /* Set socket FD's option OPTNAME at protocol level LEVEL
     123     to *OPTVAL (which is OPTLEN bytes long).
     124     Returns 0 on success, -1 for errors.  */
     125  extern int __setsockopt (int __fd, int __level, int __optname,
     126  			 const void *__optval,
     127  			 socklen_t __optlen);
     128  libc_hidden_proto (__setsockopt)
     129  
     130  /* Put the current value for socket FD's option OPTNAME at protocol level LEVEL
     131     into OPTVAL (which is *OPTLEN bytes long), and set *OPTLEN to the value's
     132     actual length.  Returns 0 on success, -1 for errors.  */
     133  extern int __getsockopt (int __fd, int __level, int __optname,
     134  			 void *__restrict __optval,
     135  			 socklen_t *__restrict __optlen) attribute_hidden;
     136  
     137  /* Put the local address of FD into *ADDR and its length in *LEN.  */
     138  extern int __getsockname (int __fd, __SOCKADDR_ARG __addr,
     139  			  socklen_t *__restrict __len) attribute_hidden;
     140  
     141  /* Give the socket FD the local address ADDR (which is LEN bytes long).  */
     142  extern int __bind (int __fd, __CONST_SOCKADDR_ARG __addr,
     143  		   socklen_t __len) attribute_hidden;
     144  
     145  /* Prepare to accept connections on socket FD.
     146     N connection requests will be queued before further requests are refused.
     147     Returns 0 on success, -1 for errors.  */
     148  extern int __listen (int __fd, int __n) attribute_hidden;
     149  
     150  /* Await a connection on socket FD.
     151     When a connection arrives, open a new socket to communicate with it,
     152     set *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting
     153     peer and *ADDR_LEN to the address's actual length, and return the
     154     new socket's descriptor, or -1 for errors.  */
     155  extern int __libc_accept (int __fd, __SOCKADDR_ARG __addr,
     156  			  socklen_t *__restrict __addr_len)
     157       __THROW attribute_hidden;
     158  libc_hidden_proto (accept)
     159  extern int __libc_accept4 (int __fd, __SOCKADDR_ARG __addr,
     160  			   socklen_t *__restrict __addr_len, int __flags)
     161       __THROW attribute_hidden;
     162  
     163  /* Return the length of a `sockaddr' structure.  */
     164  #ifdef _HAVE_SA_LEN
     165  # define SA_LEN(_x)      (_x)->sa_len
     166  #else
     167  extern int __libc_sa_len (sa_family_t __af);
     168  libc_hidden_proto (__libc_sa_len)
     169  # define SA_LEN(_x)      __libc_sa_len((_x)->sa_family)
     170  #endif
     171  
     172  libc_hidden_proto (__cmsg_nxthdr)
     173  
     174  #ifndef __ASSUME_TIME64_SYSCALLS
     175  extern void __convert_scm_timestamps (struct msghdr *msg, socklen_t msgsize)
     176       attribute_hidden;
     177  #endif
     178  
     179  #endif
     180  #endif