added 4 changesets to branch 'refs/remotes/mmadia-github/separate-build-environment' old head: f947591f46d646809e6c43f20bb687b4e2ece43c new head: d29f97fb6348d8925ebf61e17e33d6df3d37e644 ---------------------------------------------------------------------------- fef2095: Applied Ingo's changes to Errors.h from patch on #8730. 417f96e: Applied Ingo's changes to SupportDefs.h from patch on #8730. 3ae8e7e: Applied Ingo's changes to atomic.cpp from patch on #8730. d29f97f: Applied Ingo's changes to config_build/types.h from patch on #8730. [ Matt Madia <mattmadia@xxxxxxxxx> ] ---------------------------------------------------------------------------- 4 files changed, 749 insertions(+), 587 deletions(-) headers/build/config_build/types.h | 189 ++++--- headers/build/os/support/Errors.h | 810 +++++++++++----------------- headers/build/os/support/SupportDefs.h | 266 ++++++++- src/build/libroot/atomic.cpp | 71 +-- ############################################################################ Commit: fef2095a4f06ec260e4a6e79b55495dd7a958e8a Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Tue Jul 31 20:46:52 2012 UTC Ticket: https://dev.haiku-os.org/ticket/8730 Applied Ingo's changes to Errors.h from patch on #8730. ---------------------------------------------------------------------------- diff --git a/headers/build/os/support/Errors.h b/headers/build/os/support/Errors.h index 750a660..dbab6d1 100644 --- a/headers/build/os/support/Errors.h +++ b/headers/build/os/support/Errors.h @@ -1,499 +1,339 @@ -/****************************************************************************** -/ -/ File: Errors.h -/ -/ Description: Error code constants. -/ -/ Copyright 1993-98, Be Incorporated -/ -******************************************************************************/ +/* + * Copyright 2007-2012, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef _HAIKU_BUILD_ERRORS_H +#define _HAIKU_BUILD_ERRORS_H -#ifndef _ERRORS_H -#define _ERRORS_H - -#include <errno.h> #include <limits.h> -/*-------------------------------------------------------------*/ -/*----- Error baselines ---------------------------------------*/ - -#define B_GENERAL_ERROR_BASE INT_MIN -#define B_OS_ERROR_BASE B_GENERAL_ERROR_BASE + 0x1000 -#define B_APP_ERROR_BASE B_GENERAL_ERROR_BASE + 0x2000 -#define B_INTERFACE_ERROR_BASE B_GENERAL_ERROR_BASE + 0x3000 -#define B_MEDIA_ERROR_BASE B_GENERAL_ERROR_BASE + 0x4000 /* - 0x41ff */ -#define B_TRANSLATION_ERROR_BASE B_GENERAL_ERROR_BASE + 0x4800 /* - 0x48ff */ -#define B_MIDI_ERROR_BASE B_GENERAL_ERROR_BASE + 0x5000 -#define B_STORAGE_ERROR_BASE B_GENERAL_ERROR_BASE + 0x6000 -#define B_POSIX_ERROR_BASE B_GENERAL_ERROR_BASE + 0x7000 -#define B_MAIL_ERROR_BASE B_GENERAL_ERROR_BASE + 0x8000 -#define B_PRINT_ERROR_BASE B_GENERAL_ERROR_BASE + 0x9000 -#define B_DEVICE_ERROR_BASE B_GENERAL_ERROR_BASE + 0xa000 - -/*--- Developer-defined errors start at (B_ERRORS_END+1)----*/ - -#define B_ERRORS_END (B_GENERAL_ERROR_BASE + 0xffff) - - -/*-------------------------------------------------------------*/ -/*----- General Errors ----------------------------------------*/ -enum { - B_NO_MEMORY = B_GENERAL_ERROR_BASE, - B_IO_ERROR, - B_PERMISSION_DENIED, - B_BAD_INDEX, - B_BAD_TYPE, - B_BAD_VALUE, - B_MISMATCHED_VALUES, - B_NAME_NOT_FOUND, - B_NAME_IN_USE, - B_TIMED_OUT, - B_INTERRUPTED, - B_WOULD_BLOCK, - B_CANCELED, - B_NO_INIT, - B_BUSY, - B_NOT_ALLOWED, - B_BAD_DATA, - - B_ERROR = -1, - B_OK = 0, - B_NO_ERROR = 0 -}; - -/*-------------------------------------------------------------*/ -/*----- Kernel Kit Errors -------------------------------------*/ -enum { - B_BAD_SEM_ID = B_OS_ERROR_BASE, - B_NO_MORE_SEMS, - - B_BAD_THREAD_ID = B_OS_ERROR_BASE + 0x100, - B_NO_MORE_THREADS, - B_BAD_THREAD_STATE, - B_BAD_TEAM_ID, - B_NO_MORE_TEAMS, - - B_BAD_PORT_ID = B_OS_ERROR_BASE + 0x200, - B_NO_MORE_PORTS, - - B_BAD_IMAGE_ID = B_OS_ERROR_BASE + 0x300, - B_BAD_ADDRESS, - B_NOT_AN_EXECUTABLE, - B_MISSING_LIBRARY, - B_MISSING_SYMBOL, - - B_DEBUGGER_ALREADY_INSTALLED = B_OS_ERROR_BASE + 0x400 -}; - - -/*-------------------------------------------------------------*/ -/*----- Application Kit Errors --------------------------------*/ -enum -{ - B_BAD_REPLY = B_APP_ERROR_BASE, - B_DUPLICATE_REPLY, - B_MESSAGE_TO_SELF, - B_BAD_HANDLER, - B_ALREADY_RUNNING, - B_LAUNCH_FAILED, - B_AMBIGUOUS_APP_LAUNCH, - B_UNKNOWN_MIME_TYPE, - B_BAD_SCRIPT_SYNTAX, - B_LAUNCH_FAILED_NO_RESOLVE_LINK, - B_LAUNCH_FAILED_EXECUTABLE, - B_LAUNCH_FAILED_APP_NOT_FOUND, - B_LAUNCH_FAILED_APP_IN_TRASH, - B_LAUNCH_FAILED_NO_PREFERRED_APP, - B_LAUNCH_FAILED_FILES_APP_NOT_FOUND, - B_BAD_MIME_SNIFFER_RULE, - B_NOT_A_MESSAGE, - B_SHUTDOWN_CANCELLED, - B_SHUTTING_DOWN -}; - - -/*-------------------------------------------------------------*/ -/*----- Storage Kit/File System Errors ------------------------*/ -enum { - B_FILE_ERROR = B_STORAGE_ERROR_BASE, - B_FILE_NOT_FOUND, /* discouraged; use B_ENTRY_NOT_FOUND in new code*/ - B_FILE_EXISTS, - B_ENTRY_NOT_FOUND, - B_NAME_TOO_LONG, - B_NOT_A_DIRECTORY, - B_DIRECTORY_NOT_EMPTY, - B_DEVICE_FULL, - B_READ_ONLY_DEVICE, - B_IS_A_DIRECTORY, - B_NO_MORE_FDS, - B_CROSS_DEVICE_LINK, - B_LINK_LIMIT, - B_BUSTED_PIPE, - B_UNSUPPORTED, - B_PARTITION_TOO_SMALL -}; - - -/*-------------------------------------------------------------*/ -/*----- POSIX Errors ------------------------------------------*/ -#define HAIKU_E2BIG (B_POSIX_ERROR_BASE + 1) -#define HAIKU_ECHILD (B_POSIX_ERROR_BASE + 2) -#define HAIKU_EDEADLK (B_POSIX_ERROR_BASE + 3) -#define HAIKU_EFBIG (B_POSIX_ERROR_BASE + 4) -#define HAIKU_EMLINK (B_POSIX_ERROR_BASE + 5) -#define HAIKU_ENFILE (B_POSIX_ERROR_BASE + 6) -#define HAIKU_ENODEV (B_POSIX_ERROR_BASE + 7) -#define HAIKU_ENOLCK (B_POSIX_ERROR_BASE + 8) -#define HAIKU_ENOSYS (B_POSIX_ERROR_BASE + 9) -#define HAIKU_ENOTTY (B_POSIX_ERROR_BASE + 10) -#define HAIKU_ENXIO (B_POSIX_ERROR_BASE + 11) -#define HAIKU_ESPIPE (B_POSIX_ERROR_BASE + 12) -#define HAIKU_ESRCH (B_POSIX_ERROR_BASE + 13) -#define HAIKU_EFPOS (B_POSIX_ERROR_BASE + 14) -#define HAIKU_ESIGPARM (B_POSIX_ERROR_BASE + 15) -#define HAIKU_EDOM (B_POSIX_ERROR_BASE + 16) -#define HAIKU_ERANGE (B_POSIX_ERROR_BASE + 17) -#define HAIKU_EPROTOTYPE (B_POSIX_ERROR_BASE + 18) -#define HAIKU_EPROTONOSUPPORT (B_POSIX_ERROR_BASE + 19) -#define HAIKU_EPFNOSUPPORT (B_POSIX_ERROR_BASE + 20) -#define HAIKU_EAFNOSUPPORT (B_POSIX_ERROR_BASE + 21) -#define HAIKU_EADDRINUSE (B_POSIX_ERROR_BASE + 22) -#define HAIKU_EADDRNOTAVAIL (B_POSIX_ERROR_BASE + 23) -#define HAIKU_ENETDOWN (B_POSIX_ERROR_BASE + 24) -#define HAIKU_ENETUNREACH (B_POSIX_ERROR_BASE + 25) -#define HAIKU_ENETRESET (B_POSIX_ERROR_BASE + 26) -#define HAIKU_ECONNABORTED (B_POSIX_ERROR_BASE + 27) -#define HAIKU_ECONNRESET (B_POSIX_ERROR_BASE + 28) -#define HAIKU_EISCONN (B_POSIX_ERROR_BASE + 29) -#define HAIKU_ENOTCONN (B_POSIX_ERROR_BASE + 30) -#define HAIKU_ESHUTDOWN (B_POSIX_ERROR_BASE + 31) -#define HAIKU_ECONNREFUSED (B_POSIX_ERROR_BASE + 32) -#define HAIKU_EHOSTUNREACH (B_POSIX_ERROR_BASE + 33) -#define HAIKU_ENOPROTOOPT (B_POSIX_ERROR_BASE + 34) -#define HAIKU_ENOBUFS (B_POSIX_ERROR_BASE + 35) -#define HAIKU_EINPROGRESS (B_POSIX_ERROR_BASE + 36) -#define HAIKU_EALREADY (B_POSIX_ERROR_BASE + 37) -#define HAIKU_EILSEQ (B_POSIX_ERROR_BASE + 38) -#define HAIKU_ENOMSG (B_POSIX_ERROR_BASE + 39) -#define HAIKU_ESTALE (B_POSIX_ERROR_BASE + 40) -#define HAIKU_EOVERFLOW (B_POSIX_ERROR_BASE + 41) -#define HAIKU_EMSGSIZE (B_POSIX_ERROR_BASE + 42) -#define HAIKU_EOPNOTSUPP (B_POSIX_ERROR_BASE + 43) -#define HAIKU_ENOTSOCK (B_POSIX_ERROR_BASE + 44) -#define HAIKU_EHOSTDOWN (B_POSIX_ERROR_BASE + 45) -#define HAIKU_EBADMSG (B_POSIX_ERROR_BASE + 46) -#define HAIKU_ECANCELED (B_POSIX_ERROR_BASE + 47) -#define HAIKU_EDESTADDRREQ (B_POSIX_ERROR_BASE + 48) -#define HAIKU_EDQUOT (B_POSIX_ERROR_BASE + 49) -#define HAIKU_EIDRM (B_POSIX_ERROR_BASE + 50) -#define HAIKU_EMULTIHOP (B_POSIX_ERROR_BASE + 51) -#define HAIKU_ENODATA (B_POSIX_ERROR_BASE + 52) -#define HAIKU_ENOLINK (B_POSIX_ERROR_BASE + 53) -#define HAIKU_ENOSR (B_POSIX_ERROR_BASE + 54) -#define HAIKU_ENOSTR (B_POSIX_ERROR_BASE + 55) -#define HAIKU_ENOTSUP (B_POSIX_ERROR_BASE + 56) -#define HAIKU_EPROTO (B_POSIX_ERROR_BASE + 57) -#define HAIKU_ETIME (B_POSIX_ERROR_BASE + 58) -#define HAIKU_ETXTBSY (B_POSIX_ERROR_BASE + 59) -#define HAIKU_ENOATTR (B_POSIX_ERROR_BASE + 60) - - -/*---- POSIX errors that can be mapped to BeOS error codes ----*/ -#define HAIKU_ENOMEM B_NO_MEMORY -#define HAIKU_EACCES B_PERMISSION_DENIED -#define HAIKU_EINTR B_INTERRUPTED -#define HAIKU_EIO B_IO_ERROR -#define HAIKU_EBUSY B_BUSY -#define HAIKU_EFAULT B_BAD_ADDRESS -#define HAIKU_ETIMEDOUT B_TIMED_OUT -#define HAIKU_EAGAIN B_WOULD_BLOCK /* SysV compatibility */ -#define HAIKU_EWOULDBLOCK B_WOULD_BLOCK /* BSD compatibility */ -#define HAIKU_EBADF B_FILE_ERROR -#define HAIKU_EEXIST B_FILE_EXISTS -#define HAIKU_EINVAL B_BAD_VALUE -#define HAIKU_ENAMETOOLONG B_NAME_TOO_LONG -#define HAIKU_ENOENT B_ENTRY_NOT_FOUND -#define HAIKU_EPERM B_NOT_ALLOWED -#define HAIKU_ENOTDIR B_NOT_A_DIRECTORY -#define HAIKU_EISDIR B_IS_A_DIRECTORY -#define HAIKU_ENOTEMPTY B_DIRECTORY_NOT_EMPTY -#define HAIKU_ENOSPC B_DEVICE_FULL -#define HAIKU_EROFS B_READ_ONLY_DEVICE -#define HAIKU_EMFILE B_NO_MORE_FDS -#define HAIKU_EXDEV B_CROSS_DEVICE_LINK -#define HAIKU_ELOOP B_LINK_LIMIT -#define HAIKU_ENOEXEC B_NOT_AN_EXECUTABLE -#define HAIKU_EPIPE B_BUSTED_PIPE - -#ifndef BUILDING_HAIKU_ERROR_MAPPER - #undef E2BIG - #undef ECHILD - #undef EDEADLK - #undef EFBIG - #undef EMLINK - #undef ENFILE - #undef ENODEV - #undef ENOLCK - #undef ENOSYS - #undef ENOTTY - #undef ENXIO - #undef ESPIPE - #undef ESRCH - #undef EFPOS - #undef ESIGPARM - #undef EDOM - #undef ERANGE - #undef EPROTOTYPE - #undef EPROTONOSUPPORT - #undef EPFNOSUPPORT - #undef EAFNOSUPPORT - #undef EADDRINUSE - #undef EADDRNOTAVAIL - #undef ENETDOWN - #undef ENETUNREACH - #undef ENETRESET - #undef ECONNABORTED - #undef ECONNRESET - #undef EISCONN - #undef ENOTCONN - #undef ESHUTDOWN - #undef ECONNREFUSED - #undef EHOSTUNREACH - #undef ENOPROTOOPT - #undef ENOBUFS - #undef EINPROGRESS - #undef EALREADY - #undef EILSEQ - #undef ENOMSG - #undef ESTALE - #undef EOVERFLOW - #undef EMSGSIZE - #undef EOPNOTSUPP - #undef ENOTSOCK - #undef EHOSTDOWN - #undef EBADMSG - #undef ECANCELED - #undef EDESTADDRREQ - #undef EDQUOT - #undef EIDRM - #undef EMULTIHOP - #undef ENODATA - #undef ENOLINK - #undef ENOSR - #undef ENOSTR - #undef ENOTSUP - #undef EPROTO - #undef ETIME - #undef ETXTBSY - #undef ENOMEM - #undef EACCES - #undef EINTR - #undef EIO - #undef EBUSY - #undef EFAULT - #undef ETIMEDOUT - #undef EAGAIN - #undef EWOULDBLOCK - #undef EBADF - #undef EEXIST - #undef EINVAL - #undef ENAMETOOLONG - #undef ENOENT - #undef EPERM - #undef ENOTDIR - #undef EISDIR - #undef ENOTEMPTY - #undef ENOSPC - #undef EROFS - #undef EMFILE - #undef EXDEV - #undef ELOOP - #undef ENOEXEC - #undef EPIPE - #undef ENOATTR - - #define E2BIG HAIKU_E2BIG - #define ECHILD HAIKU_ECHILD - #define EDEADLK HAIKU_EDEADLK - #define EFBIG HAIKU_EFBIG - #define EMLINK HAIKU_EMLINK - #define ENFILE HAIKU_ENFILE - #define ENODEV HAIKU_ENODEV - #define ENOLCK HAIKU_ENOLCK - #define ENOSYS HAIKU_ENOSYS - #define ENOTTY HAIKU_ENOTTY - #define ENXIO HAIKU_ENXIO - #define ESPIPE HAIKU_ESPIPE - #define ESRCH HAIKU_ESRCH - #define EFPOS HAIKU_EFPOS - #define ESIGPARM HAIKU_ESIGPARM - #define EDOM HAIKU_EDOM - #define ERANGE HAIKU_ERANGE - #define EPROTOTYPE HAIKU_EPROTOTYPE - #define EPROTONOSUPPORT HAIKU_EPROTONOSUPPORT - #define EPFNOSUPPORT HAIKU_EPFNOSUPPORT - #define EAFNOSUPPORT HAIKU_EAFNOSUPPORT - #define EADDRINUSE HAIKU_EADDRINUSE - #define EADDRNOTAVAIL HAIKU_EADDRNOTAVAIL - #define ENETDOWN HAIKU_ENETDOWN - #define ENETUNREACH HAIKU_ENETUNREACH - #define ENETRESET HAIKU_ENETRESET - #define ECONNABORTED HAIKU_ECONNABORTED - #define ECONNRESET HAIKU_ECONNRESET - #define EISCONN HAIKU_EISCONN - #define ENOTCONN HAIKU_ENOTCONN - #define ESHUTDOWN HAIKU_ESHUTDOWN - #define ECONNREFUSED HAIKU_ECONNREFUSED - #define EHOSTUNREACH HAIKU_EHOSTUNREACH - #define ENOPROTOOPT HAIKU_ENOPROTOOPT - #define ENOBUFS HAIKU_ENOBUFS - #define EINPROGRESS HAIKU_EINPROGRESS - #define EALREADY HAIKU_EALREADY - #define EILSEQ HAIKU_EILSEQ - #define ENOMSG HAIKU_ENOMSG - #define ESTALE HAIKU_ESTALE - #define EOVERFLOW HAIKU_EOVERFLOW - #define EMSGSIZE HAIKU_EMSGSIZE - #define EOPNOTSUPP HAIKU_EOPNOTSUPP - #define ENOTSOCK HAIKU_ENOTSOCK - #define EHOSTDOWN HAIKU_EHOSTDOWN - #define EBADMSG HAIKU_EBADMSG - #define ECANCELED HAIKU_ECANCELED - #define EDESTADDRREQ HAIKU_EDESTADDRREQ - #define EDQUOT HAIKU_EDQUOT - #define EIDRM HAIKU_EIDRM - #define EMULTIHOP HAIKU_EMULTIHOP - #define ENODATA HAIKU_ENODATA - #define ENOLINK HAIKU_ENOLINK - #define ENOSR HAIKU_ENOSR - #define ENOSTR HAIKU_ENOSTR - #define ENOTSUP HAIKU_ENOTSUP - #define EPROTO HAIKU_EPROTO - #define ETIME HAIKU_ETIME - #define ETXTBSY HAIKU_ETXTBSY - #define ENOMEM HAIKU_ENOMEM - #define EACCES HAIKU_EACCES - #define EINTR HAIKU_EINTR - #define EIO HAIKU_EIO - #define EBUSY HAIKU_EBUSY - #define EFAULT HAIKU_EFAULT - #define ETIMEDOUT HAIKU_ETIMEDOUT - #define EAGAIN HAIKU_EAGAIN - #define EWOULDBLOCK HAIKU_EWOULDBLOCK - #define EBADF HAIKU_EBADF - #define EEXIST HAIKU_EEXIST - #define EINVAL HAIKU_EINVAL - #define ENAMETOOLONG HAIKU_ENAMETOOLONG - #define ENOENT HAIKU_ENOENT - #define EPERM HAIKU_EPERM - #define ENOTDIR HAIKU_ENOTDIR - #define EISDIR HAIKU_EISDIR - #define ENOTEMPTY HAIKU_ENOTEMPTY - #define ENOSPC HAIKU_ENOSPC - #define EROFS HAIKU_EROFS - #define EMFILE HAIKU_EMFILE - #define EXDEV HAIKU_EXDEV - #define ELOOP HAIKU_ELOOP - #define ENOEXEC HAIKU_ENOEXEC - #define EPIPE HAIKU_EPIPE - #define ENOATTR HAIKU_ENOATTR - - #undef errno - #define errno (*_haiku_build_errno()) - -#endif // ! BUILDING_HAIKU_ERROR_MAPPER + +/* Error baselines */ +#define HAIKU_BUILD_B_GENERAL_ERROR_BASE HAIKU_BUILD_INT_MIN +#define HAIKU_BUILD_B_OS_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0x1000) +#define HAIKU_BUILD_B_APP_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0x2000) +#define HAIKU_BUILD_B_INTERFACE_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0x3000) +#define HAIKU_BUILD_B_MEDIA_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0x4000) + /* - 0x41ff */ +#define HAIKU_BUILD_B_TRANSLATION_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0x4800) + /* - 0x48ff */ +#define HAIKU_BUILD_B_MIDI_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0x5000) +#define HAIKU_BUILD_B_STORAGE_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0x6000) +#define HAIKU_BUILD_B_POSIX_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0x7000) +#define HAIKU_BUILD_B_MAIL_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0x8000) +#define HAIKU_BUILD_B_PRINT_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0x9000) +#define HAIKU_BUILD_B_DEVICE_ERROR_BASE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0xa000) + +/* Developer-defined errors start at (B_ERRORS_END+1) */ +#define HAIKU_BUILD_B_ERRORS_END (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0xffff) + +/* General Errors */ +#define HAIKU_BUILD_B_NO_MEMORY (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 0) +#define HAIKU_BUILD_B_IO_ERROR (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 1) +#define HAIKU_BUILD_B_PERMISSION_DENIED (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 2) +#define HAIKU_BUILD_B_BAD_INDEX (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 3) +#define HAIKU_BUILD_B_BAD_TYPE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 4) +#define HAIKU_BUILD_B_BAD_VALUE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 5) +#define HAIKU_BUILD_B_MISMATCHED_VALUES (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 6) +#define HAIKU_BUILD_B_NAME_NOT_FOUND (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 7) +#define HAIKU_BUILD_B_NAME_IN_USE (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 8) +#define HAIKU_BUILD_B_TIMED_OUT (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 9) +#define HAIKU_BUILD_B_INTERRUPTED (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 10) +#define HAIKU_BUILD_B_WOULD_BLOCK (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 11) +#define HAIKU_BUILD_B_CANCELED (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 12) +#define HAIKU_BUILD_B_NO_INIT (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 13) +#define HAIKU_BUILD_B_NOT_INITIALIZED (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 13) +#define HAIKU_BUILD_B_BUSY (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 14) +#define HAIKU_BUILD_B_NOT_ALLOWED (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 15) +#define HAIKU_BUILD_B_BAD_DATA (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 16) +#define HAIKU_BUILD_B_DONT_DO_THAT (HAIKU_BUILD_B_GENERAL_ERROR_BASE + 17) + +#define HAIKU_BUILD_B_ERROR (-1) +#define HAIKU_BUILD_B_OK ((int)0) +#define HAIKU_BUILD_B_NO_ERROR ((int)0) + +/* Kernel Kit Errors */ +#define HAIKU_BUILD_B_BAD_SEM_ID (HAIKU_BUILD_B_OS_ERROR_BASE + 0) +#define HAIKU_BUILD_B_NO_MORE_SEMS (HAIKU_BUILD_B_OS_ERROR_BASE + 1) + +#define HAIKU_BUILD_B_BAD_THREAD_ID (HAIKU_BUILD_B_OS_ERROR_BASE + 0x100) +#define HAIKU_BUILD_B_NO_MORE_THREADS (HAIKU_BUILD_B_OS_ERROR_BASE + 0x101) +#define HAIKU_BUILD_B_BAD_THREAD_STATE (HAIKU_BUILD_B_OS_ERROR_BASE + 0x102) +#define HAIKU_BUILD_B_BAD_TEAM_ID (HAIKU_BUILD_B_OS_ERROR_BASE + 0x103) +#define HAIKU_BUILD_B_NO_MORE_TEAMS (HAIKU_BUILD_B_OS_ERROR_BASE + 0x104) + +#define HAIKU_BUILD_B_BAD_PORT_ID (HAIKU_BUILD_B_OS_ERROR_BASE + 0x200) +#define HAIKU_BUILD_B_NO_MORE_PORTS (HAIKU_BUILD_B_OS_ERROR_BASE + 0x201) + +#define HAIKU_BUILD_B_BAD_IMAGE_ID (HAIKU_BUILD_B_OS_ERROR_BASE + 0x300) +#define HAIKU_BUILD_B_BAD_ADDRESS (HAIKU_BUILD_B_OS_ERROR_BASE + 0x301) +#define HAIKU_BUILD_B_NOT_AN_EXECUTABLE (HAIKU_BUILD_B_OS_ERROR_BASE + 0x302) +#define HAIKU_BUILD_B_MISSING_LIBRARY (HAIKU_BUILD_B_OS_ERROR_BASE + 0x303) +#define HAIKU_BUILD_B_MISSING_SYMBOL (HAIKU_BUILD_B_OS_ERROR_BASE + 0x304) + +#define HAIKU_BUILD_B_DEBUGGER_ALREADY_INSTALLED (HAIKU_BUILD_B_OS_ERROR_BASE + 0x400) + +/* Application Kit Errors */ +#define HAIKU_BUILD_B_BAD_REPLY (HAIKU_BUILD_B_APP_ERROR_BASE + 0) +#define HAIKU_BUILD_B_DUPLICATE_REPLY (HAIKU_BUILD_B_APP_ERROR_BASE + 1) +#define HAIKU_BUILD_B_MESSAGE_TO_SELF (HAIKU_BUILD_B_APP_ERROR_BASE + 2) +#define HAIKU_BUILD_B_BAD_HANDLER (HAIKU_BUILD_B_APP_ERROR_BASE + 3) +#define HAIKU_BUILD_B_ALREADY_RUNNING (HAIKU_BUILD_B_APP_ERROR_BASE + 4) +#define HAIKU_BUILD_B_LAUNCH_FAILED (HAIKU_BUILD_B_APP_ERROR_BASE + 5) +#define HAIKU_BUILD_B_AMBIGUOUS_APP_LAUNCH (HAIKU_BUILD_B_APP_ERROR_BASE + 6) +#define HAIKU_BUILD_B_UNKNOWN_MIME_TYPE (HAIKU_BUILD_B_APP_ERROR_BASE + 7) +#define HAIKU_BUILD_B_BAD_SCRIPT_SYNTAX (HAIKU_BUILD_B_APP_ERROR_BASE + 8) +#define HAIKU_BUILD_B_LAUNCH_FAILED_NO_RESOLVE_LINK (HAIKU_BUILD_B_APP_ERROR_BASE + 9) +#define HAIKU_BUILD_B_LAUNCH_FAILED_EXECUTABLE (HAIKU_BUILD_B_APP_ERROR_BASE + 10) +#define HAIKU_BUILD_B_LAUNCH_FAILED_APP_NOT_FOUND (HAIKU_BUILD_B_APP_ERROR_BASE + 11) +#define HAIKU_BUILD_B_LAUNCH_FAILED_APP_IN_TRASH (HAIKU_BUILD_B_APP_ERROR_BASE + 12) +#define HAIKU_BUILD_B_LAUNCH_FAILED_NO_PREFERRED_APP (HAIKU_BUILD_B_APP_ERROR_BASE + 13) +#define HAIKU_BUILD_B_LAUNCH_FAILED_FILES_APP_NOT_FOUND (HAIKU_BUILD_B_APP_ERROR_BASE + 14) +#define HAIKU_BUILD_B_BAD_MIME_SNIFFER_RULE (HAIKU_BUILD_B_APP_ERROR_BASE + 15) +#define HAIKU_BUILD_B_NOT_A_MESSAGE (HAIKU_BUILD_B_APP_ERROR_BASE + 16) +#define HAIKU_BUILD_B_SHUTDOWN_CANCELLED (HAIKU_BUILD_B_APP_ERROR_BASE + 17) +#define HAIKU_BUILD_B_SHUTTING_DOWN (HAIKU_BUILD_B_APP_ERROR_BASE + 18) + +/* Storage Kit/File System Errors */ +#define HAIKU_BUILD_B_FILE_ERROR (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 0) +#define HAIKU_BUILD_B_FILE_NOT_FOUND (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 1) + /* deprecated: use B_ENTRY_NOT_FOUND instead */ +#define HAIKU_BUILD_B_FILE_EXISTS (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 2) +#define HAIKU_BUILD_B_ENTRY_NOT_FOUND (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 3) +#define HAIKU_BUILD_B_NAME_TOO_LONG (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 4) +#define HAIKU_BUILD_B_NOT_A_DIRECTORY (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 5) +#define HAIKU_BUILD_B_DIRECTORY_NOT_EMPTY (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 6) +#define HAIKU_BUILD_B_DEVICE_FULL (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 7) +#define HAIKU_BUILD_B_READ_ONLY_DEVICE (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 8) +#define HAIKU_BUILD_B_IS_A_DIRECTORY (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 9) +#define HAIKU_BUILD_B_NO_MORE_FDS (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 10) +#define HAIKU_BUILD_B_CROSS_DEVICE_LINK (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 11) +#define HAIKU_BUILD_B_LINK_LIMIT (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 12) +#define HAIKU_BUILD_B_BUSTED_PIPE (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 13) +#define HAIKU_BUILD_B_UNSUPPORTED (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 14) +#define HAIKU_BUILD_B_PARTITION_TOO_SMALL (HAIKU_BUILD_B_STORAGE_ERROR_BASE + 15) + +/* POSIX Errors */ +#ifdef HAIKU_BUILD_B_USE_POSITIVE_POSIX_ERRORS +# define HAIKU_BUILD_B_TO_POSIX_ERROR(error) (-(error)) +# define HAIKU_BUILD_B_FROM_POSIX_ERROR(error) (-(error)) +#else +# define HAIKU_BUILD_B_TO_POSIX_ERROR(error) (error) +# define HAIKU_BUILD_B_FROM_POSIX_ERROR(error) (error) +#endif + +#define HAIKU_BUILD_B_POSIX_ENOMEM HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 0) +#define HAIKU_BUILD_E2BIG HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 1) +#define HAIKU_BUILD_ECHILD HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 2) +#define HAIKU_BUILD_EDEADLK HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 3) +#define HAIKU_BUILD_EFBIG HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 4) +#define HAIKU_BUILD_EMLINK HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 5) +#define HAIKU_BUILD_ENFILE HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 6) +#define HAIKU_BUILD_ENODEV HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 7) +#define HAIKU_BUILD_ENOLCK HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 8) +#define HAIKU_BUILD_ENOSYS HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 9) +#define HAIKU_BUILD_ENOTTY HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 10) +#define HAIKU_BUILD_ENXIO HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 11) +#define HAIKU_BUILD_ESPIPE HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 12) +#define HAIKU_BUILD_ESRCH HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 13) +#define HAIKU_BUILD_EFPOS HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 14) +#define HAIKU_BUILD_ESIGPARM HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 15) +#define HAIKU_BUILD_EDOM HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 16) +#define HAIKU_BUILD_ERANGE HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 17) +#define HAIKU_BUILD_EPROTOTYPE HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 18) +#define HAIKU_BUILD_EPROTONOSUPPORT HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 19) +#define HAIKU_BUILD_EPFNOSUPPORT HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 20) +#define HAIKU_BUILD_EAFNOSUPPORT HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 21) +#define HAIKU_BUILD_EADDRINUSE HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 22) +#define HAIKU_BUILD_EADDRNOTAVAIL HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 23) +#define HAIKU_BUILD_ENETDOWN HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 24) +#define HAIKU_BUILD_ENETUNREACH HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 25) +#define HAIKU_BUILD_ENETRESET HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 26) +#define HAIKU_BUILD_ECONNABORTED HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 27) +#define HAIKU_BUILD_ECONNRESET HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 28) +#define HAIKU_BUILD_EISCONN HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 29) +#define HAIKU_BUILD_ENOTCONN HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 30) +#define HAIKU_BUILD_ESHUTDOWN HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 31) +#define HAIKU_BUILD_ECONNREFUSED HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 32) +#define HAIKU_BUILD_EHOSTUNREACH HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 33) +#define HAIKU_BUILD_ENOPROTOOPT HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 34) +#define HAIKU_BUILD_ENOBUFS HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 35) +#define HAIKU_BUILD_EINPROGRESS HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 36) +#define HAIKU_BUILD_EALREADY HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 37) +#define HAIKU_BUILD_EILSEQ HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 38) +#define HAIKU_BUILD_ENOMSG HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 39) +#define HAIKU_BUILD_ESTALE HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 40) +#define HAIKU_BUILD_EOVERFLOW HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 41) +#define HAIKU_BUILD_EMSGSIZE HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 42) +#define HAIKU_BUILD_EOPNOTSUPP HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 43) +#define HAIKU_BUILD_ENOTSOCK HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 44) +#define HAIKU_BUILD_EHOSTDOWN HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 45) +#define HAIKU_BUILD_EBADMSG HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 46) +#define HAIKU_BUILD_ECANCELED HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 47) +#define HAIKU_BUILD_EDESTADDRREQ HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 48) +#define HAIKU_BUILD_EDQUOT HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 49) +#define HAIKU_BUILD_EIDRM HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 50) +#define HAIKU_BUILD_EMULTIHOP HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 51) +#define HAIKU_BUILD_ENODATA HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 52) +#define HAIKU_BUILD_ENOLINK HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 53) +#define HAIKU_BUILD_ENOSR HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 54) +#define HAIKU_BUILD_ENOSTR HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 55) +#define HAIKU_BUILD_ENOTSUP HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 56) +#define HAIKU_BUILD_EPROTO HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 57) +#define HAIKU_BUILD_ETIME HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 58) +#define HAIKU_BUILD_ETXTBSY HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 59) +#define HAIKU_BUILD_ENOATTR HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_POSIX_ERROR_BASE + 60) + +/* B_NO_MEMORY (0x80000000) can't be negated, so it needs special handling */ +#ifdef HAIKU_BUILD_B_USE_POSITIVE_POSIX_ERRORS +# define HAIKU_BUILD_ENOMEM HAIKU_BUILD_B_POSIX_ENOMEM +#else +# define HAIKU_BUILD_ENOMEM HAIKU_BUILD_B_NO_MEMORY +#endif + +/* POSIX errors that can be mapped to BeOS error codes */ +#define HAIKU_BUILD_EACCES HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_PERMISSION_DENIED) +#define HAIKU_BUILD_EINTR HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_INTERRUPTED) +#define HAIKU_BUILD_EIO HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_IO_ERROR) +#define HAIKU_BUILD_EBUSY HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_BUSY) +#define HAIKU_BUILD_EFAULT HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_BAD_ADDRESS) +#define HAIKU_BUILD_ETIMEDOUT HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_TIMED_OUT) +#define HAIKU_BUILD_EAGAIN HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_WOULD_BLOCK) /* SysV compatibility */ +#define HAIKU_BUILD_EWOULDBLOCK HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_WOULD_BLOCK) /* BSD compatibility */ +#define HAIKU_BUILD_EBADF HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_FILE_ERROR) +#define HAIKU_BUILD_EEXIST HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_FILE_EXISTS) +#define HAIKU_BUILD_EINVAL HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_BAD_VALUE) +#define HAIKU_BUILD_ENAMETOOLONG HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_NAME_TOO_LONG) +#define HAIKU_BUILD_ENOENT HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_ENTRY_NOT_FOUND) +#define HAIKU_BUILD_EPERM HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_NOT_ALLOWED) +#define HAIKU_BUILD_ENOTDIR HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_NOT_A_DIRECTORY) +#define HAIKU_BUILD_EISDIR HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_IS_A_DIRECTORY) +#define HAIKU_BUILD_ENOTEMPTY HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_DIRECTORY_NOT_EMPTY) +#define HAIKU_BUILD_ENOSPC HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_DEVICE_FULL) +#define HAIKU_BUILD_EROFS HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_READ_ONLY_DEVICE) +#define HAIKU_BUILD_EMFILE HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_NO_MORE_FDS) +#define HAIKU_BUILD_EXDEV HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_CROSS_DEVICE_LINK) +#define HAIKU_BUILD_ELOOP HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_LINK_LIMIT) +#define HAIKU_BUILD_ENOEXEC HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_NOT_AN_EXECUTABLE) +#define HAIKU_BUILD_EPIPE HAIKU_BUILD_B_TO_POSIX_ERROR(HAIKU_BUILD_B_BUSTED_PIPE) + +/* new error codes that can be mapped to POSIX errors */ +#define HAIKU_BUILD_B_BUFFER_OVERFLOW HAIKU_BUILD_B_FROM_POSIX_ERROR(HAIKU_BUILD_EOVERFLOW) +#define HAIKU_BUILD_B_TOO_MANY_ARGS HAIKU_BUILD_B_FROM_POSIX_ERROR(HAIKU_BUILD_E2BIG) +#define HAIKU_BUILD_B_FILE_TOO_LARGE HAIKU_BUILD_B_FROM_POSIX_ERROR(HAIKU_BUILD_EFBIG) +#define HAIKU_BUILD_B_RESULT_NOT_REPRESENTABLE HAIKU_BUILD_B_FROM_POSIX_ERROR(HAIKU_BUILD_ERANGE) +#define HAIKU_BUILD_B_DEVICE_NOT_FOUND HAIKU_BUILD_B_FROM_POSIX_ERROR(HAIKU_BUILD_ENODEV) +#define HAIKU_BUILD_B_NOT_SUPPORTED HAIKU_BUILD_B_FROM_POSIX_ERROR(HAIKU_BUILD_EOPNOTSUPP) + +/* Media Kit Errors */ +#define HAIKU_BUILD_B_STREAM_NOT_FOUND (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 0) +#define HAIKU_BUILD_B_SERVER_NOT_FOUND (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 1) +#define HAIKU_BUILD_B_RESOURCE_NOT_FOUND (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 2) +#define HAIKU_BUILD_B_RESOURCE_UNAVAILABLE (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 3) +#define HAIKU_BUILD_B_BAD_SUBSCRIBER (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 4) +#define HAIKU_BUILD_B_SUBSCRIBER_NOT_ENTERED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 5) +#define HAIKU_BUILD_B_BUFFER_NOT_AVAILABLE (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 6) +#define HAIKU_BUILD_B_LAST_BUFFER_ERROR (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 7) + +#define HAIKU_BUILD_B_MEDIA_SYSTEM_FAILURE (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 100) +#define HAIKU_BUILD_B_MEDIA_BAD_NODE (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 101) +#define HAIKU_BUILD_B_MEDIA_NODE_BUSY (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 102) +#define HAIKU_BUILD_B_MEDIA_BAD_FORMAT (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 103) +#define HAIKU_BUILD_B_MEDIA_BAD_BUFFER (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 104) +#define HAIKU_BUILD_B_MEDIA_TOO_MANY_NODES (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 105) +#define HAIKU_BUILD_B_MEDIA_TOO_MANY_BUFFERS (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 106) +#define HAIKU_BUILD_B_MEDIA_NODE_ALREADY_EXISTS (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 107) +#define HAIKU_BUILD_B_MEDIA_BUFFER_ALREADY_EXISTS (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 108) +#define HAIKU_BUILD_B_MEDIA_CANNOT_SEEK (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 109) +#define HAIKU_BUILD_B_MEDIA_CANNOT_CHANGE_RUN_MODE (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 110) +#define HAIKU_BUILD_B_MEDIA_APP_ALREADY_REGISTERED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 111) +#define HAIKU_BUILD_B_MEDIA_APP_NOT_REGISTERED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 112) +#define HAIKU_BUILD_B_MEDIA_CANNOT_RECLAIM_BUFFERS (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 113) +#define HAIKU_BUILD_B_MEDIA_BUFFERS_NOT_RECLAIMED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 114) +#define HAIKU_BUILD_B_MEDIA_TIME_SOURCE_STOPPED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 115) +#define HAIKU_BUILD_B_MEDIA_TIME_SOURCE_BUSY (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 116) +#define HAIKU_BUILD_B_MEDIA_BAD_SOURCE (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 117) +#define HAIKU_BUILD_B_MEDIA_BAD_DESTINATION (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 118) +#define HAIKU_BUILD_B_MEDIA_ALREADY_CONNECTED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 119) +#define HAIKU_BUILD_B_MEDIA_NOT_CONNECTED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 120) +#define HAIKU_BUILD_B_MEDIA_BAD_CLIP_FORMAT (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 121) +#define HAIKU_BUILD_B_MEDIA_ADDON_FAILED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 122) +#define HAIKU_BUILD_B_MEDIA_ADDON_DISABLED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 123) +#define HAIKU_BUILD_B_MEDIA_CHANGE_IN_PROGRESS (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 124) +#define HAIKU_BUILD_B_MEDIA_STALE_CHANGE_COUNT (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 125) +#define HAIKU_BUILD_B_MEDIA_ADDON_RESTRICTED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 126) +#define HAIKU_BUILD_B_MEDIA_NO_HANDLER (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 127) +#define HAIKU_BUILD_B_MEDIA_DUPLICATE_FORMAT (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 128) +#define HAIKU_BUILD_B_MEDIA_REALTIME_DISABLED (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 129) +#define HAIKU_BUILD_B_MEDIA_REALTIME_UNAVAILABLE (HAIKU_BUILD_B_MEDIA_ERROR_BASE + 130) + +/* Mail Kit Errors */ +#define HAIKU_BUILD_B_MAIL_NO_DAEMON (HAIKU_BUILD_B_MAIL_ERROR_BASE + 0) +#define HAIKU_BUILD_B_MAIL_UNKNOWN_USER (HAIKU_BUILD_B_MAIL_ERROR_BASE + 1) +#define HAIKU_BUILD_B_MAIL_WRONG_PASSWORD (HAIKU_BUILD_B_MAIL_ERROR_BASE + 2) +#define HAIKU_BUILD_B_MAIL_UNKNOWN_HOST (HAIKU_BUILD_B_MAIL_ERROR_BASE + 3) +#define HAIKU_BUILD_B_MAIL_ACCESS_ERROR (HAIKU_BUILD_B_MAIL_ERROR_BASE + 4) +#define HAIKU_BUILD_B_MAIL_UNKNOWN_FIELD (HAIKU_BUILD_B_MAIL_ERROR_BASE + 5) +#define HAIKU_BUILD_B_MAIL_NO_RECIPIENT (HAIKU_BUILD_B_MAIL_ERROR_BASE + 6) +#define HAIKU_BUILD_B_MAIL_INVALID_MAIL (HAIKU_BUILD_B_MAIL_ERROR_BASE + 7) + +/* Printing Errors */ +#define HAIKU_BUILD_B_NO_PRINT_SERVER (HAIKU_BUILD_B_PRINT_ERROR_BASE + 0) + +/* Device Kit Errors */ +#define HAIKU_BUILD_B_DEV_INVALID_IOCTL (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 0) +#define HAIKU_BUILD_B_DEV_NO_MEMORY (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 1) +#define HAIKU_BUILD_B_DEV_BAD_DRIVE_NUM (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 2) +#define HAIKU_BUILD_B_DEV_NO_MEDIA (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 3) +#define HAIKU_BUILD_B_DEV_UNREADABLE (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 4) +#define HAIKU_BUILD_B_DEV_FORMAT_ERROR (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 5) +#define HAIKU_BUILD_B_DEV_TIMEOUT (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 6) +#define HAIKU_BUILD_B_DEV_RECALIBRATE_ERROR (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 7) +#define HAIKU_BUILD_B_DEV_SEEK_ERROR (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 8) +#define HAIKU_BUILD_B_DEV_ID_ERROR (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 9) +#define HAIKU_BUILD_B_DEV_READ_ERROR (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 10) +#define HAIKU_BUILD_B_DEV_WRITE_ERROR (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 11) +#define HAIKU_BUILD_B_DEV_NOT_READY (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 12) +#define HAIKU_BUILD_B_DEV_MEDIA_CHANGED (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 13) +#define HAIKU_BUILD_B_DEV_MEDIA_CHANGE_REQUESTED (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 14) +#define HAIKU_BUILD_B_DEV_RESOURCE_CONFLICT (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 15) +#define HAIKU_BUILD_B_DEV_CONFIGURATION_ERROR (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 16) +#define HAIKU_BUILD_B_DEV_DISABLED_BY_USER (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 17) +#define HAIKU_BUILD_B_DEV_DOOR_OPEN (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 18) + +#define HAIKU_BUILD_B_DEV_INVALID_PIPE (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 19) +#define HAIKU_BUILD_B_DEV_CRC_ERROR (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 20) +#define HAIKU_BUILD_B_DEV_STALLED (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 21) +#define HAIKU_BUILD_B_DEV_BAD_PID (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 22) +#define HAIKU_BUILD_B_DEV_UNEXPECTED_PID (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 23) +#define HAIKU_BUILD_B_DEV_DATA_OVERRUN (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 24) +#define HAIKU_BUILD_B_DEV_DATA_UNDERRUN (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 25) +#define HAIKU_BUILD_B_DEV_FIFO_OVERRUN (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 26) +#define HAIKU_BUILD_B_DEV_FIFO_UNDERRUN (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 27) +#define HAIKU_BUILD_B_DEV_PENDING (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 28) +#define HAIKU_BUILD_B_DEV_MULTIPLE_ERRORS (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 29) +#define HAIKU_BUILD_B_DEV_TOO_LATE (HAIKU_BUILD_B_DEVICE_ERROR_BASE + 30) + +/* Translation Kit Errors */ +#define HAIKU_BUILD_B_TRANSLATION_BASE_ERROR (HAIKU_BUILD_B_TRANSLATION_ERROR_BASE + 0) +#define HAIKU_BUILD_B_NO_TRANSLATOR (HAIKU_BUILD_B_TRANSLATION_ERROR_BASE + 1) +#define HAIKU_BUILD_B_ILLEGAL_DATA (HAIKU_BUILD_B_TRANSLATION_ERROR_BASE + 2) + + +#define HAIKU_BUILD_B_TO_POSITIVE_ERROR(error) _haiku_build_to_positive_error(error) +#define HAIKU_BUILD_B_TO_NEGATIVE_ERROR(error) _haiku_build_to_negative_error(error) + #ifdef __cplusplus extern "C" { #endif -extern int *_haiku_build_errno(); -extern int _haiku_to_host_error(int error); +int _haiku_build_to_positive_error(int error); +int _haiku_build_to_negative_error(int error); #ifdef __cplusplus } #endif - -/*---- new error codes that can be mapped to POSIX errors ----*/ -#define B_BUFFER_OVERFLOW HAIKU_EOVERFLOW -#define B_TOO_MANY_ARGS HAIKU_E2BIG -#define B_FILE_TOO_LARGE HAIKU_EFBIG -#define B_RESULT_NOT_REPRESENTABLE HAIKU_ERANGE -#define B_DEVICE_NOT_FOUND HAIKU_ENODEV -#define B_NOT_SUPPORTED HAIKU_EOPNOTSUPP - -/*-------------------------------------------------------------*/ -/*----- Media Kit Errors --------------------------------------*/ -enum { - B_STREAM_NOT_FOUND = B_MEDIA_ERROR_BASE, - B_SERVER_NOT_FOUND, - B_RESOURCE_NOT_FOUND, - B_RESOURCE_UNAVAILABLE, - B_BAD_SUBSCRIBER, - B_SUBSCRIBER_NOT_ENTERED, - B_BUFFER_NOT_AVAILABLE, - B_LAST_BUFFER_ERROR -}; - -/*-------------------------------------------------------------*/ -/*----- Mail Kit Errors ---------------------------------------*/ -enum -{ - B_MAIL_NO_DAEMON = B_MAIL_ERROR_BASE, - B_MAIL_UNKNOWN_USER, - B_MAIL_WRONG_PASSWORD, - B_MAIL_UNKNOWN_HOST, - B_MAIL_ACCESS_ERROR, - B_MAIL_UNKNOWN_FIELD, - B_MAIL_NO_RECIPIENT, - B_MAIL_INVALID_MAIL -}; - -/*-------------------------------------------------------------*/ -/*----- Printing Errors --------------------------------------*/ -enum -{ - B_NO_PRINT_SERVER = B_PRINT_ERROR_BASE -}; - -/*-------------------------------------------------------------*/ -/*----- Device Kit Errors -------------------------------------*/ -enum -{ - B_DEV_INVALID_IOCTL = B_DEVICE_ERROR_BASE, - B_DEV_NO_MEMORY, - B_DEV_BAD_DRIVE_NUM, - B_DEV_NO_MEDIA, - B_DEV_UNREADABLE, - B_DEV_FORMAT_ERROR, - B_DEV_TIMEOUT, - B_DEV_RECALIBRATE_ERROR, - B_DEV_SEEK_ERROR, - B_DEV_ID_ERROR, - B_DEV_READ_ERROR, - B_DEV_WRITE_ERROR, - B_DEV_NOT_READY, - B_DEV_MEDIA_CHANGED, - B_DEV_MEDIA_CHANGE_REQUESTED, - B_DEV_RESOURCE_CONFLICT, - B_DEV_CONFIGURATION_ERROR, - B_DEV_DISABLED_BY_USER, - B_DEV_DOOR_OPEN, - - B_DEV_INVALID_PIPE, - B_DEV_CRC_ERROR, - B_DEV_STALLED, - B_DEV_BAD_PID, - B_DEV_UNEXPECTED_PID, - B_DEV_DATA_OVERRUN, - B_DEV_DATA_UNDERRUN, - B_DEV_FIFO_OVERRUN, - B_DEV_FIFO_UNDERRUN, - B_DEV_PENDING, - B_DEV_MULTIPLE_ERRORS, - B_DEV_TOO_LATE, -}; - -#endif /* _ERRORS_H */ +#endif /* _HAIKU_BUILD_ERRORS_H */ ############################################################################ Commit: 417f96e6520028ff36e274dbbc7eecb4f69fc761 Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Tue Jul 31 20:49:20 2012 UTC Ticket: https://dev.haiku-os.org/ticket/8730 Applied Ingo's changes to SupportDefs.h from patch on #8730. ---------------------------------------------------------------------------- diff --git a/headers/build/os/support/SupportDefs.h b/headers/build/os/support/SupportDefs.h index f400fd3..6c8f41c 100644 --- a/headers/build/os/support/SupportDefs.h +++ b/headers/build/os/support/SupportDefs.h @@ -1,2 +1,266 @@ +/* + * Copyright 2004-2012, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Erik Jaesler (erik@xxxxxxxxxxxxxx) + */ +#ifndef _HAIKU_BUILD_SUPPORT_DEFS_H +#define _HAIKU_BUILD_SUPPORT_DEFS_H + + #include <config_build/types.h> -#include <../os/support/SupportDefs.h> + +#include <BeBuild.h> +#include <Errors.h> + +#include <inttypes.h> +#include <sys/types.h> + + +/* fixed-size integer types */ +typedef __haiku_build_haiku_int8 haiku_build_int8; +typedef __haiku_build_haiku_uint8 haiku_build_uint8; +typedef __haiku_build_haiku_int16 haiku_build_int16; +typedef __haiku_build_haiku_uint16 haiku_build_uint16; +typedef __haiku_build_haiku_int32 haiku_build_int32; +typedef __haiku_build_haiku_uint32 haiku_build_uint32; +typedef __haiku_build_haiku_int64 haiku_build_int64; +typedef __haiku_build_haiku_uint64 haiku_build_uint64; + +/* shorthand types */ +typedef volatile haiku_build_int8 haiku_build_vint8; +typedef volatile haiku_build_uint8 haiku_build_vuint8; +typedef volatile haiku_build_int16 haiku_build_vint16; +typedef volatile haiku_build_uint16 haiku_build_vuint16; +typedef volatile haiku_build_int32 haiku_build_vint32; +typedef volatile haiku_build_uint32 haiku_build_vuint32; +typedef volatile haiku_build_int64 haiku_build_vint64; +typedef volatile haiku_build_uint64 haiku_build_vuint64; + +typedef volatile long haiku_build_vlong; +typedef volatile int haiku_build_vint; +typedef volatile short haiku_build_vshort; +typedef volatile char haiku_build_vchar; + +typedef volatile unsigned long haiku_build_vulong; +typedef volatile unsigned int haiku_build_vuint; +typedef volatile unsigned short haiku_build_vushort; +typedef volatile unsigned char haiku_build_vuchar; + +typedef unsigned char haiku_build_uchar; +typedef unsigned short haiku_build_unichar; + +/* descriptive types */ +typedef haiku_build_int32 haiku_build_status_t; +typedef haiku_build_int64 haiku_build_bigtime_t; +typedef haiku_build_int64 haiku_build_nanotime_t; +typedef haiku_build_uint32 haiku_build_type_code; +typedef haiku_build_uint32 haiku_build_perform_code; + +typedef __haiku_build_haiku_phys_addr_t haiku_build_phys_addr_t; +typedef haiku_build_phys_addr_t haiku_build_phys_size_t; + +typedef __haiku_build_haiku_generic_addr_t haiku_build_generic_addr_t; +typedef haiku_build_generic_addr_t haiku_build_generic_size_t; + + +/* printf()/scanf() format strings for [u]int* types */ +#define HAIKU_BUILD_B_PRId8 "d" +#define HAIKU_BUILD_B_PRIi8 "i" +#define HAIKU_BUILD_B_PRId16 "d" +#define HAIKU_BUILD_B_PRIi16 "i" +#define HAIKU_BUILD_B_PRId32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "d" +#define HAIKU_BUILD_B_PRIi32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "i" +#define HAIKU_BUILD_B_PRId64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "d" +#define HAIKU_BUILD_B_PRIi64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "i" +#define HAIKU_BUILD_B_PRIu8 "u" +#define HAIKU_BUILD_B_PRIo8 "o" +#define HAIKU_BUILD_B_PRIx8 "x" +#define HAIKU_BUILD_B_PRIX8 "X" +#define HAIKU_BUILD_B_PRIu16 "u" +#define HAIKU_BUILD_B_PRIo16 "o" +#define HAIKU_BUILD_B_PRIx16 "x" +#define HAIKU_BUILD_B_PRIX16 "X" +#define HAIKU_BUILD_B_PRIu32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "u" +#define HAIKU_BUILD_B_PRIo32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "o" +#define HAIKU_BUILD_B_PRIx32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "x" +#define HAIKU_BUILD_B_PRIX32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "X" +#define HAIKU_BUILD_B_PRIu64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "u" +#define HAIKU_BUILD_B_PRIo64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "o" +#define HAIKU_BUILD_B_PRIx64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "x" +#define HAIKU_BUILD_B_PRIX64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "X" + +#define HAIKU_BUILD_B_SCNd8 "hhd" +#define HAIKU_BUILD_B_SCNi8 "hhi" +#define HAIKU_BUILD_B_SCNd16 "hd" +#define HAIKU_BUILD_B_SCNi16 "hi" +#define HAIKU_BUILD_B_SCNd32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "d" +#define HAIKU_BUILD_B_SCNi32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "i" +#define HAIKU_BUILD_B_SCNd64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "d" +#define HAIKU_BUILD_B_SCNi64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "i" +#define HAIKU_BUILD_B_SCNu8 "hhu" +#define HAIKU_BUILD_B_SCNo8 "hho" +#define HAIKU_BUILD_B_SCNx8 "hhx" +#define HAIKU_BUILD_B_SCNu16 "hu" +#define HAIKU_BUILD_B_SCNo16 "ho" +#define HAIKU_BUILD_B_SCNx16 "hx" +#define HAIKU_BUILD_B_SCNu32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "u" +#define HAIKU_BUILD_B_SCNo32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "o" +#define HAIKU_BUILD_B_SCNx32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 "x" +#define HAIKU_BUILD_B_SCNu64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "u" +#define HAIKU_BUILD_B_SCNo64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "o" +#define HAIKU_BUILD_B_SCNx64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 "x" + +/* printf() format strings for some standard types */ +/* size_t */ +#define HAIKU_BUILD_B_PRIuSIZE __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "u" +#define HAIKU_BUILD_B_PRIoSIZE __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "o" +#define HAIKU_BUILD_B_PRIxSIZE __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "x" +#define HAIKU_BUILD_B_PRIXSIZE __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "X" +/* ssize_t */ +#define HAIKU_BUILD_B_PRIdSSIZE __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "d" +#define HAIKU_BUILD_B_PRIiSSIZE __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "i" +/* addr_t */ +#define HAIKU_BUILD_B_PRIuADDR __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "u" +#define HAIKU_BUILD_B_PRIoADDR __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "o" +#define HAIKU_BUILD_B_PRIxADDR __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "x" +#define HAIKU_BUILD_B_PRIXADDR __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR "X" +/* phys_addr_t */ +#define HAIKU_BUILD_B_PRIuPHYSADDR __HAIKU_BUILD_HAIKU_PRI_PREFIX_PHYS_ADDR "u" +#define HAIKU_BUILD_B_PRIoPHYSADDR __HAIKU_BUILD_HAIKU_PRI_PREFIX_PHYS_ADDR "o" +#define HAIKU_BUILD_B_PRIxPHYSADDR __HAIKU_BUILD_HAIKU_PRI_PREFIX_PHYS_ADDR "x" +#define HAIKU_BUILD_B_PRIXPHYSADDR __HAIKU_BUILD_HAIKU_PRI_PREFIX_PHYS_ADDR "X" +/* generic_addr_t */ +#define HAIKU_BUILD_B_PRIuGENADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_GENERIC_ADDR "u" +#define HAIKU_BUILD_B_PRIoGENADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_GENERIC_ADDR "o" +#define HAIKU_BUILD_B_PRIxGENADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_GENERIC_ADDR "x" +#define HAIKU_BUILD_B_PRIXGENADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_GENERIC_ADDR "X" +/* off_t */ +#define HAIKU_BUILD_B_PRIdOFF HAIKU_BUILD_B_PRId64 +#define HAIKU_BUILD_B_PRIiOFF HAIKU_BUILD_B_PRIi64 +/* dev_t */ +#define HAIKU_BUILD_B_PRIdDEV HAIKU_BUILD_B_PRId32 +#define HAIKU_BUILD_B_PRIiDEV HAIKU_BUILD_B_PRIi32 +/* ino_t */ +#define HAIKU_BUILD_B_PRIdINO HAIKU_BUILD_B_PRId64 +#define HAIKU_BUILD_B_PRIiINO HAIKU_BUILD_B_PRIi64 +/* time_t */ +#define HAIKU_BUILD_B_PRIdTIME HAIKU_BUILD_B_PRId32 +#define HAIKU_BUILD_B_PRIiTIME HAIKU_BUILD_B_PRIi32 + + +/* Empty string ("") */ +#ifdef __cplusplus +extern const char *HAIKU_BUILD_B_EMPTY_STRING; +#endif + + +/* min and max comparisons */ +#ifndef __cplusplus +# ifndef haiku_build_min +# define haiku_build_min(a,b) ((a)>(b)?(b):(a)) +# endif +# ifndef haiku_build_max +# define haiku_build_max(a,b) ((a)>(b)?(a):(b)) +# endif +#endif + +/* min() and max() are functions in C++ */ +#define haiku_build_min_c(a,b) ((a)>(b)?(b):(a)) +#define haiku_build_max_c(a,b) ((a)>(b)?(a):(b)) + + +/* Grandfathering */ +#ifndef __cplusplus +# include <stdbool.h> +#endif + +/* +#ifndef HAIKU_BUILD_NULL +# define HAIKU_BUILD_NULL (0) +#endif +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + +/* Atomic functions; previous value is returned */ +extern haiku_build_int32 haiku_build_atomic_set(haiku_build_vint32 *value, + haiku_build_int32 newValue); +extern haiku_build_int32 haiku_build_atomic_test_and_set( + haiku_build_vint32 *value, + haiku_build_int32 newValue, + haiku_build_int32 testAgainst); +extern haiku_build_int32 haiku_build_atomic_add(haiku_build_vint32 *value, + haiku_build_int32 addValue); +extern haiku_build_int32 haiku_build_atomic_and(haiku_build_vint32 *value, + haiku_build_int32 andValue); +extern haiku_build_int32 haiku_build_atomic_or(haiku_build_vint32 *value, + haiku_build_int32 orValue); +extern haiku_build_int32 haiku_build_atomic_get(haiku_build_vint32 *value); + +extern haiku_build_int64 haiku_build_atomic_set64(haiku_build_vint64 *value, + haiku_build_int64 newValue); +extern haiku_build_int64 haiku_build_atomic_test_and_set64( + haiku_build_vint64 *value, + haiku_build_int64 newValue, + haiku_build_int64 testAgainst); +extern haiku_build_int64 haiku_build_atomic_add64(haiku_build_vint64 *value, + haiku_build_int64 addValue); +extern haiku_build_int64 haiku_build_atomic_and64(haiku_build_vint64 *value, + haiku_build_int64 andValue); +extern haiku_build_int64 haiku_build_atomic_or64(haiku_build_vint64 *value, + haiku_build_int64 orValue); +extern haiku_build_int64 haiku_build_atomic_get64(haiku_build_vint64 *value); + +/* Other stuff */ +extern void* haiku_build_get_stack_frame(void); + +#ifdef __cplusplus +} +#endif + +/* Obsolete or discouraged API */ + +/* use 'true' and 'false' */ +#ifndef FALSE +# define FALSE 0 +#endif +#ifndef TRUE +# define TRUE 1 +#endif + + +/* Use the built-in atomic functions, if requested and available. */ + +#if defined(HAIKU_BUILD_B_USE_BUILTIN_ATOMIC_FUNCTIONS) && __GNUC__ >= 4 + +#define haiku_build_atomic_test_and_set(valuePointer, newValue, testAgainst) \ + __sync_val_compare_and_swap(valuePointer, testAgainst, newValue) +#define haiku_build_atomic_add(valuePointer, addValue) \ + __sync_fetch_and_add(valuePointer, addValue) +#define haiku_build_atomic_and(valuePointer, andValue) \ + __sync_fetch_and_and(valuePointer, andValue) +#define haiku_build_atomic_or(valuePointer, orValue) \ + __sync_fetch_and_or(valuePointer, orValue) +#define haiku_build_atomic_get(valuePointer) \ + __sync_fetch_and_or(valuePointer, 0) + // No equivalent to atomic_get(). We simulate it via atomic or. On most + // (all?) 32+ bit architectures aligned 32 bit reads will be atomic anyway, + // though. + +// Note: No equivalent for atomic_set(). It could be simulated by a +// get + atomic test and set loop, but calling the atomic_set() implementation +// might be faster. + +#endif // HAIKU_BUILD_B_USE_BUILTIN_ATOMIC_FUNCTIONS && __GNUC__ >= 4 + + +#endif /* _HAIKU_BUILD_SUPPORT_DEFS_H */ ############################################################################ Commit: 3ae8e7e548a9b57b2323634638fce06f9f985311 Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Tue Jul 31 20:54:34 2012 UTC Ticket: https://dev.haiku-os.org/ticket/8730 Applied Ingo's changes to atomic.cpp from patch on #8730. ---------------------------------------------------------------------------- diff --git a/src/build/libroot/atomic.cpp b/src/build/libroot/atomic.cpp index b929f16..7c3daaa 100644 --- a/src/build/libroot/atomic.cpp +++ b/src/build/libroot/atomic.cpp @@ -6,103 +6,104 @@ #include <SupportDefs.h> -int32 -atomic_set(vint32 *value, int32 newValue) +haiku_build_int32 +_haiku_build_atomic_set(haiku_build_vint32 *value, haiku_build_int32 newValue) { - int32 oldValue = *value; + haiku_build_int32 oldValue = *value; *value = newValue; return oldValue; } -int32 -atomic_test_and_set(vint32 *value, int32 newValue, int32 testAgainst) +haiku_build_int32 +_haiku_build_atomic_test_and_set(haiku_build_vint32 *value, + haiku_build_int32 newValue, haiku_build_int32 testAgainst) { - int32 oldValue = *value; + haiku_build_int32 oldValue = *value; if (oldValue == testAgainst) *value = newValue; return oldValue; } -int32 -atomic_add(vint32 *value, int32 addValue) +haiku_build_int32 +_haiku_build_atomic_add(haiku_build_vint32 *value, haiku_build_int32 addValue) { - int32 oldValue = *value; + haiku_build_int32 oldValue = *value; *value += addValue; return oldValue; } -int32 -atomic_and(vint32 *value, int32 andValue) +haiku_build_int32 +_haiku_build_atomic_and(haiku_build_vint32 *value, haiku_build_int32 andValue) { - int32 oldValue = *value; + haiku_build_int32 oldValue = *value; *value &= andValue; return oldValue; } -int32 -atomic_or(vint32 *value, int32 orValue) +haiku_build_int32 +_haiku_build_atomic_or(haiku_build_vint32 *value, haiku_build_int32 orValue) { - int32 oldValue = *value; + haiku_build_int32 oldValue = *value; *value |= orValue; return oldValue; } -int32 -atomic_get(vint32 *value) +haiku_build_int32 +_haiku_build_atomic_get(haiku_build_vint32 *value) { return *value; } -int64 -atomic_set64(vint64 *value, int64 newValue) +haiku_build_int64 +_haiku_build_atomic_set64(haiku_build_vint64 *value, haiku_build_int64 newValue) { - int64 oldValue = *value; + haiku_build_int64 oldValue = *value; *value = newValue; return oldValue; } -int64 -atomic_test_and_set64(vint64 *value, int64 newValue, int64 testAgainst) +haiku_build_int64 +_haiku_build_atomic_test_and_set64(haiku_build_vint64 *value, + haiku_build_int64 newValue, haiku_build_int64 testAgainst) { - int64 oldValue = *value; + haiku_build_int64 oldValue = *value; if (oldValue == testAgainst) *value = newValue; return oldValue; } -int64 -atomic_add64(vint64 *value, int64 addValue) +haiku_build_int64 +_haiku_build_atomic_add64(haiku_build_vint64 *value, haiku_build_int64 addValue) { - int64 oldValue = *value; + haiku_build_int64 oldValue = *value; *value += addValue; return oldValue; } -int64 -atomic_and64(vint64 *value, int64 andValue) +haiku_build_int64 +_haiku_build_atomic_and64(haiku_build_vint64 *value, haiku_build_int64 andValue) { - int64 oldValue = *value; + haiku_build_int64 oldValue = *value; *value &= andValue; return oldValue; } -int64 -atomic_or64(vint64 *value, int64 orValue) +haiku_build_int64 +_haiku_build_atomic_or64(haiku_build_vint64 *value, haiku_build_int64 orValue) { - int64 oldValue = *value; + haiku_build_int64 oldValue = *value; *value |= orValue; return oldValue; } -int64 -atomic_get64(vint64 *value) +haiku_build_int64 +_haiku_build_atomic_get64(haiku_build_vint64 *value) { return *value; } - ############################################################################ Commit: d29f97fb6348d8925ebf61e17e33d6df3d37e644 Author: Matt Madia <mattmadia@xxxxxxxxx> Date: Tue Jul 31 21:14:21 2012 UTC Ticket: https://dev.haiku-os.org/ticket/8730 Applied Ingo's changes to config_build/types.h from patch on #8730. ---------------------------------------------------------------------------- diff --git a/headers/build/config_build/types.h b/headers/build/config_build/types.h index 960e1ce..53da55d 100644 --- a/headers/build/config_build/types.h +++ b/headers/build/config_build/types.h @@ -6,9 +6,9 @@ #define _CONFIG_BUILD_TYPES_H -#include <config_build/HaikuConfig.h> +#include <HaikuBuild.h> -#include <inttypes.h> +#include <config_build/HaikuConfig.h> /* fixed-width types -- the __haiku_std_[u]int* types correspond to the POSIX @@ -16,97 +16,154 @@ __HAIKU_BEOS_COMPATIBLE_TYPES is not defined both sets are identical. Once we drop compatibility for good, we can consolidate the types. */ -typedef int8_t __haiku_std_int8; -typedef uint8_t __haiku_std_uint8; -typedef int16_t __haiku_std_int16; -typedef uint16_t __haiku_std_uint16; -typedef int32_t __haiku_std_int32; -typedef uint32_t __haiku_std_uint32; -typedef int64_t __haiku_std_int64; -typedef uint64_t __haiku_std_uint64; - -typedef __haiku_std_int8 __haiku_int8; -typedef __haiku_std_uint8 __haiku_uint8; -typedef __haiku_std_int16 __haiku_int16; -typedef __haiku_std_uint16 __haiku_uint16; -typedef __haiku_std_int32 __haiku_int32; -typedef __haiku_std_uint32 __haiku_uint32; -typedef __haiku_std_int64 __haiku_int64; -typedef __haiku_std_uint64 __haiku_uint64; +typedef _HAIKU_BUILD_FEATURE_int8 __haiku_build_haiku_std_int8; +typedef _HAIKU_BUILD_FEATURE_uint8 __haiku_build_haiku_std_uint8; +typedef _HAIKU_BUILD_FEATURE_int16 __haiku_build_haiku_std_int16; +typedef _HAIKU_BUILD_FEATURE_uint16 __haiku_build_haiku_std_uint16; +typedef _HAIKU_BUILD_FEATURE_int32 __haiku_build_haiku_std_int32; +typedef _HAIKU_BUILD_FEATURE_uint32 __haiku_build_haiku_std_uint32; +typedef _HAIKU_BUILD_FEATURE_int64 __haiku_build_haiku_std_int64; +typedef _HAIKU_BUILD_FEATURE_uint64 __haiku_build_haiku_std_uint64; + +typedef __haiku_build_haiku_std_int8 __haiku_build_haiku_int8; +typedef __haiku_build_haiku_std_uint8 __haiku_build_haiku_uint8; +typedef __haiku_build_haiku_std_int16 __haiku_build_haiku_int16; +typedef __haiku_build_haiku_std_uint16 __haiku_build_haiku_uint16; +typedef __haiku_build_haiku_std_int32 __haiku_build_haiku_int32; +typedef __haiku_build_haiku_std_uint32 __haiku_build_haiku_uint32; +typedef __haiku_build_haiku_std_int64 __haiku_build_haiku_int64; +typedef __haiku_build_haiku_std_uint64 __haiku_build_haiku_uint64; /* address types */ -#ifdef __HAIKU_ARCH_64_BIT - typedef __haiku_int64 __haiku_saddr_t; - typedef __haiku_uint64 __haiku_addr_t; +#ifdef __HAIKU_BUILD_HAIKU_ARCH_64_BIT + typedef __haiku_build_haiku_int64 __haiku_build_haiku_saddr_t; + typedef __haiku_build_haiku_uint64 __haiku_build_haiku_addr_t; #else - typedef __haiku_int32 __haiku_saddr_t; - typedef __haiku_uint32 __haiku_addr_t; + typedef __haiku_build_haiku_int32 __haiku_build_haiku_saddr_t; + typedef __haiku_build_haiku_uint32 __haiku_build_haiku_addr_t; #endif -#ifdef __HAIKU_ARCH_PHYSICAL_64_BIT - typedef __haiku_int64 __haiku_phys_saddr_t; - typedef __haiku_uint64 __haiku_phys_addr_t; +#ifdef __HAIKU_BUILD_HAIKU_ARCH_PHYSICAL_64_BIT + typedef __haiku_build_haiku_int64 __haiku_build_haiku_phys_saddr_t; + typedef __haiku_build_haiku_uint64 __haiku_build_haiku_phys_addr_t; #else - typedef __haiku_int32 __haiku_phys_saddr_t; - typedef __haiku_uint32 __haiku_phys_addr_t; + typedef __haiku_build_haiku_int32 __haiku_build_haiku_phys_saddr_t; + typedef __haiku_build_haiku_uint32 __haiku_build_haiku_phys_addr_t; #endif /* address type limits */ -#ifdef __HAIKU_ARCH_64_BIT -# define __HAIKU_SADDR_MAX (9223372036854775807LL) -# define __HAIKU_ADDR_MAX (18446744073709551615ULL) +#ifdef __HAIKU_BUILD_HAIKU_ARCH_64_BIT +# define __HAIKU_BUILD_HAIKU_SADDR_MAX (9223372036854775807LL) +# define __HAIKU_BUILD_HAIKU_ADDR_MAX (18446744073709551615ULL) #else -# define __HAIKU_SADDR_MAX (2147483647) -# define __HAIKU_ADDR_MAX (4294967295U) +# define __HAIKU_BUILD_HAIKU_SADDR_MAX (2147483647) +# define __HAIKU_BUILD_HAIKU_ADDR_MAX (4294967295U) #endif -#define __HAIKU_SADDR_MIN (-__HAIKU_SADDR_MAX-1) +#define __HAIKU_BUILD_HAIKU_SADDR_MIN (-__HAIKU_BUILD_HAIKU_SADDR_MAX-1) -#ifdef __HAIKU_ARCH_PHYSICAL_64_BIT -# define __HAIKU_PHYS_SADDR_MAX (9223372036854775807LL) -# define __HAIKU_PHYS_ADDR_MAX (18446744073709551615ULL) +#ifdef __HAIKU_BUILD_HAIKU_ARCH_PHYSICAL_64_BIT +# define __HAIKU_BUILD_HAIKU_PHYS_SADDR_MAX (9223372036854775807LL) +# define __HAIKU_BUILD_HAIKU_PHYS_ADDR_MAX (18446744073709551615ULL) #else -# define __HAIKU_PHYS_SADDR_MAX (2147483647) -# define __HAIKU_PHYS_ADDR_MAX (4294967295U) +# define __HAIKU_BUILD_HAIKU_PHYS_SADDR_MAX (2147483647) +# define __HAIKU_BUILD_HAIKU_PHYS_ADDR_MAX (4294967295U) #endif -#define __HAIKU_PHYS_SADDR_MIN (-__HAIKU_SADDR_MAX-1) +#define __HAIKU_BUILD_HAIKU_PHYS_SADDR_MIN (-__HAIKU_BUILD_HAIKU_SADDR_MAX-1) /* printf()/scanf() format prefixes */ -/* TODO: The following are only guesses! We should define them in the - build/host headers. */ -#define __HAIKU_STD_PRI_PREFIX_32 "" -#ifdef __HAIKU_ARCH_64_BIT -# define __HAIKU_STD_PRI_PREFIX_64 "l" +#define __HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 \ + _HAIKU_BUILD_FEATURE_FORMAT_PREFIX_int32 +#define __HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 \ + _HAIKU_BUILD_FEATURE_FORMAT_PREFIX_int64 + +#define __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 \ + __HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 +#define __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 \ + __HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 + +#ifdef __HAIKU_BUILD_HAIKU_ARCH_64_BIT +# define __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 #else -# define __HAIKU_STD_PRI_PREFIX_64 "ll" +# define __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 #endif -#define __HAIKU_PRI_PREFIX_32 __HAIKU_STD_PRI_PREFIX_32 -#define __HAIKU_PRI_PREFIX_64 __HAIKU_STD_PRI_PREFIX_64 - -#ifdef __HAIKU_ARCH_64_BIT -# define __HAIKU_PRI_PREFIX_ADDR __HAIKU_PRI_PREFIX_64 +#ifdef __HAIKU_BUILD_HAIKU_ARCH_PHYSICAL_64_BIT +# define __HAIKU_BUILD_HAIKU_PRI_PREFIX_PHYS_ADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 #else -# define __HAIKU_PRI_PREFIX_ADDR __HAIKU_PRI_PREFIX_32 -#endif - -#ifdef __HAIKU_ARCH_PHYSICAL_64_BIT -# define __HAIKU_PRI_PREFIX_PHYS_ADDR __HAIKU_PRI_PREFIX_64 -#else -# define __HAIKU_PRI_PREFIX_PHYS_ADDR __HAIKU_PRI_PREFIX_32 +# define __HAIKU_BUILD_HAIKU_PRI_PREFIX_PHYS_ADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 #endif /* a generic address type wide enough for virtual and physical addresses */ -#if __HAIKU_ARCH_BITS >= __HAIKU_ARCH_PHYSICAL_BITS - typedef __haiku_addr_t __haiku_generic_addr_t; -# define __HAIKU_GENERIC_ADDR_MAX __HAIKU_ADDR_MAX -# define __HAIKU_PRI_PREFIX_GENERIC_ADDR __HAIKU_PRI_PREFIX_ADDR +#if __HAIKU_BUILD_HAIKU_ARCH_BITS >= __HAIKU_BUILD_HAIKU_ARCH_PHYSICAL_BITS + typedef __haiku_build_haiku_addr_t __haiku_build_haiku_generic_addr_t; +# define __HAIKU_BUILD_HAIKU_GENERIC_ADDR_MAX \ + __HAIKU_BUILD_HAIKU_ADDR_MAX +# define __HAIKU_BUILD_HAIKU_PRI_PREFIX_GENERIC_ADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR #else - typedef __haiku_phys_addr_t __haiku_generic_addr_t; -# define __HAIKU_GENERIC_ADDR_MAX __HAIKU_PHYS_ADDR_MAX -# define __HAIKU_PRI_PREFIX_GENERIC_ADDR __HAIKU_PRI_PREFIX_PHYS_ADDR + typedef __haiku_build_haiku_phys_addr_t __haiku_build_haiku_generic_addr_t; +# define __HAIKU_BUILD_HAIKU_GENERIC_ADDR_MAX \ + __HAIKU_BUILD_HAIKU_PHYS_ADDR_MAX +# define __HAIKU_BUILD_HAIKU_PRI_PREFIX_GENERIC_ADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_PHYS_ADDR #endif +/* map the macros/types, if not building the libroot mapper functions */ + +#ifndef _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER + +typedef __haiku_build_haiku_std_int8 __haiku_std_int8; +typedef __haiku_build_haiku_std_uint8 __haiku_std_uint8; +typedef __haiku_build_haiku_std_int16 __haiku_std_int16; +typedef __haiku_build_haiku_std_uint16 __haiku_std_uint16; +typedef __haiku_build_haiku_std_int32 __haiku_std_int32; +typedef __haiku_build_haiku_std_uint32 __haiku_std_uint32; +typedef __haiku_build_haiku_std_int64 __haiku_std_int64; +typedef __haiku_build_haiku_std_uint64 __haiku_std_uint64; + +typedef __haiku_build_haiku_int8 __haiku_int8; +typedef __haiku_build_haiku_uint8 __haiku_uint8; +typedef __haiku_build_haiku_int16 __haiku_int16; +typedef __haiku_build_haiku_uint16 __haiku_uint16; +typedef __haiku_build_haiku_int32 __haiku_int32; +typedef __haiku_build_haiku_uint32 __haiku_uint32; +typedef __haiku_build_haiku_int64 __haiku_int64; +typedef __haiku_build_haiku_uint64 __haiku_uint64; + +typedef __haiku_build_haiku_saddr_t __haiku_saddr_t; +typedef __haiku_build_haiku_addr_t __haiku_addr_t; +typedef __haiku_build_haiku_phys_saddr_t __haiku_phys_saddr_t; +typedef __haiku_build_haiku_phys_addr_t __haiku_phys_addr_t; + +#define __HAIKU_SADDR_MAX __HAIKU_BUILD_HAIKU_SADDR_MAX +#define __HAIKU_ADDR_MAX __HAIKU_BUILD_HAIKU_ADDR_MAX +#define __HAIKU_SADDR_MIN __HAIKU_BUILD_HAIKU_SADDR_MIN + +#define __HAIKU_PHYS_SADDR_MAX __HAIKU_BUILD_HAIKU_PHYS_SADDR_MAX +#define __HAIKU_PHYS_ADDR_MAX __HAIKU_BUILD_HAIKU_PHYS_ADDR_MAX +#define __HAIKU_PHYS_SADDR_MIN __HAIKU_BUILD_HAIKU_PHYS_SADDR_MIN + +#define __HAIKU_STD_PRI_PREFIX_32 __HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_32 +#define __HAIKU_STD_PRI_PREFIX_64 __HAIKU_BUILD_HAIKU_STD_PRI_PREFIX_64 + +#define __HAIKU_PRI_PREFIX_32 __HAIKU_BUILD_HAIKU_PRI_PREFIX_32 +#define __HAIKU_PRI_PREFIX_64 __HAIKU_BUILD_HAIKU_PRI_PREFIX_64 + +#define __HAIKU_PRI_PREFIX_ADDR __HAIKU_BUILD_HAIKU_PRI_PREFIX_ADDR +#define __HAIKU_PRI_PREFIX_PHYS_ADDR __HAIKU_BUILD_HAIKU_PRI_PREFIX_PHYS_ADDR + +typedef __haiku_build_haiku_generic_addr_t __haiku_generic_addr_t; +#define __HAIKU_GENERIC_ADDR_MAX __HAIKU_BUILD_HAIKU_GENERIC_ADDR_MAX +#define __HAIKU_PRI_PREFIX_GENERIC_ADDR \ + __HAIKU_BUILD_HAIKU_PRI_PREFIX_GENERIC_ADDR + +#endif /* _HAIKU_BUILD_LIBROOT_FUNCTION_WRAPPER */ + #endif /* _CONFIG_BUILD_TYPES_H */