ab7f9b938f
iov_len. (check_iovec_for_write): Ditto. * fhandler.h (fhandler_base::readv): New method. (fhandler_base::writev): Ditto. * fhandler.cc (fhandler_base::readv): New method. (fhandler_base::writev): Ditto. * syscalls.cc (_read): Delegate to readv(2). (_write): Ditto, mutatis mutandi. (readv): Rewrite, based on the old _read code, to use the new fhandler_base::readv method. Improve access mode handling and ensure all calls reach the final strace statement. (writev): Ditto, mutatis mutandi. * 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.
39 lines
700 B
C
39 lines
700 B
C
/* sys/uio.h
|
|
|
|
Copyright 1996, 2000, 2001, 2002 Red Hat, Inc.
|
|
|
|
This file is part of Cygwin.
|
|
|
|
This software is a copyrighted work licensed under the terms of the
|
|
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
|
details. */
|
|
|
|
#ifndef _UIO_H_
|
|
#define _UIO_H_
|
|
|
|
/* For size_t */
|
|
#include <stddef.h>
|
|
/* For ssize_t */
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/cdefs.h>
|
|
|
|
__BEGIN_DECLS
|
|
|
|
/*
|
|
* Define the uio buffers used for writev, readv.
|
|
*/
|
|
|
|
struct iovec
|
|
{
|
|
void *iov_base;
|
|
size_t iov_len;
|
|
};
|
|
|
|
extern ssize_t readv __P ((int filedes, const struct iovec *vector, int count));
|
|
extern ssize_t writev __P ((int filedes, const struct iovec *vector, int count));
|
|
|
|
__END_DECLS
|
|
|
|
#endif /* _UIO_H_ */
|