summaryrefslogtreecommitdiffstats
path: root/include/asm-sparc/softirq.h
blob: d61b56554913c285975a963e32575de877ecd5b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/* softirq.h: 32-bit Sparc soft IRQ support.
 *
 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
 * Copyright (C) 1998-99 Anton Blanchard (anton@progsoc.uts.edu.au)
 */

#ifndef __SPARC_SOFTIRQ_H
#define __SPARC_SOFTIRQ_H

#include <linux/threads.h>	/* For NR_CPUS */

#include <asm/atomic.h>
#include <asm/smp.h>
#include <asm/hardirq.h>


#ifdef __SMP__
extern unsigned int local_bh_count[NR_CPUS];

#define local_bh_disable()	(local_bh_count[smp_processor_id()]++)
#define local_bh_enable()	(local_bh_count[smp_processor_id()]--)

#define in_softirq() (local_bh_count[smp_processor_id()] != 0)

#else
extern unsigned int local_bh_count;

#define local_bh_disable()	(local_bh_count++)
#define local_bh_enable()	(local_bh_count--)

#define in_softirq() (local_bh_count != 0)

#endif	/* SMP */

#endif	/* __SPARC_SOFTIRQ_H */