18ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com/* 28ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * Copyright 2012 The Android Open Source Project 38ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * 48ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * Use of this source code is governed by a BSD-style license that can be 58ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * found in the LICENSE file. 68ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com */ 78ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com 88ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com#ifndef ANDROID_CUTILS_COMPILER_H 98ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com#define ANDROID_CUTILS_COMPILER_H 108ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com 118ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com/* 128ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * helps the compiler's optimizer predicting branches 138ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com */ 148ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com 158ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com#ifdef __cplusplus 168ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com# define CC_LIKELY( exp ) (__builtin_expect( !!(exp), true )) 178ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com# define CC_UNLIKELY( exp ) (__builtin_expect( !!(exp), false )) 188ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com#else 198ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com# define CC_LIKELY( exp ) (__builtin_expect( !!(exp), 1 )) 208ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com# define CC_UNLIKELY( exp ) (__builtin_expect( !!(exp), 0 )) 218ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com#endif 228ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com 238ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com/** 248ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * exports marked symbols 258ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * 268ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * if used on a C++ class declaration, this macro must be inserted 278ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * after the "class" keyword. For instance: 288ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * 298ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * template <typename TYPE> 308ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com * class ANDROID_API Singleton { } 318ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com */ 328ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com 338ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com#define ANDROID_API __attribute__((visibility("default"))) 348ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com 358ffb7046cb789ade4dde1ad588fb8ae995fd3f9ajvanverth@google.com#endif // ANDROID_CUTILS_COMPILER_H 36