Loading...
Searching...
No Matches
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
21
22#include "cpu_conf.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
33typedef void (*clic_isr_cb_t)(unsigned irq);
34
38typedef 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
48void clic_init(void);
49
56void clic_enable_interrupt(unsigned irq, unsigned priority);
57
63void clic_disable_interrupt(unsigned irq);
64
71void clic_set_priority(unsigned irq, unsigned priority);
72
79void clic_set_handler(unsigned irq, clic_isr_cb_t cb);
80
88void 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