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 23 ssize_t 24 read(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 32 ssize_t 33 read_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 42 ssize_t 43 pread(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