aboutsummaryrefslogtreecommitdiff
path: root/machine/mtrap.h
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@cs.berkeley.edu>2016-05-22 02:37:33 -0700
committerAndrew Waterman <waterman@cs.berkeley.edu>2016-05-22 02:37:33 -0700
commit113d00e652fe6486a0ff76d0fa00557840529d58 (patch)
treef629b74d2f96874d30ffeb94f7ad386a28e1c791 /machine/mtrap.h
parent1bcab7872c6ae98ab86cdc1a3f567fd263e723d7 (diff)
downloadpk-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.h8
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