X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fplatform.h;h=6b3b3f78e582a6ccff54afdbe0857a15674e651c;hb=e2e56c7c4129de7d20df42e8239fd304c81ef29b;hp=68c7abbc6bdfd3ff2812248021225176a8385eaa;hpb=7bfa88f315d71c7f7a1b76fcec3886c7506aca24;p=oweals%2Fbusybox.git diff --git a/include/platform.h b/include/platform.h index 68c7abbc6..6b3b3f78e 100644 --- a/include/platform.h +++ b/include/platform.h @@ -32,40 +32,29 @@ # 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__)) -#endif /* ATTRIBUTE_NORETURN */ +# 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 */ @@ -78,4 +67,41 @@ # endif #endif +/* ---- Endian Detection ------------------------------------ */ +#ifndef __APPLE__ +# include +# include +#endif + +#ifdef __BIG_ENDIAN__ +# 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 +#else +# define BB_BIG_ENDIAN 0 +# define BB_LITTLE_ENDIAN 1 +#endif + +/* ---- Networking ------------------------------------------ */ +#ifndef __APPLE__ +# include +#else +# include +#endif + +/*----- Kernel versioning ------------------------------------*/ +#ifdef __linux__ +#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) +#else +#error implement KERNEL_VERSION for your platform +#endif + +/* ---- miscellaneous --------------------------------------- */ +/* NLS stuff */ +/* THIS SHOULD BE CLEANED OUT OF THE TREE ENTIRELY */ +#define _(Text) Text +#define N_(Text) (Text) + #endif /* platform.h */