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

*** 25,36 **** */ #ifndef _SYS_PCI_AXQ_H #define _SYS_PCI_AXQ_H - #pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/types.h> #include <sys/atomic.h> #ifdef __cplusplus extern "C" { --- 25,34 ----
*** 40,61 **** int n;\ for (;;) {\ do {\ n = p->pbm_pio_counter;\ } while (n <= 0);\ ! if (atomic_add_32_nv(\ ! (uint_t *)&p->pbm_pio_counter, -1)\ == (n - 1))\ break;\ ! atomic_add_32(\ ! (uint_t *)&p->pbm_pio_counter, 1);\ }\ } ! #define PIO_LIMIT_EXIT(p) atomic_add_32((uint_t *)&p->pbm_pio_counter, 1); extern void pci_axq_setup(ddi_map_req_t *mp, pbm_t *pbm_p); extern void pci_axq_pio_limit(pbm_t *pbm_p); #ifdef __cplusplus --- 38,59 ---- int n;\ for (;;) {\ do {\ n = p->pbm_pio_counter;\ } while (n <= 0);\ ! if (atomic_dec_32_nv(\ ! (uint_t *)&p->pbm_pio_counter)\ == (n - 1))\ break;\ ! atomic_inc_32(\ ! (uint_t *)&p->pbm_pio_counter);\ }\ } ! #define PIO_LIMIT_EXIT(p) atomic_inc_32((uint_t *)&p->pbm_pio_counter); extern void pci_axq_setup(ddi_map_req_t *mp, pbm_t *pbm_p); extern void pci_axq_pio_limit(pbm_t *pbm_p); #ifdef __cplusplus