| 14 | #define IRQ_DEFAULT_TIMER_INTERVAL 1000 |
| 15 | |
| 16 | typedef struct InterruptTrigger { |
| 17 | uc_hook hook_handle; |
| 18 | uint32_t irq; |
| 19 | uint16_t fuzz_mode; |
| 20 | uint8_t round_robin_index; |
| 21 | uint16_t skip_next; |
| 22 | uint32_t times_to_skip; /* Number of times to skip the basic block before triggering? */ |
| 23 | uint32_t times_to_pend; /* Number of times to pend at a time */ |
| 24 | uint32_t curr_skips; /* Currently already skipped */ |
| 25 | uint32_t curr_pends; /* Currently already pended */ |
| 26 | uint32_t trigger_mode; /* Mode of deriving interrupt trigger timings */ |
| 27 | uint32_t timer_id; /* The timer associated with the trigger */ |
| 28 | } InterruptTrigger; |
| 29 | |
| 30 | uc_hook add_interrupt_trigger(uc_engine *uc, uint64_t addr, uint32_t irq, uint32_t num_skips, uint32_t num_pends, uint32_t fuzz_mode, uint32_t trigger_mode, uint64_t every_nth_tick); |
| 31 | void init_interrupt_triggering(uc_engine *uc); |
nothing calls this directly
no outgoing calls
no test coverage detected