1/*
2 * Copyright 2001, Manuel J. Petit. All rights reserved.
3 * Distributed under the terms of the NewOS License.
4 */
5
6/*
7 * Copyright 2002-2007, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
8 * Distributed under the terms of the MIT License.
9 */
10
11
12#include <unistd.h>
13
14#include <errno.h>
15#include <pthread.h>
16
17#include <syscall_utils.h>
18
19#include <errno_private.h>
20#include <syscalls.h>
21
22
23ssize_t
24read(int fd, void* buffer, size_t bufferSize)
25{
26	ssize_t status = _kern_read(fd, -1, buffer, bufferSize);
27
28	RETURN_AND_SET_ERRNO_TEST_CANCEL(status);
29}
30
31
32ssize_t
33read_pos(int fd, off_t pos, void* buffer, size_t bufferSize)
34{
35	if (pos < 0)
36		RETURN_AND_SET_ERRNO_TEST_CANCEL(B_BAD_VALUE);
37
38	RETURN_AND_SET_ERRNO_TEST_CANCEL(_kern_read(fd, pos, buffer, bufferSize));
39}
40
41
42ssize_t
43pread(int fd, void* buffer, size_t bufferSize, off_t pos)
44{
45	if (pos < 0)
46		RETURN_AND_SET_ERRNO_TEST_CANCEL(B_BAD_VALUE);
47
48	RETURN_AND_SET_ERRNO_TEST_CANCEL(_kern_read(fd, pos, buffer, bufferSize));
49}
50