xref: /oneTBB/src/tbbmalloc/TypeDefinitions.h (revision 7b8018f0)
151c0b2f7Stbbdev /*
2*7b8018f0SBrecht Sanders     Copyright (c) 2005-2023 Intel Corporation
351c0b2f7Stbbdev 
451c0b2f7Stbbdev     Licensed under the Apache License, Version 2.0 (the "License");
551c0b2f7Stbbdev     you may not use this file except in compliance with the License.
651c0b2f7Stbbdev     You may obtain a copy of the License at
751c0b2f7Stbbdev 
851c0b2f7Stbbdev         http://www.apache.org/licenses/LICENSE-2.0
951c0b2f7Stbbdev 
1051c0b2f7Stbbdev     Unless required by applicable law or agreed to in writing, software
1151c0b2f7Stbbdev     distributed under the License is distributed on an "AS IS" BASIS,
1251c0b2f7Stbbdev     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1351c0b2f7Stbbdev     See the License for the specific language governing permissions and
1451c0b2f7Stbbdev     limitations under the License.
1551c0b2f7Stbbdev */
1651c0b2f7Stbbdev 
1751c0b2f7Stbbdev #ifndef _itt_shared_malloc_TypeDefinitions_H_
1851c0b2f7Stbbdev #define _itt_shared_malloc_TypeDefinitions_H_
1951c0b2f7Stbbdev 
2051c0b2f7Stbbdev // Define preprocessor symbols used to determine architecture
2151c0b2f7Stbbdev #if _WIN32||_WIN64
2251c0b2f7Stbbdev #   if defined(_M_X64)||defined(__x86_64__)  // the latter for MinGW support
2351c0b2f7Stbbdev #       define __ARCH_x86_64 1
2451c0b2f7Stbbdev #   elif defined(_M_IA64)
2551c0b2f7Stbbdev #       define __ARCH_ipf 1
2651c0b2f7Stbbdev #   elif defined(_M_IX86)||defined(__i386__) // the latter for MinGW support
2751c0b2f7Stbbdev #       define __ARCH_x86_32 1
28*7b8018f0SBrecht Sanders #   elif defined(_M_ARM) || defined(_M_ARM64) || defined(__aarch64__) // the latter for MinGW support
2951c0b2f7Stbbdev #       define __ARCH_other 1
3051c0b2f7Stbbdev #   else
3151c0b2f7Stbbdev #       error Unknown processor architecture for Windows
3251c0b2f7Stbbdev #   endif
3351c0b2f7Stbbdev #   define USE_WINTHREAD 1
3451c0b2f7Stbbdev #else /* Assume generic Unix */
3551c0b2f7Stbbdev #   if __x86_64__
3651c0b2f7Stbbdev #       define __ARCH_x86_64 1
3751c0b2f7Stbbdev #   elif __ia64__
3851c0b2f7Stbbdev #       define __ARCH_ipf 1
3951c0b2f7Stbbdev #   elif __i386__ || __i386
4051c0b2f7Stbbdev #       define __ARCH_x86_32 1
4151c0b2f7Stbbdev #   else
4251c0b2f7Stbbdev #       define __ARCH_other 1
4351c0b2f7Stbbdev #   endif
4451c0b2f7Stbbdev #   define USE_PTHREAD 1
4551c0b2f7Stbbdev #endif
4651c0b2f7Stbbdev 
4751c0b2f7Stbbdev // According to C99 standard INTPTR_MIN defined for C++
4851c0b2f7Stbbdev // iff __STDC_LIMIT_MACROS pre-defined
4951c0b2f7Stbbdev #ifndef __STDC_LIMIT_MACROS
5051c0b2f7Stbbdev #define __STDC_LIMIT_MACROS 1
5151c0b2f7Stbbdev #endif
5251c0b2f7Stbbdev 
5351c0b2f7Stbbdev //! PROVIDE YOUR OWN Customize.h IF YOU FEEL NECESSARY
5451c0b2f7Stbbdev #include "Customize.h"
5551c0b2f7Stbbdev 
5651c0b2f7Stbbdev #include "shared_utils.h"
5751c0b2f7Stbbdev 
5851c0b2f7Stbbdev #endif /* _itt_shared_malloc_TypeDefinitions_H_ */
59