Commit 5f53dc21 authored by Cyrill Gorcunov's avatar Cyrill Gorcunov

util: Change read_safe_eof and introduce objzero and memzero

Should be more convenient to use
Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@gmail.com>
parent b001849a
...@@ -93,17 +93,19 @@ extern void printk(const char *format, ...); ...@@ -93,17 +93,19 @@ extern void printk(const char *format, ...);
#define read_ptr_safe(fd, ptr, err) \ #define read_ptr_safe(fd, ptr, err) \
jerr(read(fd, ptr, sizeof(*(ptr))) != sizeof(*(ptr)), err) jerr(read(fd, ptr, sizeof(*(ptr))) != sizeof(*(ptr)), err)
#define read_safe_eof(fd, ptr, size, rc, err, eof) \ #define read_safe_eof(fd, ptr, size, err) \
do { \ ({ \
rc = read(fd, ptr, (size)); \ size_t rc__ = read(fd, ptr, (size)); \
if (!rc) \ if (rc__ && rc__ != (size)) \
goto eof; \ goto err; \
if (rc != (size)) \ rc__; \
goto err; \ })
} while (0)
#define read_ptr_safe_eof(fd, ptr, err) \
read_safe_eof(fd, ptr, sizeof(*(ptr)), err)
#define read_ptr_safe_eof(fd, ptr, rc, err, eof) \ #define objzero(obj_ptr) memset(obj_ptr, 0, sizeof(*(obj_ptr)))
read_safe_eof(fd, ptr, sizeof(*(ptr)), rc, err, eof) #define memzero(p, size) memset(p, 0, size)
int ptrace_peek_area(pid_t pid, void *dst, void *addr, long bytes); int ptrace_peek_area(pid_t pid, void *dst, void *addr, long bytes);
int ptrace_poke_area(pid_t pid, void *src, void *addr, long bytes); int ptrace_poke_area(pid_t pid, void *src, void *addr, long bytes);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment