summaryrefslogtreecommitdiff
path: root/lib/zebra.h
diff options
context:
space:
mode:
authorpaul <paul>2005-11-03 09:00:23 +0000
committerpaul <paul>2005-11-03 09:00:23 +0000
commit34204aac424f8c29317d863d64f1c3bb4d241a50 (patch)
treea7ad861d7b3454dbe96b6e7a31d7dbacc4ad24e3 /lib/zebra.h
parent35a60c2d3c217e3b835821a7f6ea458e2eff44cf (diff)
2005-11-03 Paul Jakma <paul.jakma@sun.com>
* zebra.h: BSD BYTE_ORDER define isn't available everywhere, define if needs be. * checksum.h: new file. checksum.c exports in_cksum, provide a header for it. * checksum.c: (in_cksum) callers shouldn't have to know it uses a u_short internally, change to void *. * Makefile.am: Add checksum.h * command.h: remove bogus trailling slash. * md5.c: (general) Update it for the twentieth century. ANSI declarations are widely supported now.. Don't include system headers, only include zebra.h. Use POSIX types (the alternative is to define u_int64_t in a portable way - rest of Quagga needs same cleanup). Make endian-conditional code be compiler conditional rather than preprocessor conditional, so that breakage gets noticed quicker. * md5.h: POSIX types. Get rid of the odd __P() non-ANSI capable compiler compatibility hack.
Diffstat (limited to 'lib/zebra.h')
-rw-r--r--lib/zebra.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/zebra.h b/lib/zebra.h
index 88f16252..1739d771 100644
--- a/lib/zebra.h
+++ b/lib/zebra.h
@@ -336,6 +336,23 @@ struct in_pktinfo
#define HAVE_IP_HDRINCL_BSD_ORDER
#endif
+/* Define BYTE_ORDER, if not defined. Useful for compiler conditional
+ * code, rather than preprocessor conditional.
+ * Not all the world has this BSD define.
+ */
+#ifndef BYTE_ORDER
+#define BIG_ENDIAN 4321 /* least-significant byte first (vax, pc) */
+#define LITTLE_ENDIAN 1234 /* most-significant byte first (IBM, net) */
+#define PDP_ENDIAN 3412 /* LSB first in word, MSW first in long (pdp) */
+
+#if defined(WORDS_BIGENDIAN)
+#define BYTE_ORDER BIG_ENDIAN
+#else /* !WORDS_BIGENDIAN */
+#define BYTE_ORDER LITTLE_ENDIAN
+#endif /* WORDS_BIGENDIAN */
+
+#endif /* ndef BYTE_ORDER */
+
/* MAX / MIN are not commonly defined, but useful */
#ifndef MAX
#define MAX(a, b) ((a) > (b) ? (a) : (b))