clic.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2020 Koen Zandberg <koen@bergzand.net>
3  * SPDX-License-Identifier: LGPL-2.1-only
4  */
5 
6 #pragma once
7 
22 #include "cpu_conf.h"
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
33 typedef void (*clic_isr_cb_t)(unsigned irq);
34 
38 typedef struct __attribute((packed)) {
39  volatile uint8_t ip;
40  volatile uint8_t ie;
41  volatile uint8_t attr;
42  volatile uint8_t ctl;
43 } clic_clicint_t;
44 
48 void clic_init(void);
49 
56 void clic_enable_interrupt(unsigned irq, unsigned priority);
57 
63 void clic_disable_interrupt(unsigned irq);
64 
71 void clic_set_priority(unsigned irq, unsigned priority);
72 
79 void clic_set_handler(unsigned irq, clic_isr_cb_t cb);
80 
88 void clic_isr_handler(uint32_t irq);
89 
90 #ifdef __cplusplus
91 }
92 #endif
93 
void clic_set_handler(unsigned irq, clic_isr_cb_t cb)
Set the handler for an interrupt.
void clic_isr_handler(uint32_t irq)
CLIC interrupt handler.
void(* clic_isr_cb_t)(unsigned irq)
CLIC callback declaration.
Definition: clic.h:33
void clic_init(void)
Initialize the CLIC interrupt controller.
void clic_set_priority(unsigned irq, unsigned priority)
Set the priority of an interrupt.
void clic_disable_interrupt(unsigned irq)
Disable a single interrupt.
void clic_enable_interrupt(unsigned irq, unsigned priority)
Enable a single interrupt.
struct __attribute((packed))
RISC-V CLIC per interrupt configuration registers.
Definition: clic.h:38