WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
osal_interrupt.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2021-2022. All rights reserved.
3 * Description: OS Abstract Layer.
4 */
5
9#ifndef __OSAL_INTERRUPT_H__
10#define __OSAL_INTERRUPT_H__
11
12#ifdef __cplusplus
13#if __cplusplus
14extern "C" {
15#endif
16#endif
17
18#define OSAL_CPU_ALL 0
19#define OSAL_CPU_0 (1 << 1)
20#define OSAL_CPU_1 (1 << 2)
21#define OSAL_CPU_2 (1 << 3)
22#define OSAL_CPU_3 (1 << 4)
23
24typedef struct {
25 void *tasklet;
26 void (*handler)(unsigned long data);
27 unsigned long data;
29
31 OSAL_IRQ_NONE = (0 << 0),
32 OSAL_IRQ_HANDLED = (1 << 0),
34};
35typedef int (*osal_irq_handler)(int, void *);
36
48void *osal_irq_get_private_dev(void *param_dev);
49
68int osal_irq_request(unsigned int irq, osal_irq_handler handler, osal_irq_handler thread_fn, const char *name,
69 void *dev);
70
84void osal_irq_free(unsigned int irq, void *dev);
85
101int osal_irq_set_priority(unsigned int irq, unsigned short priority);
102
117int osal_irq_set_affinity(unsigned int irq, const char *name, int cpu_mask);
118
132void osal_irq_enable(unsigned int irq);
133
146void osal_irq_disable(unsigned int irq);
147
160unsigned int osal_irq_lock(void);
161
174unsigned int osal_irq_unlock(void);
175
190void osal_irq_restore(unsigned int irq_status);
191
204unsigned int osal_irq_clear(unsigned int vector);
205
218int osal_in_interrupt(void);
219
236int osal_tasklet_init(osal_tasklet *tasklet);
237
246
257int osal_tasklet_kill(osal_tasklet *tasklet);
258
270
271#ifdef __cplusplus
272#if __cplusplus
273}
274#endif
275#endif
276#endif /* __OSAL_INTERRUPT_H__ */
int osal_tasklet_init(osal_tasklet *tasklet)
initialize tasklet.
Definition osal_interrupt.c:159
void * osal_irq_get_private_dev(void *param_dev)
get irq_handler dev.
Definition osal_interrupt.c:33
unsigned int osal_irq_clear(unsigned int vector)
Clear the pending status of other interrupts.
Definition osal_interrupt.c:148
unsigned int osal_irq_lock(void)
Disable all interrupts.
Definition osal_interrupt.c:110
void osal_irq_restore(unsigned int irq_status)
Restore interrupts.
Definition osal_interrupt.c:130
int osal_tasklet_schedule(osal_tasklet *tasklet)
schedule tasklet.
Definition osal_interrupt.c:178
void osal_irq_disable(unsigned int irq)
disable an irq and wait for completion.
Definition osal_interrupt.c:104
int osal_irq_request(unsigned int irq, osal_irq_handler handler, osal_irq_handler thread_fn, const char *name, void *dev)
alloc an interrupt line.
Definition osal_interrupt.c:42
void osal_irq_free(unsigned int irq, void *dev)
free an interrupt allocd with request_irq.
Definition osal_interrupt.c:64
int osal_tasklet_update(osal_tasklet *tasklet)
Update tasklet.
Definition osal_interrupt.c:169
int osal_tasklet_kill(osal_tasklet *tasklet)
Close tasklet.
Definition osal_interrupt.c:185
int osal_irq_set_priority(unsigned int irq, unsigned short priority)
Set interrupts priority.
Definition osal_interrupt.c:139
int osal_in_interrupt(void)
Check whether the current interrupt is in interrupt.
Definition osal_interrupt.c:78
unsigned int osal_irq_unlock(void)
Enable all interrupts.
Definition osal_interrupt.c:120
void osal_irq_enable(unsigned int irq)
enable handling of an irq.
Definition osal_interrupt.c:83
int osal_irq_set_affinity(unsigned int irq, const char *name, int cpu_mask)
Setting the CPU Affinity of Interrupts.
Definition osal_interrupt.c:73
int(* osal_irq_handler)(int, void *)
Definition osal_interrupt.h:35
osal_irqreturn
Definition osal_interrupt.h:30
@ OSAL_IRQ_NONE
Definition osal_interrupt.h:31
@ OSAL_IRQ_HANDLED
Definition osal_interrupt.h:32
@ OSAL_IRQ_WAKE_THREAD
Definition osal_interrupt.h:33
Definition osal_interrupt.h:24
unsigned long data
Definition osal_interrupt.h:27
void * tasklet
Definition osal_interrupt.h:25
Definition hal_uart_v151_regs_def.h:38