aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/tools/ipc.h
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2016-07-20 21:24:27 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2016-07-21 11:26:52 +0200
commit0a494a01a97e51cca2f889ad2cd46e413927f979 (patch)
tree534493404f1c0cb4716c3bfac0d3130fe60c5474 /src/tools/ipc.h
parenttools: support horrible freebsd/osx/unix semantics (diff)
downloadwireguard-monolithic-historical-0a494a01a97e51cca2f889ad2cd46e413927f979.tar.xz
wireguard-monolithic-historical-0a494a01a97e51cca2f889ad2cd46e413927f979.zip
tools: rename kernel to ipc
Diffstat (limited to 'src/tools/ipc.h')
-rw-r--r--src/tools/ipc.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/tools/ipc.h b/src/tools/ipc.h
new file mode 100644
index 0000000..b2312ad
--- /dev/null
+++ b/src/tools/ipc.h
@@ -0,0 +1,24 @@
+/* Copyright 2015-2016 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. */
+
+#ifndef IPC_H
+#define IPC_H
+
+#include <stdbool.h>
+
+struct wgdevice;
+
+int ipc_set_device(struct wgdevice *dev);
+int ipc_get_device(struct wgdevice **dev, const char *interface);
+char *ipc_list_devices(void);
+bool ipc_has_device(const char *interface);
+
+
+#define for_each_wgpeer(__dev, __peer, __i) for ((__i) = 0, (__peer) = (typeof(__peer))((uint8_t *)(__dev) + sizeof(struct wgdevice)); \
+ (__i) < (__dev)->num_peers; \
+ ++(__i), (__peer) = (typeof(__peer))((uint8_t *)(__peer) + sizeof(struct wgpeer) + (sizeof(struct wgipmask) * (__peer)->num_ipmasks)))
+
+#define for_each_wgipmask(__peer, __ipmask, __i) for ((__i) = 0, (__ipmask) = (typeof(__ipmask))((uint8_t *)(__peer) + sizeof(struct wgpeer)); \
+ (__i) < (__peer)->num_ipmasks; \
+ ++(__i), (__ipmask) = (typeof(__ipmask))((uint8_t *)(__ipmask) + sizeof(struct wgipmask)))
+
+#endif