Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#ifndef _LINUX_BH_H
2#define _LINUX_BH_H
3
4#include <linux/preempt.h>
5
6#ifdef CONFIG_TRACE_IRQFLAGS
7extern void __local_bh_disable_ip(unsigned long ip, unsigned int cnt);
8#else
9static __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
16static inline void local_bh_disable(void)
17{
18 __local_bh_disable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
19}
20
21extern void _local_bh_enable(void);
22extern void __local_bh_enable_ip(unsigned long ip, unsigned int cnt);
23
24static inline void local_bh_enable_ip(unsigned long ip)
25{
26 __local_bh_enable_ip(ip, SOFTIRQ_DISABLE_OFFSET);
27}
28
29static inline void local_bh_enable(void)
30{
31 __local_bh_enable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
32}
33
34#endif /* _LINUX_BH_H */