1 /********************************************************************* 2 * SEGGER Microcontroller GmbH * 3 * The Embedded Experts * 4 ********************************************************************** 5 * * 6 * (c) 1995 - 2021 SEGGER Microcontroller GmbH * 7 * * 8 * www.segger.com Support: support@segger.com * 9 * * 10 ********************************************************************** 11 * * 12 * SEGGER SystemView * Real-time application analysis * 13 * * 14 ********************************************************************** 15 * * 16 * All rights reserved. * 17 * * 18 * SEGGER strongly recommends to not make any changes * 19 * to or modify the source code of this software in order to stay * 20 * compatible with the SystemView and RTT protocol, and J-Link. * 21 * * 22 * Redistribution and use in source and binary forms, with or * 23 * without modification, are permitted provided that the following * 24 * condition is met: * 25 * * 26 * o Redistributions of source code must retain the above copyright * 27 * notice, this condition and the following disclaimer. * 28 * * 29 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND * 30 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * 31 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * 32 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * 33 * DISCLAIMED. IN NO EVENT SHALL SEGGER Microcontroller BE LIABLE FOR * 34 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * 35 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * 36 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * 37 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * 38 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * 39 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * 40 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * 41 * DAMAGE. * 42 * * 43 ********************************************************************** 44 * * 45 * SystemView version: 3.40 * 46 * * 47 ********************************************************************** 48 ---------------------------------------------------------------------- 49 File : Global.h 50 Purpose : Global types 51 In case your application already has a Global.h, you should 52 merge the files. In order to use Segger code, the types 53 U8, U16, U32, I8, I16, I32 need to be defined in Global.h; 54 additional definitions do not hurt. 55 Revision: $Rev: 12501 $ 56 ---------------------------END-OF-HEADER------------------------------ 57 */ 58 59 #ifndef GLOBAL_H // Guard against multiple inclusion 60 #define GLOBAL_H 61 62 #define U8 unsigned char 63 #define I8 signed char 64 #define U16 unsigned short 65 #define I16 signed short 66 #ifdef __x86_64__ 67 #define U32 unsigned 68 #define I32 int 69 #else 70 #define U32 unsigned long 71 #define I32 signed long 72 #endif 73 74 // 75 // CC_NO_LONG_SUPPORT can be defined to compile test 76 // without long support for compilers that do not 77 // support C99 and its long type. 78 // 79 #ifdef CC_NO_LONG_SUPPORT 80 #define PTR_ADDR U32 81 #else // Supports long type. 82 #if defined(_WIN32) && !defined(__clang__) && !defined(__MINGW32__) 83 // 84 // Microsoft VC6 compiler related 85 // 86 #define U64 unsigned __int64 87 #define U128 unsigned __int128 88 #define I64 __int64 89 #define I128 __int128 90 #if _MSC_VER <= 1200 91 #define U64_C(x) x##UI64 92 #else 93 #define U64_C(x) x##ULL 94 #endif 95 #else 96 // 97 // C99 compliant compiler 98 // 99 #define U64 unsigned long long 100 #define I64 signed long long 101 #define U64_C(x) x##ULL 102 #endif 103 104 #if (defined(_WIN64) || defined(__LP64__)) // 64-bit symbols used by Visual Studio and GCC, maybe others as well. 105 #define PTR_ADDR U64 106 #else 107 #define PTR_ADDR U32 108 #endif 109 #endif // Supports long type. 110 111 #endif // Avoid multiple inclusion 112 113 /*************************** End of file ****************************/ 114