[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 04 of 15] xenpaging: simplify file_op
# HG changeset patch # User Olaf Hering <olaf@xxxxxxxxx> # Date 1319188795 -7200 # Node ID 71002bff018b95da0db016e18c3a3145cc83fc77 # Parent e51e5e2a835157df92faf3038abc457714d5e096 xenpaging: simplify file_op Use -1 as return value and let caller read errno. Remove const casts from buffer pointers, the page is writeable. Use wrapper for write() which matches the read() prototype. Remove unused stdarg.h inclusion. Remove unused macro. Signed-off-by: Olaf Hering <olaf@xxxxxxxxx> diff -r e51e5e2a8351 -r 71002bff018b tools/xenpaging/file_ops.c --- a/tools/xenpaging/file_ops.c +++ b/tools/xenpaging/file_ops.c @@ -21,55 +21,44 @@ #include <unistd.h> -#include <stdarg.h> #include <xc_private.h> - -#define page_offset(_pfn) (((off_t)(_pfn)) << PAGE_SHIFT) - - static int file_op(int fd, void *page, int i, - ssize_t (*fn)(int, const void *, size_t)) + ssize_t (*fn)(int, void *, size_t)) { off_t seek_ret; - int total; + int total = 0; int bytes; - int ret; seek_ret = lseek(fd, i << PAGE_SHIFT, SEEK_SET); + if ( seek_ret == (off_t)-1 ) + return -1; - total = 0; while ( total < PAGE_SIZE ) { bytes = fn(fd, page + total, PAGE_SIZE - total); if ( bytes <= 0 ) - { - ret = -errno; - goto err; - } + return -1; total += bytes; } return 0; - - err: - return ret; } -static ssize_t my_read(int fd, const void *buf, size_t count) +static ssize_t my_write(int fd, void *buf, size_t count) { - return read(fd, (void *)buf, count); + return write(fd, buf, count); } int read_page(int fd, void *page, int i) { - return file_op(fd, page, i, &my_read); + return file_op(fd, page, i, &read); } int write_page(int fd, void *page, int i) { - return file_op(fd, page, i, &write); + return file_op(fd, page, i, &my_write); } _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |