Changeset View
Changeset View
Standalone View
Standalone View
head/sys/riscv/riscv/intr_machdep.c
Show First 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | struct intc_irqsrc { | ||||
u_int irq; | u_int irq; | ||||
}; | }; | ||||
struct intc_irqsrc isrcs[INTC_NIRQS]; | struct intc_irqsrc isrcs[INTC_NIRQS]; | ||||
static void | static void | ||||
riscv_mask_irq(void *source) | riscv_mask_irq(void *source) | ||||
{ | { | ||||
uintptr_t irq; | int irq; | ||||
irq = (uintptr_t)source; | irq = (int)(uintptr_t)source; | ||||
switch (irq) { | switch (irq) { | ||||
case IRQ_TIMER_SUPERVISOR: | case IRQ_TIMER_SUPERVISOR: | ||||
csr_clear(sie, SIE_STIE); | csr_clear(sie, SIE_STIE); | ||||
break; | break; | ||||
case IRQ_SOFTWARE_USER: | case IRQ_SOFTWARE_USER: | ||||
csr_clear(sie, SIE_USIE); | csr_clear(sie, SIE_USIE); | ||||
break; | break; | ||||
case IRQ_SOFTWARE_SUPERVISOR: | case IRQ_SOFTWARE_SUPERVISOR: | ||||
csr_clear(sie, SIE_SSIE); | csr_clear(sie, SIE_SSIE); | ||||
break; | break; | ||||
default: | default: | ||||
panic("Unknown irq %d\n", irq); | panic("Unknown irq %d\n", irq); | ||||
} | } | ||||
} | } | ||||
static void | static void | ||||
riscv_unmask_irq(void *source) | riscv_unmask_irq(void *source) | ||||
{ | { | ||||
uintptr_t irq; | int irq; | ||||
irq = (uintptr_t)source; | irq = (int)(uintptr_t)source; | ||||
switch (irq) { | switch (irq) { | ||||
case IRQ_TIMER_SUPERVISOR: | case IRQ_TIMER_SUPERVISOR: | ||||
csr_set(sie, SIE_STIE); | csr_set(sie, SIE_STIE); | ||||
break; | break; | ||||
case IRQ_SOFTWARE_USER: | case IRQ_SOFTWARE_USER: | ||||
csr_set(sie, SIE_USIE); | csr_set(sie, SIE_USIE); | ||||
break; | break; | ||||
▲ Show 20 Lines • Show All 170 Lines • Show Last 20 Lines |