irq.h
Go to the documentation of this file.
1 /********************************************************************************************************
2  * @file irq.h
3  *
4  * @brief This is the header file for TLSR8258
5  *
6  * @author Driver Group
7  * @date May 8, 2018
8  *
9  * @par Copyright (c) 2018, Telink Semiconductor (Shanghai) Co., Ltd.
10  * All rights reserved.
11  *
12  * The information contained herein is confidential property of Telink
13  * Semiconductor (Shanghai) Co., Ltd. and is available under the terms
14  * of Commercial License Agreement between Telink Semiconductor (Shanghai)
15  * Co., Ltd. and the licensee or the terms described here-in. This heading
16  * MUST NOT be removed from this file.
17  *
18  * Licensees are granted free, non-transferable use of the information in this
19  * file under Mutual Non-Disclosure Agreement. NO WARRENTY of ANY KIND is provided.
20  * @par History:
21  * 1.initial release(DEC. 26 2018)
22  *
23  * @version A001
24  *
25  *******************************************************************************************************/
26 
27 #pragma once
28 
29 #include "register.h"
30 
36 static inline unsigned char irq_enable(void){
37  unsigned char r = reg_irq_en; // don't worry, the compiler will optimize the return value if not used
38  reg_irq_en = 1;
39  return r;
40 }
41 
47 static inline unsigned char irq_disable(void){
48  unsigned char r = reg_irq_en; // don't worry, the compiler will optimize the return value if not used
49  reg_irq_en = 0;
50  return r;
51 }
52 
58 static inline void irq_restore(unsigned char en){
59  reg_irq_en = en;
60 }
61 
68 static inline void irq_enable_type(unsigned long msk)
69 {
70  BM_SET(reg_irq_mask, msk);
71 }
77 static inline void irq_set_mask(unsigned long msk){
78  BM_SET(reg_irq_mask, msk);
79 }
80 
86 static inline unsigned long irq_get_mask(void){
87  return reg_irq_mask;
88 }
89 
96 static inline void irq_disable_type(unsigned long msk)
97 {
98  BM_CLR(reg_irq_mask, msk);
99 }
100 
106 static inline unsigned long irq_get_src(){
107  return reg_irq_src;
108 }
109 
115 static inline void irq_clr_src2(unsigned long msk)
116 {
117  reg_irq_src |= msk;
118 }
119 
126 static inline void irq_clr_src(void)
127 {
128  reg_irq_src = 0xffffffff;
129 }
130 
136 static inline void rf_irq_enable(unsigned int msk)
137 {
138  reg_rf_irq_mask |= msk;
139 }
140 
146 static inline void rf_irq_disable(unsigned int msk)
147 {
148  reg_rf_irq_mask &= (~msk);
149 }
150 
156 static inline unsigned short rf_irq_src_get(void)
157 {
158  return reg_rf_irq_status;
159 }
160 
166 static inline void rf_irq_clr_src(unsigned short msk)
167 {
168  reg_rf_irq_status |= msk;
169 }
170 
static unsigned char irq_disable(void)
This function servers to disable IRQ.
Definition: irq.h:47
static unsigned short rf_irq_src_get(void)
This function servers to get the RF IRQ source.
Definition: irq.h:156
static unsigned long irq_get_src()
This function servers to get an IRQ source.
Definition: irq.h:106
static void irq_restore(unsigned char en)
This function servers to restore IRQ.
Definition: irq.h:58
static void rf_irq_enable(unsigned int msk)
This function servers to set the mask of RF IRQ.
Definition: irq.h:136
static void rf_irq_clr_src(unsigned short msk)
This function servers to clear the RF IRQ source.
Definition: irq.h:166
#define BM_SET(x, mask)
Definition: bsp.h:39
static void irq_set_mask(unsigned long msk)
This function servers to set IRQ mask.
Definition: irq.h:77
#define reg_rf_irq_mask
Definition: register_8258.h:1250
#define reg_irq_src
Definition: register_8258.h:769
static void irq_enable_type(unsigned long msk)
This function servers to set IRQ mask.
Definition: irq.h:68
#define reg_rf_irq_status
Definition: register_8258.h:1251
static void irq_disable_type(unsigned long msk)
This function servers to clear IRQ mask.
Definition: irq.h:96
static unsigned long irq_get_mask(void)
This function servers to enable one interrupt.
Definition: irq.h:86
static void irq_clr_src(void)
This function servers to clear all IRQ source.
Definition: irq.h:126
#define reg_irq_en
Definition: register_8258.h:802
#define reg_irq_mask
Definition: register_8258.h:767
static void rf_irq_disable(unsigned int msk)
This function servers to clear the mask of RF IRQ.
Definition: irq.h:146
#define BM_CLR(x, mask)
Definition: bsp.h:40
static void irq_clr_src2(unsigned long msk)
This function servers to clear the specified IRQ source.
Definition: irq.h:115
static unsigned char irq_enable(void)
This function servers to enable IRQ.
Definition: irq.h:36