From 5753553213df8f9de851adb68377db43faecb91f Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Tue, 11 Jun 2019 09:57:14 -0400 Subject: separate source into kernel/ user/ mkfs/ --- plic.c | 63 --------------------------------------------------------------- 1 file changed, 63 deletions(-) delete mode 100644 plic.c (limited to 'plic.c') 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; -} -- cgit v1.2.3