17 #if !defined(__TBB_machine_H) || defined(__TBB_machine_macos_common_H)    18 #error Do not #include this internal file directly; use public TBB headers instead.    21 #define __TBB_machine_macos_common_H    24 #define __TBB_Yield()  sched_yield()    28 #include <sys/types.h>    29 #include <sys/sysctl.h>    32     int name[2] = {CTL_HW, HW_AVAILCPU};
    34     size_t size = 
sizeof(ncpu);
    35     sysctl( 
name, 2, &ncpu, &
size, NULL, 0 );
    39 #define __TBB_HardwareConcurrency() __TBB_macos_available_cpu()    41 #ifndef __TBB_full_memory_fence    44     #define __TBB_UnknownArchitecture 1    47 #if __TBB_UnknownArchitecture    49 #include <libkern/OSAtomic.h>    54     int64_t* 
address = (int64_t*)ptr;
    55     while( !OSAtomicCompareAndSwap64Barrier(comparand, 
value, 
address) ){
    59         int64_t snapshot = OSAtomicAdd64( 0, 
address );
    61         if( snapshot!=comparand ) 
return snapshot;
    66 #define __TBB_machine_cmpswp8 __TBB_machine_cmpswp8_OsX    70 #if __TBB_UnknownArchitecture    72 #ifndef __TBB_WORDSIZE    73 #define __TBB_WORDSIZE __SIZEOF_POINTER__    76 #ifdef __TBB_ENDIANNESS    79     #define __TBB_ENDIANNESS __TBB_ENDIAN_BIG    80 #elif __LITTLE_ENDIAN__    81     #define __TBB_ENDIANNESS __TBB_ENDIAN_LITTLE    83     #define __TBB_ENDIANNESS __TBB_ENDIAN_UNSUPPORTED    91 #define __TBB_control_consistency_helper() OSMemoryBarrier()    92 #define __TBB_acquire_consistency_helper() OSMemoryBarrier()    93 #define __TBB_release_consistency_helper() OSMemoryBarrier()    94 #define __TBB_full_memory_fence()          OSMemoryBarrier()    99     int32_t* 
address = (int32_t*)ptr;
   100     while( !OSAtomicCompareAndSwap32Barrier(comparand, 
value, 
address) ){
   102         if( snapshot!=comparand ) 
return snapshot;
   110     return OSAtomicAdd32Barrier(addend, (int32_t*)ptr) - addend;
   116     return OSAtomicAdd64Barrier(addend, (int64_t*)ptr) - addend;
   119 #define __TBB_USE_GENERIC_PART_WORD_CAS                     1   120 #define __TBB_USE_GENERIC_PART_WORD_FETCH_ADD               1   121 #define __TBB_USE_GENERIC_FETCH_STORE                       1   122 #define __TBB_USE_GENERIC_HALF_FENCED_LOAD_STORE            1   123 #define __TBB_USE_GENERIC_RELAXED_LOAD_STORE                1   124 #if __TBB_WORDSIZE == 4   125     #define __TBB_USE_GENERIC_DWORD_LOAD_STORE              1   127 #define __TBB_USE_GENERIC_SEQUENTIAL_CONSISTENCY_LOAD_STORE 1 static int __TBB_macos_available_cpu()
 
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t size
 
bool is_aligned(T *pointer, uintptr_t alignment)
A function to check if passed in pointer is aligned on a specific border.
 
static int64_t __TBB_machine_cmpswp8_OsX(volatile void *ptr, int64_t value, int64_t comparand)
 
static int64_t __TBB_machine_fetchadd8(volatile void *ptr, int64_t addend)
 
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void * address
 
void const char const char int ITT_FORMAT __itt_group_sync x void const char * name
 
static int32_t __TBB_machine_fetchadd4(volatile void *ptr, int32_t addend)
 
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
 
static int32_t __TBB_machine_cmpswp4(volatile void *ptr, int32_t value, int32_t comparand)
 
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value