aboutsummaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/util')
-rw-r--r--src/util/io.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/util/io.h b/src/util/io.h
index 25f360c..ac326c8 100644
--- a/src/util/io.h
+++ b/src/util/io.h
@@ -1,6 +1,7 @@
/* See LICENSE file for copyright and license details. */
#define ewriteall(...) enwriteall(1, __VA_ARGS__)
+#define ereadall(...) enreadall(1, __VA_ARGS__)
int writeall(int fd, void *buf, size_t n);
@@ -10,3 +11,14 @@ enwriteall(int status, int fd, void *buf, size_t n, const char *fname)
if (writeall(fd, buf, n))
enprintf(status, "write %s:", fname);
}
+
+ssize_t readall(int fd, void *buf, size_t n);
+
+static inline size_t
+enreadall(int status, int fd, void *buf, size_t n, const char *fname)
+{
+ ssize_t r = readall(fd, buf, n);
+ if (r < 0)
+ enprintf(status, "read %s:", fname);
+ return (size_t)r;
+}