/********************************************************************* * SEGGER Microcontroller GmbH * * The Embedded Experts * ********************************************************************** * * * (c) 1995 - 2021 SEGGER Microcontroller GmbH * * * * www.segger.com Support: support@segger.com * * * ********************************************************************** * * * SEGGER SystemView * Real-time application analysis * * * ********************************************************************** * * * All rights reserved. * * * * SEGGER strongly recommends to not make any changes * * to or modify the source code of this software in order to stay * * compatible with the SystemView and RTT protocol, and J-Link. * * * * Redistribution and use in source and binary forms, with or * * without modification, are permitted provided that the following * * condition is met: * * * * o Redistributions of source code must retain the above copyright * * notice, this condition and the following disclaimer. * * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND * * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * * DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR * * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * * DAMAGE. * * * ********************************************************************** * * * SystemView version: 3.30 * * * ********************************************************************** ---------------------------------------------------------------------- File : Global.h Purpose : Global types In case your application already has a Global.h, you should merge the files. In order to use Segger code, the types U8, U16, U32, I8, I16, I32 need to be defined in Global.h; additional definitions do not hurt. Revision: $Rev: 12501 $ ---------------------------END-OF-HEADER------------------------------ */ #ifndef GLOBAL_H // Guard against multiple inclusion #define GLOBAL_H #define U8 unsigned char #define I8 signed char #define U16 unsigned short #define I16 signed short #ifdef __x86_64__ #define U32 unsigned #define I32 int #else #define U32 unsigned long #define I32 signed long #endif // // CC_NO_LONG_SUPPORT can be defined to compile test // without long support for compilers that do not // support C99 and its long type. // #ifdef CC_NO_LONG_SUPPORT #define PTR_ADDR U32 #else // Supports long type. #if defined(_WIN32) && !defined(__clang__) && !defined(__MINGW32__) // // Microsoft VC6 compiler related // #define U64 unsigned __int64 #define U128 unsigned __int128 #define I64 __int64 #define I128 __int128 #if _MSC_VER <= 1200 #define U64_C(x) x##UI64 #else #define U64_C(x) x##ULL #endif #else // // C99 compliant compiler // #define U64 unsigned long long #define I64 signed long long #define U64_C(x) x##ULL #endif #if (defined(_WIN64) || defined(__LP64__)) // 64-bit symbols used by Visual Studio and GCC, maybe others as well. #define PTR_ADDR U64 #else #define PTR_ADDR U32 #endif #endif // Supports long type. #endif // Avoid multiple inclusion /*************************** End of file ****************************/