summaryrefslogtreecommitdiffstats
path: root/lib/ipv4.h
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1998-04-23 16:01:15 +0200
committerMartin Mares <mj@ucw.cz>1998-04-23 16:01:15 +0200
commitc40e05a0dffa33a8724e56121a2b6dcdfa9183e0 (patch)
tree4c4322c6900ae4788006d72195028ac71ecb11c1 /lib/ipv4.h
parent481f69854a788bd2bea5c6938e038ec6e21c491b (diff)
downloadbird-c40e05a0dffa33a8724e56121a2b6dcdfa9183e0.tar
bird-c40e05a0dffa33a8724e56121a2b6dcdfa9183e0.zip
Added IP address manipulation macros, interface declarations and logging.
Diffstat (limited to 'lib/ipv4.h')
-rw-r--r--lib/ipv4.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/ipv4.h b/lib/ipv4.h
new file mode 100644
index 0000000..e5c1e8c
--- /dev/null
+++ b/lib/ipv4.h
@@ -0,0 +1,35 @@
+/*
+ * BIRD -- IP Addresses et Cetera for IPv4
+ *
+ * (c) 1998 Martin Mares <mj@ucw.cz>
+ *
+ * Can be freely distributed and used under the terms of the GNU GPL.
+ */
+
+#ifndef _BIRD_IPV4_H_
+#define _BIRD_IPV4_H_
+
+#include <netinet/in.h>
+
+typedef struct ipv4_addr {
+ u32 addr;
+} ip_addr;
+
+#define _I(x) (x).addr
+#define _MI(x) ((struct ip_addr) { x })
+
+#define IPA_NONE(_MI(0))
+
+#define ipa_equal(x,y) (_I(x) == _I(y))
+#define ipa_and(x,y) _MI(_I(x) & _I(y))
+#define ipa_or(x,y) _MI(_I(x) | _I(y))
+#define ipa_not(x) _MI(~_I(x))
+#define ipa_mkmask(x) _MI(ipv4_mkmask(x))
+#define ipa_mklen(x) ipv4_mklen(_I(x))
+
+unsigned ipv4_mklen(u32);
+u32 ipv4_mkmask(unsigned);
+
+/* ??? htonl and ntohl ??? */
+
+#endif