#ifndef HAIKU_BUILD_COMPATIBILITY_H #define HAIKU_BUILD_COMPATIBILITY_H /*! This header is automatically included in all Haiku applications that are built for BeOS. It will make BeOS a bit more Haiku compatible, and slightly more POSIX compatible, too. It is supposed to keep the BeOS compatibility kludges in our source files at a minimum. */ #include #include #ifdef HAIKU_TARGET_PLATFORM_LIBBE_TEST # define _BE_ERRNO_H_ // this is what Dano/Zeta is using # include #endif #include // no addr_t under standard BeOS typedef unsigned long haiku_build_addr_t; #define addr_t haiku_build_addr_t typedef int socklen_t; #ifndef DEFFILEMODE # define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) #endif #ifndef FS_WRITE_FSINFO_NAME # define FS_WRITE_FSINFO_NAME 0x0001 #endif #ifndef B_CURRENT_TEAM # define B_CURRENT_TEAM 0 #endif #ifndef SYMLOOP_MAX # define SYMLOOP_MAX (16) #endif #ifndef B_FIRST_REAL_TIME_PRIORITY # define B_FIRST_REAL_TIME_PRIORITY B_REAL_TIME_DISPLAY_PRIORITY #endif #ifdef __cplusplus extern "C" { #endif extern int32 atomic_set(vint32 *value, int32 newValue); extern int32 atomic_test_and_set(vint32 *value, int32 newValue, int32 testAgainst); extern int32 atomic_get(vint32 *value); extern int64 atomic_set64(vint64 *value, int64 newValue); extern int64 atomic_test_and_set64(vint64 *value, int64 newValue, int64 testAgainst); extern int64 atomic_get64(vint64 *value); extern int64 atomic_add64(vint64 *value, int64 addValue); extern int64 atomic_and64(vint64 *value, int64 andValue); extern int64 atomic_or64(vint64 *value, int64 orValue); extern size_t strnlen(const char *string, size_t count); extern size_t strlcat(char *dest, const char *source, size_t length); extern size_t strlcpy(char *dest, const char *source, size_t length); extern char *strcasestr(const char *string, const char *searchString); extern float roundf(float value); #ifdef __cplusplus } #endif // These are R1-specific extensions #ifndef HAIKU_TARGET_PLATFORM_LIBBE_TEST # define B_TRANSLATION_MAKE_VERSION(major,minor,revision) ((major << 8) | ((minor << 4) & 0xf0) | (revision & 0x0f)) # define B_TRANSLATION_MAJOR_VERSION(v) (v >> 8) # define B_TRANSLATION_MINOR_VERSION(v) ((v >> 4) & 0xf) # define B_TRANSLATION_REVISION_VERSION(v) (v & 0xf) # define B_LARGE_ICON_TYPE 'ICON' # define B_MINI_ICON_TYPE 'MICN' # define B_VECTOR_ICON_TYPE 'VICN' # define B_BITMAP_NO_SERVER_LINK 0 #endif // HAIKU_TARGET_PLATFORM_LIBBE_TEST #if defined(HAIKU_TARGET_PLATFORM_BEOS) || defined(HAIKU_TARGET_PLATFORM_BONE) # define B_REDO 'REDO' # define B_BAD_DATA (B_NOT_ALLOWED + 1) # define B_DOCUMENT_BACKGROUND_COLOR B_PANEL_BACKGROUND_COLOR # define B_DOCUMENT_TEXT_COLOR B_MENU_ITEM_TEXT_COLOR #endif #if !defined(HAIKU_TARGET_PLATFORM_HAIKU) && !defined(HAIKU_TARGET_PLATFORM_LIBBE_TEST) #ifndef B_VECTOR_ICON_TYPE #define B_VECTOR_ICON_TYPE 'VICN' #endif #endif #ifndef INT64_MAX #include #define INT64_MAX LONGLONG_MAX #endif #define B_MPEG_2_AUDIO_LAYER_1 (enum mpeg_id)0x201 #define B_MPEG_2_AUDIO_LAYER_2 (enum mpeg_id)0x202 #define B_MPEG_2_AUDIO_LAYER_3 (enum mpeg_id)0x203 #define B_MPEG_2_VIDEO (enum mpeg_id)0x211 #define B_MPEG_2_5_AUDIO_LAYER_1 (enum mpeg_id)0x301 #define B_MPEG_2_5_AUDIO_LAYER_2 (enum mpeg_id)0x302 #define B_MPEG_2_5_AUDIO_LAYER_3 (enum mpeg_id)0x303 #endif // HAIKU_BUILD_COMPATIBILITY_H