Provided by: liburing-dev_2.2-2_amd64 bug

NAME

       io_uring_prep_socket - prepare a socket creation request

SYNOPSIS

       #include <sys/socket.h>
       #include <liburing.h>

       void io_uring_prep_socket(struct io_uring_sqe *sqe,
                                 int domain,
                                 int type,
                                 int protocol,
                                 unsigned int flags);

       void io_uring_prep_socket_direct(struct io_uring_sqe *sqe,
                                        int domain,
                                        int type,
                                        int protocol,
                                        unsigned int file_index,
                                        unsigned int flags);

DESCRIPTION

       The  io_uring_prep_socket(3)  function  prepares a socket creation request. The submission
       queue entry sqe is setup to use the communication domain defined by  domain  and  use  the
       communication  type  defined by type and the protocol set by protocol.  The flags argument
       are currently unused.

       The io_uring_prep_socket_direct(3) works just like io_uring_prep_socket(3), except it maps
       the  socket  to  a  direct  descriptor  rather  than  return a normal file descriptor. The
       file_index argument should be set to the slot that should be  used  for  this  socket,  or
       IORING_FILE_INDEX_ALLOC if io_uring should allocate a free one.

       If  the  direct  variant  is used, the application must first have registered a file table
       using io_uring_register_files(3) of the appropriate size. Once registered, a direct socket
       request  may  use  any  entry  in  that  table,  as  long  as it is within the size of the
       registered table.  If a specified entry already contains a file, the file  will  first  be
       removed  from  the  table  and  closed.  It's  consistent with the behavior of updating an
       existing file with io_uring_register_files_update(3).

       For  a  direct  descriptor  socket  request,  the  file_index  argument  can  be  set   to
       IORING_FILE_INDEX_ALLOC,  In  this  case  a free entry in io_uring file table will be used
       automatically and the file index will be  returned  as  CQE  res.   -ENFILE  is  otherwise
       returned if there is no free entries in the io_uring file table.

       These functions prepare an async socket(2) request. See that man page for details.

RETURN VALUE

       None

ERRORS

       The  CQE  res field will contain the result of the operation. See the related man page for
       details on possible values. Note that where synchronous system calls  will  return  -1  on
       failure  and  set  errno to the actual error value, io_uring never uses errno.  Instead it
       returns the negated errno directly in the CQE res field.

SEE ALSO

       io_uring_get_sqe(3), io_uring_submit(3), socket(2)