From 743fb001f3d381b14d48f3fdfc9ee648a7c0644c Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Fri, 19 Oct 2018 14:35:16 +0300 Subject: Refactor project, offer uio variant of region-rw --- src/io/io.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/io/io.h (limited to 'src/io/io.h') diff --git a/src/io/io.h b/src/io/io.h new file mode 100644 index 0000000..8a0639b --- /dev/null +++ b/src/io/io.h @@ -0,0 +1,27 @@ +#pragma once + +#include +#include +#include // pid_t + +struct io { + void *backing; + size_t (*read)(const struct io *io, void *ptr, const size_t offset, const size_t size); + size_t (*write)(const struct io *io, const void *ptr, const size_t offset, const size_t size); + void (*cleanup)(struct io *io); + pid_t pid; +}; + +static inline void +io_release(struct io *io) +{ + if (io->cleanup) + io->cleanup(io); + *io = (struct io){0}; +} + +bool +io_uio_init(struct io *io, const pid_t pid); + +bool +io_ptrace_init(struct io *io, const pid_t pid); -- cgit v1.2.3