| 755 | } |
| 756 | |
| 757 | void trap_background_set_complete(TrapContext *ctx) |
| 758 | { |
| 759 | if (!trap_is_indirect()) |
| 760 | return; |
| 761 | if (!ctx || !ctx->trap_background) |
| 762 | return; |
| 763 | atomic_dec(&ctx->trap_background); |
| 764 | if (!ctx->trap_background) { |
| 765 | if (!ctx->trap_done) { |
| 766 | write_log(_T("trap_background_set_complete(%d) still waiting!?\n"), ctx->tindex); |
| 767 | while (!ctx->trap_done); |
| 768 | } |
| 769 | hardware_trap_ack(ctx); |
| 770 | } |
| 771 | } |
| 772 | |
| 773 | void trap_dos_active(void) |
| 774 | { |
no test coverage detected