bottom_half.h 764 字节
Newer Older
A
Andrew Morton 已提交
1 2 3
#ifndef _LINUX_BH_H
#define _LINUX_BH_H

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#include <linux/preempt.h>

#ifdef CONFIG_TRACE_IRQFLAGS
extern void __local_bh_disable_ip(unsigned long ip, unsigned int cnt);
#else
static __always_inline void __local_bh_disable_ip(unsigned long ip, unsigned int cnt)
{
	preempt_count_add(cnt);
	barrier();
}
#endif

static inline void local_bh_disable(void)
{
	__local_bh_disable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
}

A
Andrew Morton 已提交
21
extern void _local_bh_enable(void);
22 23 24 25 26 27 28 29 30 31 32
extern void __local_bh_enable_ip(unsigned long ip, unsigned int cnt);

static inline void local_bh_enable_ip(unsigned long ip)
{
	__local_bh_enable_ip(ip, SOFTIRQ_DISABLE_OFFSET);
}

static inline void local_bh_enable(void)
{
	__local_bh_enable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
}
A
Andrew Morton 已提交
33 34

#endif /* _LINUX_BH_H */