diff options
Diffstat (limited to 'bsp/simulator/SDL/include/begin_code.h')
| -rw-r--r-- | bsp/simulator/SDL/include/begin_code.h | 193 |
1 files changed, 71 insertions, 122 deletions
diff --git a/bsp/simulator/SDL/include/begin_code.h b/bsp/simulator/SDL/include/begin_code.h index 22748090c5..f37ee3696e 100644 --- a/bsp/simulator/SDL/include/begin_code.h +++ b/bsp/simulator/SDL/include/begin_code.h @@ -1,129 +1,88 @@ /* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2009 Sam Lantinga + Simple DirectMedia Layer + Copyright (C) 1997-2014 Sam Lantinga <[email protected]> - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: - You should have received a copy of the GNU Library General Public - License along with this library; if not, write to the Free - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - Sam Lantinga + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. */ -/** - * @file begin_code.h +/** + * \file begin_code.h + * * This file sets things up for C dynamic library function definitions, * static inlined functions, and structures aligned at 4-byte alignment. * If you don't like ugly C preprocessor code, don't look at this file. :) */ -/** - * @file begin_code.h - * This shouldn't be nested -- included it around code only. - */ +/* This shouldn't be nested -- included it around code only. */ #ifdef _begin_code_h #error Nested inclusion of begin_code.h #endif #define _begin_code_h -/** - * @def DECLSPEC - * Some compilers use a special export keyword - */ -#ifndef DECLSPEC -# if defined(__BEOS__) || defined(__HAIKU__) -# if defined(__GNUC__) -# define DECLSPEC __declspec(dllexport) +#ifndef SDL_DEPRECATED +# if (__GNUC__ >= 4) /* technically, this arrived in gcc 3.1, but oh well. */ +# define SDL_DEPRECATED __attribute__((deprecated)) # else -# define DECLSPEC __declspec(export) +# define SDL_DEPRECATED # endif -# elif defined(__WIN32__) +#endif + +/* Some compilers use a special export keyword */ +#ifndef DECLSPEC +# if defined(__WIN32__) || defined(__WINRT__) # ifdef __BORLANDC__ # ifdef BUILD_SDL -# define DECLSPEC -# else -# define DECLSPEC __declspec(dllimport) -# endif -# else -# define DECLSPEC __declspec(dllexport) -# endif -# elif defined(__OS2__) -# ifdef __WATCOMC__ -# ifdef BUILD_SDL -# define DECLSPEC __declspec(dllexport) -# else # define DECLSPEC -# endif -# elif defined (__GNUC__) && __GNUC__ < 4 -# /* Added support for GCC-EMX <v4.x */ -# /* this is needed for XFree86/OS2 developement */ -# /* F. Ambacher([email protected]) 05.2008 */ -# ifdef BUILD_SDL -# define DECLSPEC __declspec(dllexport) # else -# define DECLSPEC +# define DECLSPEC __declspec(dllimport) # endif # else -# define DECLSPEC +# define DECLSPEC __declspec(dllexport) # endif # else # if defined(__GNUC__) && __GNUC__ >= 4 -# define DECLSPEC __attribute__ ((visibility("default"))) +# define DECLSPEC __attribute__ ((visibility("default"))) +# elif defined(__GNUC__) && __GNUC__ >= 2 +# define DECLSPEC __declspec(dllexport) # else # define DECLSPEC # endif # endif #endif -/** - * @def SDLCALL - * By default SDL uses the C calling convention - */ +/* By default SDL uses the C calling convention */ #ifndef SDLCALL -# if defined(__WIN32__) && !defined(__GNUC__) -# define SDLCALL __cdecl -# elif defined(__OS2__) -# if defined (__GNUC__) && __GNUC__ < 4 -# /* Added support for GCC-EMX <v4.x */ -# /* this is needed for XFree86/OS2 developement */ -# /* F. Ambacher([email protected]) 05.2008 */ -# define SDLCALL _cdecl -# else -# /* On other compilers on OS/2, we use the _System calling convention */ -# /* to be compatible with every compiler */ -# define SDLCALL _System -# endif -# else -# define SDLCALL -# endif +#if (defined(__WIN32__) || defined(__WINRT__)) && !defined(__GNUC__) +#define SDLCALL __cdecl +#else +#define SDLCALL +#endif #endif /* SDLCALL */ -#ifdef __SYMBIAN32__ -#ifndef EKA2 +/* Removed DECLSPEC on Symbian OS because SDL cannot be a DLL in EPOC */ +#ifdef __SYMBIAN32__ #undef DECLSPEC #define DECLSPEC -#elif !defined(__WINS__) -#undef DECLSPEC -#define DECLSPEC __declspec(dllexport) -#endif /* !EKA2 */ #endif /* __SYMBIAN32__ */ -/** - * @file begin_code.h - * Force structure packing at 4 byte alignment. - * This is necessary if the header is included in code which has structure - * packing set to an alternate value, say for loading structures from disk. - * The packing is reset to the previous value in close_code.h +/* Force structure packing at 4 byte alignment. + This is necessary if the header is included in code which has structure + packing set to an alternate value, say for loading structures from disk. + The packing is reset to the previous value in close_code.h */ #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) #ifdef _MSC_VER @@ -132,54 +91,44 @@ #ifdef __BORLANDC__ #pragma nopackwarning #endif +#ifdef _M_X64 +/* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */ +#pragma pack(push,8) +#else #pragma pack(push,4) -#elif (defined(__MWERKS__) && defined(__MACOS__)) -#pragma options align=mac68k4byte -#pragma enumsalwaysint on +#endif #endif /* Compiler needs structure packing set */ -/** - * @def SDL_INLINE_OKAY - * Set up compiler-specific options for inlining functions - */ -#ifndef SDL_INLINE_OKAY -#ifdef __GNUC__ -#define SDL_INLINE_OKAY -#else -/* Add any special compiler-specific cases here */ -#if defined(_MSC_VER) || defined(__BORLANDC__) || \ - defined(__DMC__) || defined(__SC__) || \ - defined(__WATCOMC__) || defined(__LCC__) || \ - defined(__DECC) || defined(__EABI__) +#ifndef SDL_INLINE +#if defined(__GNUC__) +#define SDL_INLINE __inline__ +#elif defined(_MSC_VER) || defined(__BORLANDC__) || \ + defined(__DMC__) || defined(__SC__) || \ + defined(__WATCOMC__) || defined(__LCC__) || \ + defined(__DECC) +#define SDL_INLINE __inline #ifndef __inline__ -#define __inline__ __inline +#define __inline__ __inline #endif -#define SDL_INLINE_OKAY #else -#if !defined(__MRC__) && !defined(_SGI_SOURCE) +#define SDL_INLINE inline #ifndef __inline__ #define __inline__ inline #endif -#define SDL_INLINE_OKAY -#endif /* Not a funky compiler */ -#endif /* Visual C++ */ -#endif /* GNU C */ -#endif /* SDL_INLINE_OKAY */ +#endif +#endif /* SDL_INLINE not defined */ -/** - * @def __inline__ - * If inlining isn't supported, remove "__inline__", turning static - * inlined functions into static functions (resulting in code bloat - * in all files which include the offending header files) - */ -#ifndef SDL_INLINE_OKAY -#define __inline__ +#ifndef SDL_FORCE_INLINE +#if defined(_MSC_VER) +#define SDL_FORCE_INLINE __forceinline +#elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) ) +#define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__ +#else +#define SDL_FORCE_INLINE static SDL_INLINE #endif +#endif /* SDL_FORCE_INLINE not defined */ -/** - * @def NULL - * Apparently this is needed by several Windows compilers - */ +/* Apparently this is needed by several Windows compilers */ #if !defined(__MACH__) #ifndef NULL #ifdef __cplusplus |
