- single KERNEL_VERSION(a,b,c) macro in platform.h
[oweals/busybox.git] / include / platform.h
index 699de8f027fec18e3c0648f5985ca8596fa1ee6d..6b3b3f78e582a6ccff54afdbe0857a15674e651c 100644 (file)
 # endif
 #endif
 
-#if 0
-/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
-#ifndef ATTRIBUTE_MALLOC
-# if __GNUC_PREREQ (2,96)
-#  define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
-# else
-#  define ATTRIBUTE_MALLOC
-# endif /* GNUC >= 2.96 */
-#endif /* ATTRIBUTE_MALLOC */
-#endif
-
 #ifndef ATTRIBUTE_UNUSED
-#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+# define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
 #endif /* ATTRIBUTE_UNUSED */
 
 #ifndef ATTRIBUTE_NORETURN
-#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
+# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
 #endif /* ATTRIBUTE_NORETURN */
 
 #ifndef ATTRIBUTE_PACKED
-#define ATTRIBUTE_PACKED __attribute__ ((__packed__))
+# define ATTRIBUTE_PACKED __attribute__ ((__packed__))
 #endif /* ATTRIBUTE_PACKED */
 
 #ifndef ATTRIBUTE_ALIGNED
-#define ATTRIBUTE_ALIGNED(m) __attribute__ ((__aligned__(m)))
+# define ATTRIBUTE_ALIGNED(m) __attribute__ ((__aligned__(m)))
 #endif /* ATTRIBUTE_ALIGNED */
 
 /* -fwhole-program makes all symbols local. The attribute externally_visible
    forces a symbol global.  */
 #ifndef ATTRIBUTE_EXTERNALLY_VISIBLE
 # if __GNUC_PREREQ (4,1)
-# define ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((__externally_visible__))
+#  define ATTRIBUTE_EXTERNALLY_VISIBLE __attribute__ ((__externally_visible__))
 # else
-# define ATTRIBUTE_EXTERNALLY_VISIBLE
+#  define ATTRIBUTE_EXTERNALLY_VISIBLE
 # endif /* GNUC >= 4.1 */
 #endif /* ATTRIBUTE_EXTERNALLY_VISIBLE */
 
 
 /* ---- Endian Detection ------------------------------------ */
 #ifndef __APPLE__
-    #include <byteswap.h>
-    #include <endian.h>
+include <byteswap.h>
+include <endian.h>
 #endif
 
 #ifdef __BIG_ENDIAN__
-       #define BB_BIG_ENDIAN 1
-       #define BB_LITTLE_ENDIAN 0
+define BB_BIG_ENDIAN 1
+define BB_LITTLE_ENDIAN 0
 #elif __BYTE_ORDER == __BIG_ENDIAN
-       #define BB_BIG_ENDIAN 1
-       #define BB_LITTLE_ENDIAN 0
+define BB_BIG_ENDIAN 1
+define BB_LITTLE_ENDIAN 0
 #else
-       #define BB_BIG_ENDIAN 0
-       #define BB_LITTLE_ENDIAN 1
+define BB_BIG_ENDIAN 0
+define BB_LITTLE_ENDIAN 1
 #endif
 
 /* ---- Networking ------------------------------------------ */
 #ifndef __APPLE__
-#include <arpa/inet.h>
+# include <arpa/inet.h>
+#else
+# include <netinet/in.h>
+#endif
+
+/*----- Kernel versioning ------------------------------------*/
+#ifdef __linux__
+#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
 #else
-#include <netinet/in.h>
+#error implement KERNEL_VERSION for your platform
 #endif
 
 /* ---- miscellaneous --------------------------------------- */