| 75 | volatile bool __read_frequently lockstat_enabled; |
| 76 | |
| 77 | uint64_t |
| 78 | lockstat_nsecs(struct lock_object *lo) |
| 79 | { |
| 80 | struct bintime bt; |
| 81 | uint64_t ns; |
| 82 | |
| 83 | if (!lockstat_enabled) |
| 84 | return (0); |
| 85 | if ((lo->lo_flags & LO_NOPROFILE) != 0) |
| 86 | return (0); |
| 87 | |
| 88 | binuptime(&bt); |
| 89 | ns = bt.sec * (uint64_t)1000000000; |
| 90 | ns += ((uint64_t)1000000000 * (uint32_t)(bt.frac >> 32)) >> 32; |
| 91 | return (ns); |
| 92 | } |
no test coverage detected