Print this page
remove support for non-ANSI compilation
*** 18,36 ****
*
* CDDL HEADER END
*/
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_ATOMIC_H
#define _SYS_ATOMIC_H
- #pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/types.h>
#include <sys/inttypes.h>
#ifdef __cplusplus
extern "C" {
--- 18,36 ----
*
* CDDL HEADER END
*/
/*
+ * Copyright 2014 Garrett D'Amore <garrett@damore.org>
+ *
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_ATOMIC_H
#define _SYS_ATOMIC_H
#include <sys/types.h>
#include <sys/inttypes.h>
#ifdef __cplusplus
extern "C" {
*** 39,49 ****
#if defined(_KERNEL) && defined(__GNUC__) && defined(_ASM_INLINES) && \
(defined(__i386) || defined(__amd64))
#include <asm/atomic.h>
#endif
- #if defined(_KERNEL) || defined(__STDC__)
/*
* Increment target.
*/
extern void atomic_inc_8(volatile uint8_t *);
extern void atomic_inc_uchar(volatile uchar_t *);
--- 39,48 ----
*** 52,62 ****
extern void atomic_inc_32(volatile uint32_t *);
extern void atomic_inc_uint(volatile uint_t *);
extern void atomic_inc_ulong(volatile ulong_t *);
#if defined(_KERNEL) || defined(_INT64_TYPE)
extern void atomic_inc_64(volatile uint64_t *);
- #endif
/*
* Decrement target
*/
extern void atomic_dec_8(volatile uint8_t *);
--- 51,60 ----
*** 264,410 ****
* after the available flag has been seen, i.e. it imposes load ordering.
*/
extern void membar_consumer(void);
#endif
- #if !defined(_KERNEL) && !defined(__STDC__)
- extern void atomic_inc_8();
- extern void atomic_inc_uchar();
- extern void atomic_inc_16();
- extern void atomic_inc_ushort();
- extern void atomic_inc_32();
- extern void atomic_inc_uint();
- extern void atomic_inc_ulong();
- #if defined(_INT64_TYPE)
- extern void atomic_inc_64();
- #endif /* defined(_INT64_TYPE) */
- extern void atomic_dec_8();
- extern void atomic_dec_uchar();
- extern void atomic_dec_16();
- extern void atomic_dec_ushort();
- extern void atomic_dec_32();
- extern void atomic_dec_uint();
- extern void atomic_dec_ulong();
- #if defined(_INT64_TYPE)
- extern void atomic_dec_64();
- #endif /* defined(_INT64_TYPE) */
- extern void atomic_add_8();
- extern void atomic_add_char();
- extern void atomic_add_16();
- extern void atomic_add_short();
- extern void atomic_add_32();
- extern void atomic_add_int();
- extern void atomic_add_ptr();
- extern void atomic_add_long();
- #if defined(_INT64_TYPE)
- extern void atomic_add_64();
- #endif /* defined(_INT64_TYPE) */
- extern void atomic_or_8();
- extern void atomic_or_uchar();
- extern void atomic_or_16();
- extern void atomic_or_ushort();
- extern void atomic_or_32();
- extern void atomic_or_uint();
- extern void atomic_or_ulong();
- #if defined(_INT64_TYPE)
- extern void atomic_or_64();
- #endif /* defined(_INT64_TYPE) */
- extern void atomic_and_8();
- extern void atomic_and_uchar();
- extern void atomic_and_16();
- extern void atomic_and_ushort();
- extern void atomic_and_32();
- extern void atomic_and_uint();
- extern void atomic_and_ulong();
- #if defined(_INT64_TYPE)
- extern void atomic_and_64();
- #endif /* defined(_INT64_TYPE) */
- extern uint8_t atomic_inc_8_nv();
- extern uchar_t atomic_inc_uchar_nv();
- extern uint16_t atomic_inc_16_nv();
- extern ushort_t atomic_inc_ushort_nv();
- extern uint32_t atomic_inc_32_nv();
- extern uint_t atomic_inc_uint_nv();
- extern ulong_t atomic_inc_ulong_nv();
- #if defined(_INT64_TYPE)
- extern uint64_t atomic_inc_64_nv();
- #endif /* defined(_INT64_TYPE) */
- extern uint8_t atomic_dec_8_nv();
- extern uchar_t atomic_dec_uchar_nv();
- extern uint16_t atomic_dec_16_nv();
- extern ushort_t atomic_dec_ushort_nv();
- extern uint32_t atomic_dec_32_nv();
- extern uint_t atomic_dec_uint_nv();
- extern ulong_t atomic_dec_ulong_nv();
- #if defined(_INT64_TYPE)
- extern uint64_t atomic_dec_64_nv();
- #endif /* defined(_INT64_TYPE) */
- extern uint8_t atomic_add_8_nv();
- extern uchar_t atomic_add_char_nv();
- extern uint16_t atomic_add_16_nv();
- extern ushort_t atomic_add_short_nv();
- extern uint32_t atomic_add_32_nv();
- extern uint_t atomic_add_int_nv();
- extern void *atomic_add_ptr_nv();
- extern ulong_t atomic_add_long_nv();
- #if defined(_INT64_TYPE)
- extern uint64_t atomic_add_64_nv();
- #endif /* defined(_INT64_TYPE) */
- extern uint8_t atomic_or_8_nv();
- extern uchar_t atomic_or_uchar_nv();
- extern uint16_t atomic_or_16_nv();
- extern ushort_t atomic_or_ushort_nv();
- extern uint32_t atomic_or_32_nv();
- extern uint_t atomic_or_uint_nv();
- extern ulong_t atomic_or_ulong_nv();
- #if defined(_INT64_TYPE)
- extern uint64_t atomic_or_64_nv();
- #endif /* defined(_INT64_TYPE) */
- extern uint8_t atomic_and_8_nv();
- extern uchar_t atomic_and_uchar_nv();
- extern uint16_t atomic_and_16_nv();
- extern ushort_t atomic_and_ushort_nv();
- extern uint32_t atomic_and_32_nv();
- extern uint_t atomic_and_uint_nv();
- extern ulong_t atomic_and_ulong_nv();
- #if defined(_INT64_TYPE)
- extern uint64_t atomic_and_64_nv();
- #endif /* defined(_INT64_TYPE) */
- extern uint8_t atomic_cas_8();
- extern uchar_t atomic_cas_uchar();
- extern uint16_t atomic_cas_16();
- extern ushort_t atomic_cas_ushort();
- extern uint32_t atomic_cas_32();
- extern uint_t atomic_cas_uint();
- extern void *atomic_cas_ptr();
- extern ulong_t atomic_cas_ulong();
- #if defined(_INT64_TYPE)
- extern uint64_t atomic_cas_64();
- #endif /* defined(_INT64_TYPE) */
- extern uint8_t atomic_swap_8();
- extern uchar_t atomic_swap_uchar();
- extern uint16_t atomic_swap_16();
- extern ushort_t atomic_swap_ushort();
- extern uint32_t atomic_swap_32();
- extern uint_t atomic_swap_uint();
- extern void *atomic_swap_ptr();
- extern ulong_t atomic_swap_ulong();
- #if defined(_INT64_TYPE)
- extern uint64_t atomic_swap_64();
- #endif /* defined(_INT64_TYPE) */
-
-
- extern int atomic_set_long_excl();
- extern int atomic_clear_long_excl();
-
- extern void membar_enter();
- extern void membar_exit();
- extern void membar_producer();
- extern void membar_consumer();
-
- #endif
-
#if defined(_KERNEL)
#if defined(_LP64) || defined(_ILP32)
#define atomic_add_ip atomic_add_long
#define atomic_add_ip_nv atomic_add_long_nv
--- 262,271 ----