[syslinux] [PATCH] mtools: Remove local xpread/xpwrite, use ones from syslxcom

Nicolas Cornu nicolac76 at yahoo.fr
Tue Nov 10 05:51:04 PST 2015


From: Nicolas Cornu <ncornu at aldebaran.com>

---
 mtools/Makefile   |  1 +
 mtools/syslinux.c | 59 +------------------------------------------------------
 2 files changed, 2 insertions(+), 58 deletions(-)

diff --git a/mtools/Makefile b/mtools/Makefile
index 0d0b1b2..c980420 100755
--- a/mtools/Makefile
+++ b/mtools/Makefile
@@ -9,6 +9,7 @@ SRCS     = syslinux.c \
 	   ../libinstaller/fs.c \
 	   ../libinstaller/syslxmod.c \
 	   ../libinstaller/syslxopt.c \
+	   ../libinstaller/syslxcom.c \
 	   ../libinstaller/setadv.c \
 	   ../libinstaller/bootsect_bin.c \
 	   ../libinstaller/ldlinux_bin.c \
diff --git a/mtools/syslinux.c b/mtools/syslinux.c
index 5924430..3686be0 100755
--- a/mtools/syslinux.c
+++ b/mtools/syslinux.c
@@ -42,8 +42,8 @@
 #include "setadv.h"
 #include "syslxopt.h"
 #include "syslxfs.h"
+#include "syslxcom.h"
 
-char *program;			/* Name of program */
 pid_t mypid;
 
 void __attribute__ ((noreturn)) die(const char *msg)
@@ -59,63 +59,6 @@ void __attribute__ ((noreturn)) die_err(const char *msg)
 }
 
 /*
- * read/write wrapper functions
- */
-ssize_t xpread(int fd, void *buf, size_t count, off_t offset)
-{
-    char *bufp = (char *)buf;
-    ssize_t rv;
-    ssize_t done = 0;
-
-    while (count) {
-	rv = pread(fd, bufp, count, offset);
-	if (rv == 0) {
-	    die("short read");
-	} else if (rv == -1) {
-	    if (errno == EINTR) {
-		continue;
-	    } else {
-		die(strerror(errno));
-	    }
-	} else {
-	    bufp += rv;
-	    offset += rv;
-	    done += rv;
-	    count -= rv;
-	}
-    }
-
-    return done;
-}
-
-ssize_t xpwrite(int fd, const void *buf, size_t count, off_t offset)
-{
-    const char *bufp = (const char *)buf;
-    ssize_t rv;
-    ssize_t done = 0;
-
-    while (count) {
-	rv = pwrite(fd, bufp, count, offset);
-	if (rv == 0) {
-	    die("short write");
-	} else if (rv == -1) {
-	    if (errno == EINTR) {
-		continue;
-	    } else {
-		die(strerror(errno));
-	    }
-	} else {
-	    bufp += rv;
-	    offset += rv;
-	    done += rv;
-	    count -= rv;
-	}
-    }
-
-    return done;
-}
-
-/*
  * Version of the read function suitable for libfat
  */
 int libfat_xpread(intptr_t pp, void *buf, size_t secsize,
-- 
2.6.2



More information about the Syslinux mailing list