"Fossies" - the Fresh Open Source Software Archive

Member "apr-1.7.0/include/arch/unix/apr_arch_atomic.h" (7 Mar 2019, 1909 Bytes) of package /linux/www/apr-1.7.0.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "apr_arch_atomic.h" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 1.6.5_vs_1.7.0.

    1 /* Licensed to the Apache Software Foundation (ASF) under one or more
    2  * contributor license agreements.  See the NOTICE file distributed with
    3  * this work for additional information regarding copyright ownership.
    4  * The ASF licenses this file to You under the Apache License, Version 2.0
    5  * (the "License"); you may not use this file except in compliance with
    6  * the License.  You may obtain a copy of the License at
    7  *
    8  *     http://www.apache.org/licenses/LICENSE-2.0
    9  *
   10  * Unless required by applicable law or agreed to in writing, software
   11  * distributed under the License is distributed on an "AS IS" BASIS,
   12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   13  * See the License for the specific language governing permissions and
   14  * limitations under the License.
   15  */
   16 
   17 #ifndef ATOMIC_H
   18 #define ATOMIC_H
   19 
   20 #include "apr.h"
   21 #include "apr_pools.h"
   22 #include "apr_private.h"
   23 #include "apr_atomic.h"
   24 
   25 #if defined(USE_ATOMICS_GENERIC)
   26 /* noop */
   27 #elif HAVE_ATOMIC_BUILTINS
   28 #   define USE_ATOMICS_BUILTINS
   29 #elif defined(SOLARIS2) && SOLARIS2 >= 10
   30 #   define USE_ATOMICS_SOLARIS
   31 #   define NEED_ATOMICS_GENERIC64
   32 #elif defined(__GNUC__) && defined(__STRICT_ANSI__)
   33 /* force use of generic atomics if building e.g. with -std=c89, which
   34  * doesn't allow inline asm */
   35 #   define USE_ATOMICS_GENERIC
   36 #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
   37 #   define USE_ATOMICS_IA32
   38 #   define NEED_ATOMICS_GENERIC64
   39 #elif defined(__GNUC__) && (defined(__PPC__) || defined(__ppc__))
   40 #   define USE_ATOMICS_PPC
   41 #   define NEED_ATOMICS_GENERIC64
   42 #elif defined(__GNUC__) && (defined(__s390__) || defined(__s390x__))
   43 #   define USE_ATOMICS_S390
   44 #   define NEED_ATOMICS_GENERIC64
   45 #else
   46 #   define USE_ATOMICS_GENERIC
   47 #endif
   48 
   49 #if defined(USE_ATOMICS_GENERIC) || defined (NEED_ATOMICS_GENERIC64)
   50 apr_status_t apr__atomic_generic64_init(apr_pool_t *p);
   51 #endif
   52 
   53 #endif /* ATOMIC_H */