1 /* 2 * Unix SMB/CIFS implementation. 3 * Samba system utilities 4 * Copyright (C) Andrew Tridgell 1992-1998 5 * Copyright (C) Jeremy Allison 1998-2005 6 * Copyright (C) Timur Bakeyev 2005 7 * Copyright (C) Bjoern Jacke 2006-2007 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 3 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with this program. If not, see <http://www.gnu.org/licenses/>. 21 */ 22 23 #ifndef __LIB_SYS_RW_H__ 24 #define __LIB_SYS_RW_H__ 25 26 #include <unistd.h> 27 28 struct iovec; 29 30 bool sys_valid_io_range(off_t offset, size_t length); 31 ssize_t sys_read(int fd, void *buf, size_t count); 32 void sys_read_v(int fd, void *buf, size_t count); 33 ssize_t sys_write(int fd, const void *buf, size_t count); 34 void sys_write_v(int fd, const void *buf, size_t count); 35 ssize_t sys_writev(int fd, const struct iovec *iov, int iovcnt); 36 ssize_t sys_pread(int fd, void *buf, size_t count, off_t off); 37 ssize_t sys_pread_full(int fd, void *buf, size_t count, off_t off); 38 ssize_t sys_pwrite(int fd, const void *buf, size_t count, off_t off); 39 ssize_t sys_pwrite_full(int fd, const void *buf, size_t count, off_t off); 40 41 #endif 42