#ifndef GPS_INT_HAND #define GPS_INT_HAND #include "gps_ip_defines.h" typedef struct { uint32_t event_overflow_total; uint32_t plic_drain_limit_total; uint32_t plic_repeat_total; uint32_t nav_epoch_coalesced_total; uint32_t satellite_connected_total; uint32_t satellite_lost_total; uint32_t last_connected_prn; uint32_t last_lost_prn; uint64_t last_connected_tick; uint64_t last_lost_tick; } gps_runtime_diagnostics_t; bool assign_tracking_from_result(const gps_acq_result_t* result); void acq_intr_handler(unsigned char engine_id); void gps_dispatch_irq(unsigned int irq_id); void gps_irq_handler(void) GPS_IRQ_HANDLER_ATTR; void gps_process_isr_events(void); void gps_acq_scheduler_run(void); void gps_background_task(void); bool gps_take_nav_solve_period_ready(void); void gps_get_runtime_diagnostics(gps_runtime_diagnostics_t* diagnostics); void trck_intr_handler(volatile gps_trck_t* const trck_ip, volatile gps_frame_t *gps_frame_parsed, volatile int unsigned gps_subframe[10], unsigned char trck_ip_no); #endif