86 lines
2.0 KiB
Diff
86 lines
2.0 KiB
Diff
|
# HG changeset patch
|
||
|
# Parent 7a4a6935bfa145b24d5183cbf43ce8cc140d9183
|
||
|
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@aepfle.de>
|
||
|
|
||
|
---
|
||
|
tools/xenpaging/file_ops.c | 29 +++++++++--------------------
|
||
|
1 file changed, 9 insertions(+), 20 deletions(-)
|
||
|
|
||
|
Index: xen-4.1.2-testing/tools/xenpaging/file_ops.c
|
||
|
===================================================================
|
||
|
--- xen-4.1.2-testing.orig/tools/xenpaging/file_ops.c
|
||
|
+++ xen-4.1.2-testing/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);
|
||
|
}
|
||
|
|
||
|
|