diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 06:23:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 06:23:09 +0000 |
commit | 30d479c28c831a0d4f1fdb54a9e346b0fc176be1 (patch) | |
tree | aa35d7414ce9f1326abf6f723f6dfa5b0aa08b1d /include/arch/unix/apr_arch_atomic.h | |
parent | Initial commit. (diff) | |
download | apr-30d479c28c831a0d4f1fdb54a9e346b0fc176be1.tar.xz apr-30d479c28c831a0d4f1fdb54a9e346b0fc176be1.zip |
Adding upstream version 1.7.2.upstream/1.7.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'include/arch/unix/apr_arch_atomic.h')
-rw-r--r-- | include/arch/unix/apr_arch_atomic.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/include/arch/unix/apr_arch_atomic.h b/include/arch/unix/apr_arch_atomic.h new file mode 100644 index 0000000..ce771ad --- /dev/null +++ b/include/arch/unix/apr_arch_atomic.h @@ -0,0 +1,60 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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. + */ + +#ifndef ATOMIC_H +#define ATOMIC_H + +#include "apr.h" +#include "apr_pools.h" +#include "apr_private.h" +#include "apr_atomic.h" + +#if defined(USE_ATOMICS_GENERIC) +/* noop */ +#elif HAVE_ATOMIC_BUILTINS +# define USE_ATOMICS_BUILTINS +# if HAVE_ATOMIC_BUILTINS64 +# define USE_ATOMICS_BUILTINS64 +# else +# define NEED_ATOMICS_GENERIC64 +# endif +#elif defined(SOLARIS2) && SOLARIS2 >= 10 +# define USE_ATOMICS_SOLARIS +# define NEED_ATOMICS_GENERIC64 +#elif defined(__GNUC__) && defined(__STRICT_ANSI__) +/* force use of generic atomics if building e.g. with -std=c89, which + * doesn't allow inline asm */ +# define USE_ATOMICS_GENERIC +#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) +# define USE_ATOMICS_IA32 +# define NEED_ATOMICS_GENERIC64 +#elif defined(__GNUC__) && (defined(__powerpc__) \ + || defined(__PPC__) \ + || defined(__ppc__)) +# define USE_ATOMICS_PPC +# define NEED_ATOMICS_GENERIC64 +#elif defined(__GNUC__) && (defined(__s390__) || defined(__s390x__)) +# define USE_ATOMICS_S390 +# define NEED_ATOMICS_GENERIC64 +#else +# define USE_ATOMICS_GENERIC +#endif + +#if defined(USE_ATOMICS_GENERIC) || defined (NEED_ATOMICS_GENERIC64) +apr_status_t apr__atomic_generic64_init(apr_pool_t *p); +#endif + +#endif /* ATOMIC_H */ |