* Timer broadcast IPI handler. */
| 133 | * Timer broadcast IPI handler. |
| 134 | */ |
| 135 | int |
| 136 | hardclockintr(void) |
| 137 | { |
| 138 | sbintime_t now; |
| 139 | struct pcpu_state *state; |
| 140 | int done; |
| 141 | |
| 142 | if (doconfigtimer() || busy) |
| 143 | return (FILTER_HANDLED); |
| 144 | state = DPCPU_PTR(timerstate); |
| 145 | now = state->now; |
| 146 | CTR3(KTR_SPARE2, "ipi at %d: now %d.%08x", |
| 147 | curcpu, (int)(now >> 32), (u_int)(now & 0xffffffff)); |
| 148 | done = handleevents(now, 0); |
| 149 | return (done ? FILTER_HANDLED : FILTER_STRAY); |
| 150 | } |
| 151 | |
| 152 | /* |
| 153 | * Handle all events for specified time on this CPU |
no test coverage detected