Bouffalo SDK  1.0
Bouffalolab Software Development Kit
bflb_irq.h
Go to the documentation of this file.
1 #ifndef _BFLB_IRQ_H
2 #define _BFLB_IRQ_H
3 
4 #include "stdint.h"
5 
14 typedef void (*irq_callback)(int irq, void *arg);
15 
24  void *arg;
25 };
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
35 void bflb_irq_initialize(void);
36 
42 uintptr_t bflb_irq_save(void);
43 
49 void bflb_irq_restore(uintptr_t flags);
50 
59 int bflb_irq_attach(int irq, irq_callback isr, void *arg);
60 
67 int bflb_irq_detach(int irq);
68 
74 void bflb_irq_enable(int irq);
75 
81 void bflb_irq_disable(int irq);
82 
88 void bflb_irq_set_pending(int irq);
89 
95 void bflb_irq_clear_pending(int irq);
96 
102 void bflb_irq_set_nlbits(uint8_t nlbits);
103 
111 void bflb_irq_set_priority(int irq, uint8_t preemptprio, uint8_t subprio);
112 
113 #ifdef __cplusplus
114 }
115 #endif
116 
125 #endif
int bflb_irq_detach(int irq)
Detach interrupt, reset interrupt callback.
int bflb_irq_attach(int irq, irq_callback isr, void *arg)
Attach interrupt with callback.
void bflb_irq_enable(int irq)
Enable interrupt.
uintptr_t bflb_irq_save(void)
Disable global irq and save the previous status.
IRQ configuration structure.
Definition: bflb_irq.h:22
void bflb_irq_set_nlbits(uint8_t nlbits)
Set interrupt group.
void bflb_irq_disable(int irq)
Disable interrupt.
void(* irq_callback)(int irq, void *arg)
Definition: bflb_irq.h:14
void bflb_irq_set_priority(int irq, uint8_t preemptprio, uint8_t subprio)
Set interrupt priority.
void * arg
Definition: bflb_irq.h:24
void bflb_irq_clear_pending(int irq)
Clear interrupt pending status.
void bflb_irq_restore(uintptr_t flags)
Enable global irq by the previous status.
irq_callback handler
Definition: bflb_irq.h:23
void bflb_irq_set_pending(int irq)
Set interrupt with pending.
void bflb_irq_initialize(void)
Interrupt initialize.