+ if (xstats_ctrl->info[i].ib) {
+ uint64_t wrap_n;
+ uint64_t hw_stat = xstats_ctrl->hw_stats[i];
+
+ stats[i].value = (counters[i] -
+ xstats_ctrl->base[i]) &
+ (uint64_t)UINT32_MAX;
+ wrap_n = hw_stat >> 32;
+ if (stats[i].value <
+ (hw_stat & (uint64_t)UINT32_MAX))
+ wrap_n++;
+ stats[i].value |= (wrap_n) << 32;
+ xstats_ctrl->hw_stats[i] = stats[i].value;
+ } else {
+ stats[i].value =
+ (counters[i] - xstats_ctrl->base[i]);
+ }