Karg  v0.2.0
The kernel of CargOS
plic.c File Reference
#include <drivers/plic.h>
#include <arch/riscv/csr.h>
#include <dev.h>
#include <module/module.h>

Macros

#define reg(reg)   *((volatile u32 *) (base_addr + reg))
 
#define INTR_PRIO(irq)   (irq * 4)
 
#define INTR_ENABLE(irq)   (0x2080 + irq / 32 * 4)
 
#define PRIO_THRESHOLD   0x201000
 
#define INTR_CLAIM   0x201004
 
#define INTR_COMPLETION   0x201004
 

Functions

 MODULE_NAME ("plic")
 
void plic_enable_irq (u32 irq)
 
u32 plic_claim ()
 
void plic_complete (u32 irq)
 
 dev_init ("plic", init_dev)
 

Macro Definition Documentation

◆ INTR_CLAIM

#define INTR_CLAIM   0x201004

◆ INTR_COMPLETION

#define INTR_COMPLETION   0x201004

◆ INTR_ENABLE

#define INTR_ENABLE (   irq)    (0x2080 + irq / 32 * 4)

◆ INTR_PRIO

#define INTR_PRIO (   irq)    (irq * 4)

◆ PRIO_THRESHOLD

#define PRIO_THRESHOLD   0x201000

◆ reg

#define reg (   reg)    *((volatile u32 *) (base_addr + reg))

Function Documentation

◆ dev_init()

dev_init ( "plic"  ,
init_dev   
)

◆ MODULE_NAME()

MODULE_NAME ( "plic"  )

◆ plic_claim()

u32 plic_claim ( void  )

◆ plic_complete()

void plic_complete ( u32  irq)

◆ plic_enable_irq()

void plic_enable_irq ( u32  irq)