summaryrefslogtreecommitdiff
path: root/plic.c
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-06-11 09:57:14 -0400
committerRobert Morris <[email protected]>2019-06-11 09:57:14 -0400
commit5753553213df8f9de851adb68377db43faecb91f (patch)
tree3b629ff54897fca414146677532cb459a2ed11ba /plic.c
parent91ba81110acd3163f7de3580b677eece0c57f5e7 (diff)
downloadxv6-labs-5753553213df8f9de851adb68377db43faecb91f.tar.gz
xv6-labs-5753553213df8f9de851adb68377db43faecb91f.tar.bz2
xv6-labs-5753553213df8f9de851adb68377db43faecb91f.zip
separate source into kernel/ user/ mkfs/
Diffstat (limited to 'plic.c')
-rw-r--r--plic.c63
1 files changed, 0 insertions, 63 deletions
diff --git a/plic.c b/plic.c
deleted file mode 100644
index 0f19ab0..0000000
--- a/plic.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include "types.h"
-#include "param.h"
-#include "memlayout.h"
-#include "riscv.h"
-#include "defs.h"
-
-//
-// the riscv Platform Level Interrupt Controller (PLIC).
-//
-
-void
-plicinit(void)
-{
- // set uart's priority to be non-zero (otherwise disabled).
- *(uint32*)(PLIC + UART0_IRQ*4) = 1;
-}
-
-void
-plicinithart(void)
-{
- int hart = cpuid();
-
- // set uart's enable bit for this hart's S-mode.
- //*(uint32*)(PLIC + 0x2080)= (1 << UART0_IRQ);
- *(uint32*)PLIC_SENABLE(hart)= (1 << UART0_IRQ);
-
- // set this hart's S-mode priority threshold to 0.
- //*(uint32*)(PLIC + 0x201000) = 0;
- *(uint32*)PLIC_SPRIORITY(hart) = 0;
-}
-
-// return a bitmap of which IRQs are waiting
-// to be served.
-uint64
-plic_pending(void)
-{
- uint64 mask;
-
- //mask = *(uint32*)(PLIC + 0x1000);
- //mask |= (uint64)*(uint32*)(PLIC + 0x1004) << 32;
- mask = *(uint64*)PLIC_PENDING;
-
- return mask;
-}
-
-// ask the PLIC what interrupt we should serve.
-int
-plic_claim(void)
-{
- int hart = cpuid();
- //int irq = *(uint32*)(PLIC + 0x201004);
- int irq = *(uint32*)PLIC_SCLAIM(hart);
- return irq;
-}
-
-// tell the PLIC we've served this IRQ.
-void
-plic_complete(int irq)
-{
- int hart = cpuid();
- //*(uint32*)(PLIC + 0x201004) = irq;
- *(uint32*)PLIC_SCLAIM(hart) = irq;
-}