Print this page
5042 stop using deprecated atomic functions

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/intel/asm/atomic.h
          +++ new/usr/src/uts/intel/asm/atomic.h
↓ open down ↓ 30 lines elided ↑ open up ↑
  31   31  #include <sys/types.h>
  32   32  
  33   33  #ifdef  __cplusplus
  34   34  extern "C" {
  35   35  #endif
  36   36  
  37   37  #if !defined(__lint) && defined(__GNUC__)
  38   38  
  39   39  #if defined(__amd64)
  40   40  
  41      -extern __GNU_INLINE void
  42      -atomic_or_long(ulong_t *target, ulong_t bits)
  43      -{
  44      -        __asm__ __volatile__(
  45      -            "lock; orq %1, (%0)"
  46      -            : /* no output */
  47      -            : "r" (target), "r" (bits));
  48      -}
  49      -
  50      -extern __GNU_INLINE void
  51      -atomic_and_long(ulong_t *target, ulong_t bits)
  52      -{
  53      -        __asm__ __volatile__(
  54      -            "lock; andq %1, (%0)"
  55      -            : /* no output */
  56      -            : "r" (target), "r" (bits));
  57      -}
  58      -
  59      -#ifdef notdef
  60      -extern __GNU_INLINE uint64_t
  61      -cas64(uint64_t *target, uint64_t cmp,
  62      -        uint64_t newval)
  63      -{
  64      -        uint64_t retval;
  65      -
  66      -        __asm__ __volatile__(
  67      -            "movq %2, %%rax; lock; cmpxchgq %3, (%1)"
  68      -            : "=a" (retval)
  69      -            : "r" (target), "r" (cmp), "r" (newval));
  70      -        return (retval);
  71      -}
  72      -#endif
  73      -
  74   41  #elif defined(__i386)
  75   42  
  76      -extern __GNU_INLINE void
  77      -atomic_or_long(ulong_t *target, ulong_t bits)
  78      -{
  79      -        __asm__ __volatile__(
  80      -            "lock; orl %1, (%0)"
  81      -            : /* no output */
  82      -            : "r" (target), "r" (bits));
  83      -}
  84      -
  85      -extern __GNU_INLINE void
  86      -atomic_and_long(ulong_t *target, ulong_t bits)
  87      -{
  88      -        __asm__ __volatile__(
  89      -            "lock; andl %1, (%0)"
  90      -            : /* no output */
  91      -            : "r" (target), "r" (bits));
  92      -}
  93      -
  94   43  #else
  95   44  #error  "port me"
  96   45  #endif
  97   46  
  98   47  #endif /* !__lint && __GNUC__ */
  99   48  
 100   49  #ifdef __cplusplus
 101   50  }
 102   51  #endif
 103   52  
 104   53  #endif  /* _ASM_ATOMIC_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX