long sys_readv(va_list ap) { int fildes = va_arg(ap, int); struct iovec *iov = va_arg(ap, struct iovec *); int iovcnt = va_arg(ap, int); return _sys_readv(fildes, iov, iovcnt); }
ssize_t readv(int d, const struct iovec *iov, int iovcnt) { ssize_t retval; pthread_t self; self = pthread__self(); TESTCANCEL(self); retval = _sys_readv(d, iov, iovcnt); TESTCANCEL(self); return retval; }
long sys_read(va_list ap) { int fildes = va_arg(ap, int); void* buf = va_arg(ap, void*); size_t count = va_arg(ap, size_t); struct iovec iov = { .iov_base = buf, .iov_len = count }; return _sys_readv(fildes, &iov, 1); }