90a91,93
> postFiqEvent[x] =
> new EventFunctionWrapper([this, x]{ postDelayedFiq(x); },
> "Post FIQ to CPU");
100c103
< for (int x = 0; x < CPU_MAX; x++)
---
> for (int x = 0; x < CPU_MAX; x++) {
101a105,106
> delete postFiqEvent[x];
> }
917a923,941
> void
> GicV2::postFiq(uint32_t cpu, Tick when)
> {
> if (!(postFiqEvent[cpu]->scheduled())) {
> ++pendingDelayedInterrupts;
> eventq->schedule(postFiqEvent[cpu], when);
> }
> }
>
> void
> GicV2::postDelayedFiq(uint32_t cpu)
> {
> platform->intrctrl->post(cpu, ArmISA::INT_FIQ, 0);
> --pendingDelayedInterrupts;
> assert(pendingDelayedInterrupts >= 0);
> if (pendingDelayedInterrupts == 0)
> signalDrainDone();
> }
>