summaryrefslogtreecommitdiff
path: root/memlayout.h
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-06-05 14:05:46 -0400
committerRobert Morris <[email protected]>2019-06-05 14:05:46 -0400
commit31136437684b5987ef46f4c6947940cf96de75b3 (patch)
tree3c89b1f0e12bbddbf307259326ecb5f763ba6e09 /memlayout.h
parentf1a727b971a59bab6025b4c4111342c27356ca40 (diff)
downloadxv6-labs-31136437684b5987ef46f4c6947940cf96de75b3.tar.gz
xv6-labs-31136437684b5987ef46f4c6947940cf96de75b3.tar.bz2
xv6-labs-31136437684b5987ef46f4c6947940cf96de75b3.zip
spinlocks using gcc intrinsics
push_off() / pop_off() set up per-hart plic stuff so all harts get device interrupts
Diffstat (limited to 'memlayout.h')
-rw-r--r--memlayout.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/memlayout.h b/memlayout.h
index 9c9cfdb..462986c 100644
--- a/memlayout.h
+++ b/memlayout.h
@@ -28,6 +28,14 @@
// qemu puts programmable interrupt controller here.
#define PLIC 0x0c000000L
+#define PLIC_PRIORITY (PLIC + 0x0)
+#define PLIC_PENDING (PLIC + 0x1000)
+#define PLIC_MENABLE(hart) (PLIC + 0x2000 + (hart)*0x100)
+#define PLIC_SENABLE(hart) (PLIC + 0x2080 + (hart)*0x100)
+#define PLIC_MPRIORITY(hart) (PLIC + 0x200000 + (hart)*0x2000)
+#define PLIC_SPRIORITY(hart) (PLIC + 0x201000 + (hart)*0x2000)
+#define PLIC_MCLAIM(hart) (PLIC + 0x200004 + (hart)*0x2000)
+#define PLIC_SCLAIM(hart) (PLIC + 0x201004 + (hart)*0x2000)
#define RAMDISK 0x88000000L