Print this page
5045 use atomic_{inc,dec}_* instead of atomic_add_*

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/inet/ipf/netinet/ip_compat.h
          +++ new/usr/src/uts/common/inet/ipf/netinet/ip_compat.h
↓ open down ↓ 232 lines elided ↑ open up ↑
 233  233  # ifdef _KERNEL
 234  234  #  define       KRWLOCK_T               krwlock_t
 235  235  #  define       KMUTEX_T                kmutex_t
 236  236  #  if SOLARIS2 >= 10
 237  237  #   include <sys/sdt.h>
 238  238  
 239  239  #   define IPF_IS_LOOPBACK(f)   ((f) & FI_NOCKSUM)
 240  240  #  endif /* SOLARIS2 >= 10 */
 241  241  #  if SOLARIS2 >= 6
 242  242  #   if SOLARIS2 == 6
 243      -#    define     ATOMIC_INCL(x)          atomic_add_long((uint32_t*)&(x), 1)
 244      -#    define     ATOMIC_DECL(x)          atomic_add_long((uint32_t*)&(x), -1)
      243 +#    define     ATOMIC_INCL(x)          atomic_inc_ulong((uint32_t *)&(x))
      244 +#    define     ATOMIC_DECL(x)          atomic_dec_ulong((uint32_t *)&(x))
 245  245  #   else
 246      -#    define     ATOMIC_INCL(x)          atomic_add_long(&(x), 1)
 247      -#    define     ATOMIC_DECL(x)          atomic_add_long(&(x), -1)
      246 +#    define     ATOMIC_INCL(x)          atomic_inc_ulong(&(x))
      247 +#    define     ATOMIC_DECL(x)          atomic_dec_ulong(&(x))
 248  248  #   endif /* SOLARIS2 == 6 */
 249      -#   define      ATOMIC_INC64(x)         atomic_add_64((uint64_t*)&(x), 1)
 250      -#   define      ATOMIC_INC32(x)         atomic_add_32((uint32_t*)&(x), 1)
 251      -#   define      ATOMIC_INC16(x)         atomic_add_16((uint16_t*)&(x), 1)
 252      -#   define      ATOMIC_DEC64(x)         atomic_add_64((uint64_t*)&(x), -1)
 253      -#   define      ATOMIC_DEC32(x)         atomic_add_32((uint32_t*)&(x), -1)
 254      -#   define      ATOMIC_DEC16(x)         atomic_add_16((uint16_t*)&(x), -1)
      249 +#   define      ATOMIC_INC64(x)         atomic_inc_64((uint64_t *)&(x))
      250 +#   define      ATOMIC_INC32(x)         atomic_inc_32((uint32_t *)&(x))
      251 +#   define      ATOMIC_INC16(x)         atomic_inc_16((uint16_t *)&(x))
      252 +#   define      ATOMIC_DEC64(x)         atomic_dec_64((uint64_t *)&(x))
      253 +#   define      ATOMIC_DEC32(x)         atomic_dec_32((uint32_t *)&(x))
      254 +#   define      ATOMIC_DEC16(x)         atomic_dec_16((uint16_t *)&(x))
 255  255  #  else
 256  256  #   define      ATOMIC_INC(x)           { mutex_enter(&ipf_rw); (x)++; \
 257  257                                            mutex_exit(&ipf_rw); }
 258  258  #   define      ATOMIC_DEC(x)           { mutex_enter(&ipf_rw); (x)--; \
 259  259                                            mutex_exit(&ipf_rw); }
 260  260  #  endif /* SOLARIS2 >= 6 */
 261  261  #  define       USE_MUTEXES
 262  262  #  define       MUTEX_ENTER(x)          mutex_enter(&(x)->ipf_lk)
 263  263  #  define       READ_ENTER(x)           rw_enter(&(x)->ipf_lk, RW_READER)
 264  264  #  define       WRITE_ENTER(x)          rw_enter(&(x)->ipf_lk, RW_WRITER)
↓ open down ↓ 653 lines elided ↑ open up ↑
 918  918                                              else \
 919  919                                                  sx_sunlock(&(x)->ipf_lk); \
 920  920                                          } while (0)
 921  921  #    endif
 922  922  #   endif
 923  923  #   include <machine/atomic.h>
 924  924  #   define      ATOMIC_INC(x)           { mtx_lock(&ipf_rw.ipf_lk); (x)++; \
 925  925                                            mtx_unlock(&ipf_rw.ipf_lk); }
 926  926  #   define      ATOMIC_DEC(x)           { mtx_lock(&ipf_rw.ipf_lk); (x)--; \
 927  927                                            mtx_unlock(&ipf_rw.ipf_lk); }
 928      -#   define      ATOMIC_INCL(x)          atomic_add_long(&(x), 1)
      928 +#   define      ATOMIC_INCL(x)          atomic_inc_ulong(&(x))
 929  929  #   define      ATOMIC_INC64(x)         ATOMIC_INC(x)
 930      -#   define      ATOMIC_INC32(x)         atomic_add_32(&(x), 1)
 931      -#   define      ATOMIC_INC16(x)         atomic_add_16(&(x), 1)
 932      -#   define      ATOMIC_DECL(x)          atomic_add_long(&(x), -1)
      930 +#   define      ATOMIC_INC32(x)         atomic_inc_32(&(x))
      931 +#   define      ATOMIC_INC16(x)         atomic_inc_16(&(x))
      932 +#   define      ATOMIC_DECL(x)          atomic_dec_ulong(&(x))
 933  933  #   define      ATOMIC_DEC64(x)         ATOMIC_DEC(x)
 934      -#   define      ATOMIC_DEC32(x)         atomic_add_32(&(x), -1)
 935      -#   define      ATOMIC_DEC16(x)         atomic_add_16(&(x), -1)
      934 +#   define      ATOMIC_DEC32(x)         atomic_dec_32(&(x))
      935 +#   define      ATOMIC_DEC16(x)         atomic_dec_16(&(x))
 936  936  #   define      SPL_X(x)        ;
 937  937  #   define      SPL_NET(x)      ;
 938  938  #   define      SPL_IMP(x)      ;
 939  939  extern  int     in_cksum __P((struct mbuf *, int));
 940  940  #  endif /* __FreeBSD_version >= 500043 */
 941  941  #  define       MSGDSIZE(x)     mbufchainlen(x)
 942  942  #  define       M_LEN(x)        (x)->m_len
 943  943  #  define       M_DUPLICATE(x)  m_copy((x), 0, M_COPYALL)
 944  944  #  define       IPF_PANIC(x,y)  if (x) { printf y; panic("ipf_panic"); }
 945  945  typedef struct mbuf mb_t;
↓ open down ↓ 1549 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX