summaryrefslogtreecommitdiff
path: root/libinstaller/syslxcom.c
diff options
context:
space:
mode:
Diffstat (limited to 'libinstaller/syslxcom.c')
-rw-r--r--libinstaller/syslxcom.c64
1 files changed, 1 insertions, 63 deletions
diff --git a/libinstaller/syslxcom.c b/libinstaller/syslxcom.c
index 57f13cda..efc6474d 100644
--- a/libinstaller/syslxcom.c
+++ b/libinstaller/syslxcom.c
@@ -32,6 +32,7 @@
#include <sys/vfs.h>
#include "linuxioctl.h"
+#include "syslxrw.h"
#include "syslxcom.h"
#include "syslxfs.h"
@@ -47,69 +48,6 @@ int fs_type;
#define SECTOR_SHIFT 9
-static void die(const char *msg)
-{
- fputs(msg, stderr);
- exit(1);
-}
-
-/*
- * 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;
-}
-
/*
* Set and clear file attributes
*/