diff libmpdvdkit2/bswap.h @ 15874:483e955893b8

update libdvdread to v0.9.4
author aurel
date Thu, 30 Jun 2005 22:48:26 +0000
parents 3758536dcef3
children 0783dd397f74
line wrap: on
line diff
--- a/libmpdvdkit2/bswap.h	Thu Jun 30 22:41:40 2005 +0000
+++ b/libmpdvdkit2/bswap.h	Thu Jun 30 22:48:26 2005 +0000
@@ -32,6 +32,11 @@
 
 #else 
 
+/* For __FreeBSD_version */
+#if defined(HAVE_SYS_PARAM_H)
+#include <sys/param.h>
+#endif
+
 #if defined(__linux__)
 #include <byteswap.h>
 #define B2N_16(x) x = bswap_16(x)
@@ -50,6 +55,18 @@
 #define B2N_32(x) x = swap32(x)
 #define B2N_64(x) x = swap64(x)
 
+#elif defined(__FreeBSD__) && __FreeBSD_version >= 470000
+#include <sys/endian.h>
+#define B2N_16(x) x = be16toh(x)
+#define B2N_32(x) x = be32toh(x)
+#define B2N_64(x) x = be64toh(x)
+
+#elif defined(__DragonFly__)
+#include <sys/endian.h>
+#define B2N_16(x) x = be16toh(x)
+#define B2N_32(x) x = be32toh(x)
+#define B2N_64(x) x = be64toh(x)
+
 #elif defined(ARCH_X86)
 inline static unsigned short bswap_16(unsigned short x)
 {
@@ -88,17 +105,12 @@
 }
 #define B2N_64(x) x = bswap_64(x)
 
-#elif defined(__DragonFly__)
-#include <sys/endian.h>
-#define B2N_16(x) x = be16toh(x)
-#define B2N_32(x) x = be32toh(x)
-#define B2N_64(x) x = be64toh(x)
-
 /* This is a slow but portable implementation, it has multiple evaluation 
  * problems so beware.
- * FreeBSD and Solaris don't have <byteswap.h> or any other such 
+ * Old FreeBSD's and Solaris don't have <byteswap.h> or any other such 
  * functionality! 
  */
+
 #elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(__CYGWIN__)
 #define B2N_16(x) \
  x = ((((x) & 0xff00) >> 8) | \