From 66c882e380656d45dec9019255d7a1106bb1f5ff Mon Sep 17 00:00:00 2001 From: Megan Wachs Date: Thu, 1 Dec 2016 14:17:20 -0800 Subject: Add missing file (#12) --- software/demo_gpio/plic_driver.h | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 software/demo_gpio/plic_driver.h (limited to 'software/demo_gpio') diff --git a/software/demo_gpio/plic_driver.h b/software/demo_gpio/plic_driver.h new file mode 100644 index 0000000..66410be --- /dev/null +++ b/software/demo_gpio/plic_driver.h @@ -0,0 +1,46 @@ +// See LICENSE file for licence details + +#ifndef PLIC_DRIVER_H +#define PLIC_DRIVER_H + +#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); + +#endif -- cgit v1.2.3