2002-08-27 Conrad Scott * fhandler.h (fhandler_base::readv): New method. (fhandler_base::writev): Ditto. (fhandler_socket::read): Remove method. (fhandler_socket::write): Ditto. (fhandler_socket::readv): New method. (fhandler_socket::writev): Ditto. (fhandler_socket::recvmsg): Add new argument. (fhandler_socket::sendmsg): Ditto. * fhandler.cc (fhandler_base::readv): New method. (fhandler_base::writev): Ditto. * fhandler_socket.cc (fhandler_socket::read): Remove method. (fhandler_socket::write): Remove method. (fhandler_socket::readv): New method. (fhandler_socket::writev): New method. (fhandler_socket::recvfrom): Use winsock2 calls if possible. (fhandler_socket::sendto): Ditto. (fhandler_socket::recvmsg): Rewrite to use winsock2 calls and avoid copying the iovec buffers if possible. (fhandler_socket::sendmsg): Ditto. * syscalls.cc (_read): Delegate to readv(2). (_write): Delegate to writev(2). (readv): Rewrite, based on the old _read code, to use the new fhandler_base::readv method. (writev): Ditto, mutatis mutandi. * net.cc (cygwin_recvmsg): Error check the incoming iovec and match new fhandler_socket::recvmsg signature. (cygwin_sendmsg): Ditto, mutatis mutandi. Add missing sigframe. * include/sys/uio.h (struct iovec): Change field types to match SUSv3. * winsup.h (check_iovec_for_read): New function. (check_iovec_for_write): Ditto. * miscfuncs.cc (check_iovec_for_read): Ditto. (check_iovec_for_write): Ditto.