1#ifndef __ASM_SOFTIRQ_H 2#define __ASM_SOFTIRQ_H 3 4#include <asm/atomic.h> 5#include <asm/hardirq.h> 6 7#define local_bh_disable() \ 8do { \ 9 local_bh_count(smp_processor_id())++; \ 10 barrier(); \ 11} while (0) 12 13#define __local_bh_enable() \ 14do { \ 15 barrier(); \ 16 local_bh_count(smp_processor_id())--; \ 17} while (0) 18 19#define local_bh_enable() \ 20do { \ 21 if (!--local_bh_count(smp_processor_id()) \ 22 && softirq_pending(smp_processor_id())) { \ 23 do_softirq(); \ 24 __sti(); \ 25 } \ 26} while (0) 27 28#define in_softirq() (local_bh_count(smp_processor_id()) != 0) 29 30#endif /* __ASM_SOFTIRQ_H */ 31