chiark / gitweb /
Import release 0.1.16
[secnet.git] / secnet.h
index 4b211f5c687a1e17caf8b7d4dc0057ab72e2a5b3..7327350e8ba7a2c1f5852485e4a1d50b8950f67f 100644 (file)
--- a/secnet.h
+++ b/secnet.h
 #include <sys/time.h>
 #include <netinet/in.h>
 
+/*
+ * Macros added by SGT for endianness-independence
+ */
+#define GET_32BIT_MSB_FIRST(cp) \
+  (((unsigned long)(unsigned char)(cp)[0] << 24) | \
+  ((unsigned long)(unsigned char)(cp)[1] << 16) | \
+  ((unsigned long)(unsigned char)(cp)[2] << 8) | \
+  ((unsigned long)(unsigned char)(cp)[3]))
+
+#define PUT_32BIT_MSB_FIRST(cp, value) ( \
+  (cp)[0] = (char)((value) >> 24), \
+  (cp)[1] = (char)((value) >> 16), \
+  (cp)[2] = (char)((value) >> 8), \
+  (cp)[3] = (char)(value) )
+
 typedef char *string_t;
 typedef const char *cstring_t;
 typedef enum {False,True} bool_t;