diff --git a/tools/include/atrf.h b/tools/include/atrf.h index d5e4e11..c83ee50 100644 --- a/tools/include/atrf.h +++ b/tools/include/atrf.h @@ -56,5 +56,6 @@ void atrf_sram_write(struct atrf_dsc *dsc, uint8_t addr, uint8_t value); uint8_t atrf_sram_read(struct atrf_dsc *dsc, uint8_t addr); int atrf_interrupt(struct atrf_dsc *dsc); +int atrf_interrupt_wait(struct atrf_dsc *dsc, int timeout_ms); #endif /* !ATRF_H */ diff --git a/tools/lib/atrf.c b/tools/lib/atrf.c index f88ec88..aaf1c15 100644 --- a/tools/lib/atrf.c +++ b/tools/lib/atrf.c @@ -323,3 +323,10 @@ int atrf_interrupt(struct atrf_dsc *dsc) return dsc->driver->interrupt ? dsc->driver->interrupt(dsc->handle) : 1; } + + +int atrf_interrupt_wait(struct atrf_dsc *dsc, int timeout_ms) +{ + return dsc->driver->interrupt_wait ? + dsc->driver->interrupt_wait(dsc->handle, timeout_ms) : -1; +} diff --git a/tools/lib/driver.h b/tools/lib/driver.h index cf05a9f..727f138 100644 --- a/tools/lib/driver.h +++ b/tools/lib/driver.h @@ -36,6 +36,7 @@ struct atrf_driver { void (*sram_write)(void *dsc, uint8_t addr, uint8_t value); uint8_t (*sram_read)(void *dsc, uint8_t addr); int (*interrupt)(void *dsc); + int (*interrupt_wait)(void *dsc, int timeout_ms); };