Пример #1
0
ssize_t
__libc_preadv (int fd, const struct iovec *vector, int count, off_t offset)
{
  if (SINGLE_THREAD_P)
    return do_preadv (fd, vector, count, offset);

  int oldtype = LIBC_CANCEL_ASYNC ();

  ssize_t result = do_preadv (fd, vector, count, offset);

  LIBC_CANCEL_RESET (oldtype);

  return result;
}
Пример #2
0
SYSCALL_DEFINE5(preadv, unsigned long, fd, const struct iovec __user *, vec,
		unsigned long, vlen, unsigned long, pos_l, unsigned long, pos_h)
{
	loff_t pos = pos_from_hilo(pos_h, pos_l);

	return do_preadv(fd, vec, vlen, pos, 0);
}
Пример #3
0
SYSCALL_DEFINE6(preadv2, unsigned long, fd, const struct iovec __user *, vec,
		unsigned long, vlen, unsigned long, pos_l, unsigned long, pos_h,
		int, flags)
{
	loff_t pos = pos_from_hilo(pos_h, pos_l);

	if (pos == -1)
		return do_readv(fd, vec, vlen, flags);

	return do_preadv(fd, vec, vlen, pos, flags);
}
Пример #4
0
static int
do_pread(
	int		fd,
	off64_t		offset,
	ssize_t		count,
	ssize_t		buffer_size)
{
	if (!vectors)
		return pread64(fd, buffer, min(count, buffer_size), offset);

	return do_preadv(fd, offset, count, buffer_size);
}