1 // See LICENSE file for licence details
\r
3 #ifndef PLIC_DRIVER_H
\r
4 #define PLIC_DRIVER_H
\r
9 #include "platform.h"
\r
11 typedef struct __plic_instance_t
\r
13 uintptr_t base_addr;
\r
15 uint32_t num_sources;
\r
16 uint32_t num_priorities;
\r
20 typedef uint32_t plic_source;
\r
21 typedef uint32_t plic_priority;
\r
22 typedef uint32_t plic_threshold;
\r
25 plic_instance_t * this_plic,
\r
26 uintptr_t base_addr,
\r
27 uint32_t num_sources,
\r
28 uint32_t num_priorities
\r
31 void PLIC_set_threshold (plic_instance_t * this_plic,
\r
32 plic_threshold threshold);
\r
34 void PLIC_enable_interrupt (plic_instance_t * this_plic,
\r
35 plic_source source);
\r
37 void PLIC_disable_interrupt (plic_instance_t * this_plic,
\r
38 plic_source source);
\r
40 void PLIC_set_priority (plic_instance_t * this_plic,
\r
42 plic_priority priority);
\r
44 plic_source PLIC_claim_interrupt(plic_instance_t * this_plic);
\r
46 void PLIC_complete_interrupt(plic_instance_t * this_plic,
\r
47 plic_source source);
\r