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