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


2605 
2606         return (err);
2607 }
2608 
2609 #ifdef BSCBUS_LOGSTATUS
2610 void bscbus_cmd_log(struct bscbus_channel_state *csp, bsc_cmd_stamp_t cat,
2611     uint8_t status, uint8_t data)
2612 {
2613         int idx;
2614         bsc_cmd_log_t *logp;
2615         struct bscbus_state *ssp;
2616 
2617         if ((csp) == NULL)
2618                 return;
2619         if ((ssp = (csp)->ssp) == NULL)
2620                 return;
2621         if (ssp->cmd_log_size == 0)
2622                 return;
2623         if ((bscbus_cmd_log_flags & (1 << cat)) == 0)
2624                 return;
2625         idx = atomic_add_32_nv(&ssp->cmd_log_idx, 1);
2626         logp = &ssp->cmd_log[idx % ssp->cmd_log_size];
2627         logp->bcl_seq = idx;
2628         logp->bcl_cat = cat;
2629         logp->bcl_now = gethrtime();
2630         logp->bcl_chno = csp->chno;
2631         logp->bcl_cmdstate = csp->cmdstate;
2632         logp->bcl_status = status;
2633         logp->bcl_data = data;
2634 }
2635 #endif /* BSCBUS_LOGSTATUS */


2605 
2606         return (err);
2607 }
2608 
2609 #ifdef BSCBUS_LOGSTATUS
2610 void bscbus_cmd_log(struct bscbus_channel_state *csp, bsc_cmd_stamp_t cat,
2611     uint8_t status, uint8_t data)
2612 {
2613         int idx;
2614         bsc_cmd_log_t *logp;
2615         struct bscbus_state *ssp;
2616 
2617         if ((csp) == NULL)
2618                 return;
2619         if ((ssp = (csp)->ssp) == NULL)
2620                 return;
2621         if (ssp->cmd_log_size == 0)
2622                 return;
2623         if ((bscbus_cmd_log_flags & (1 << cat)) == 0)
2624                 return;
2625         idx = atomic_inc_32_nv(&ssp->cmd_log_idx);
2626         logp = &ssp->cmd_log[idx % ssp->cmd_log_size];
2627         logp->bcl_seq = idx;
2628         logp->bcl_cat = cat;
2629         logp->bcl_now = gethrtime();
2630         logp->bcl_chno = csp->chno;
2631         logp->bcl_cmdstate = csp->cmdstate;
2632         logp->bcl_status = status;
2633         logp->bcl_data = data;
2634 }
2635 #endif /* BSCBUS_LOGSTATUS */