diff options
author | Andrew Waterman <waterman@cs.berkeley.edu> | 2016-05-22 02:37:33 -0700 |
---|---|---|
committer | Andrew Waterman <waterman@cs.berkeley.edu> | 2016-05-22 02:37:33 -0700 |
commit | 113d00e652fe6486a0ff76d0fa00557840529d58 (patch) | |
tree | f629b74d2f96874d30ffeb94f7ad386a28e1c791 /machine/mtrap.h | |
parent | 1bcab7872c6ae98ab86cdc1a3f567fd263e723d7 (diff) | |
download | pk-113d00e652fe6486a0ff76d0fa00557840529d58.zip pk-113d00e652fe6486a0ff76d0fa00557840529d58.tar.gz pk-113d00e652fe6486a0ff76d0fa00557840529d58.tar.bz2 |
Add preliminary support for the interrupt controller
Diffstat (limited to 'machine/mtrap.h')
-rw-r--r-- | machine/mtrap.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/machine/mtrap.h b/machine/mtrap.h index b859a63..3a6fb22 100644 --- a/machine/mtrap.h +++ b/machine/mtrap.h @@ -13,6 +13,7 @@ #include "sbi.h" #include <stdint.h> +#include <stddef.h> #define read_const_csr(reg) ({ unsigned long __tmp; \ asm ("csrr %0, " #reg : "=r"(__tmp)); \ @@ -32,6 +33,8 @@ extern uintptr_t first_free_paddr; extern uintptr_t mem_size; extern uintptr_t num_harts; extern volatile uint64_t* mtime; +extern volatile uint16_t* plic_priorities; +extern size_t plic_ndevs; typedef struct { uint64_t* timecmp; @@ -46,6 +49,11 @@ typedef struct { uint64_t stime_delta; uint64_t scycle_delta; uint64_t sinstret_delta; + + volatile uint16_t* plic_m_thresh; + volatile uintptr_t* plic_m_ie; + volatile uint16_t* plic_s_thresh; + volatile uintptr_t* plic_s_ie; } hls_t; #define IPI_SOFT 0x1 |