// See LICENSE file for licence details #ifndef PLIC_DRIVER_H #define PLIC_DRIVER_H __BEGIN_DECLS #include "platform.h" typedef struct __plic_instance_t { uintptr_t base_addr; uint32_t num_sources; uint32_t num_priorities; } plic_instance_t; typedef uint32_t plic_source; typedef uint32_t plic_priority; typedef uint32_t plic_threshold; void PLIC_init ( plic_instance_t * this_plic, uintptr_t base_addr, uint32_t num_sources, uint32_t num_priorities ); void PLIC_set_threshold (plic_instance_t * this_plic, plic_threshold threshold); void PLIC_enable_interrupt (plic_instance_t * this_plic, plic_source source); void PLIC_disable_interrupt (plic_instance_t * this_plic, plic_source source); void PLIC_set_priority (plic_instance_t * this_plic, plic_source source, plic_priority priority); plic_source PLIC_claim_interrupt(plic_instance_t * this_plic); void PLIC_complete_interrupt(plic_instance_t * this_plic, plic_source source); __END_DECLS #endif