• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _LINUX_BH_H
2 #define _LINUX_BH_H
3 
4 #include <linux/preempt.h>
5 
6 #ifdef CONFIG_TRACE_IRQFLAGS
7 extern void __local_bh_disable_ip(unsigned long ip, unsigned int cnt);
8 #else
__local_bh_disable_ip(unsigned long ip,unsigned int cnt)9 static __always_inline void __local_bh_disable_ip(unsigned long ip, unsigned int cnt)
10 {
11 	preempt_count_add(cnt);
12 	barrier();
13 }
14 #endif
15 
local_bh_disable(void)16 static inline void local_bh_disable(void)
17 {
18 	__local_bh_disable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
19 }
20 
21 extern void _local_bh_enable(void);
22 extern void __local_bh_enable_ip(unsigned long ip, unsigned int cnt);
23 
local_bh_enable_ip(unsigned long ip)24 static inline void local_bh_enable_ip(unsigned long ip)
25 {
26 	__local_bh_enable_ip(ip, SOFTIRQ_DISABLE_OFFSET);
27 }
28 
local_bh_enable(void)29 static inline void local_bh_enable(void)
30 {
31 	__local_bh_enable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
32 }
33 
34 #endif /* _LINUX_BH_H */
35