resolver_internal.h   [plain text]


/*
 * Copyright (c) 2015 Apple Inc. All rights reserved.
 *
 * @APPLE_APACHE_LICENSE_HEADER_START@
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * @APPLE_APACHE_LICENSE_HEADER_END@
 */

#ifndef __PTHREAD_RESOLVER_INTERNAL_H__
#define __PTHREAD_RESOLVER_INTERNAL_H__

#include <os/base.h>
#include <TargetConditionals.h>
#include <machine/cpu_capabilities.h>
#if defined(__arm__)
#include <arm/arch.h>
#endif

#if !defined(PTHREAD_TARGET_EOS) && !defined(VARIANT_DYLD) && \
     defined(_ARM_ARCH_7) && !defined(__ARM_ARCH_7S__)

#if OS_ATOMIC_UP
#define OS_VARIANT_SELECTOR up
#else
#define OS_VARIANT_SELECTOR mp
#endif

#endif // !PTHREAD_TARGET_EOS && !VARIANT_DYLD && _ARM_ARCH_7 && !__ARM_ARCH_7S__

#define OS_VARIANT(f, v) OS_CONCAT(f, OS_CONCAT($VARIANT$, v))

#ifdef OS_VARIANT_SELECTOR
#define PTHREAD_NOEXPORT_VARIANT  PTHREAD_NOEXPORT
#else
#define PTHREAD_NOEXPORT_VARIANT
#endif

#endif // __PTHREAD_RESOLVER_H__