diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2007-08-04 21:02:22 +0000 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gnu.org> | 2009-06-18 00:27:12 +0200 |
commit | baf29c7a7fe74d8ca799c869440f7b7cd5a33b8a (patch) | |
tree | 1aa311c95f00f763667f2d8fb2c15a115825775a /linux/src | |
parent | 2d38d0f995f30c5f04dcc0c10052f6c335f99987 (diff) |
2007-08-04 Samuel Thibault <samuel.thibault@ens-lyon.org>
* linux/dev/arch/i386/kernel/irq.c: Include <asm/hardirq.h>.
(local_bh_count, local_irq_count, global_irq_holder, global_irq_lock)
(global_irq_count, check_smp_invalidate, show, wait_on_bh)
(wait_on_irq, synchronize_bh, synchronize_irq, get_irqlock)
(__global_cli, __global_sti, __global_save_flags)
(__global_restore_flags): New variables and functions from Linux 2.2
* linux/src/drivers/net/3c515.c (test_and_set_bit): Remove macro.
* linux/src/drivers/net/de4x5.c (test_and_set_bit): Remove macro.
* linux/src/drivers/net/eth16i.c (test_and_set_bit): Remove macro.
* linux/src/drivers/net/kern_compat.h (test_and_set_bit): Remove macro.
* linux/src/drivers/net/pcnet32.c (test_and_set_bit): Remove macro.
* linux/src/include/linux/compatmac.h (test_and_set_bit)
(test_and_clear_bit): Remove macro.
* linux/src/include/asm-i386/atomic.h (atomic_read): New macro.
* linux/src/include/asm-i386/bitops.h (test_and_set_bit)
(test_and_clear_bit, test_and_change_bit): New inline functions.
* linux/src/include/asm-i386/hardirq.h (local_bh_count): New
declaration.
* linux/src/include/linux/tasks.h (NR_CPUS): Set to NCPUS.
(NO_PROC_ID): New macro.
Diffstat (limited to 'linux/src')
-rw-r--r-- | linux/src/drivers/net/3c515.c | 2 | ||||
-rw-r--r-- | linux/src/drivers/net/de4x5.c | 2 | ||||
-rw-r--r-- | linux/src/drivers/net/eth16i.c | 2 | ||||
-rw-r--r-- | linux/src/drivers/net/kern_compat.h | 4 | ||||
-rw-r--r-- | linux/src/drivers/net/pcnet32.c | 2 | ||||
-rw-r--r-- | linux/src/include/asm-i386/atomic.h | 2 | ||||
-rw-r--r-- | linux/src/include/asm-i386/bitops.h | 34 | ||||
-rw-r--r-- | linux/src/include/asm-i386/hardirq.h | 1 | ||||
-rw-r--r-- | linux/src/include/linux/compatmac.h | 4 | ||||
-rw-r--r-- | linux/src/include/linux/tasks.h | 8 |
10 files changed, 48 insertions, 13 deletions
diff --git a/linux/src/drivers/net/3c515.c b/linux/src/drivers/net/3c515.c index a283bab..fd6ec50 100644 --- a/linux/src/drivers/net/3c515.c +++ b/linux/src/drivers/net/3c515.c @@ -85,7 +85,7 @@ static int max_interrupt_work = 20; #define IRQ(irq, dev_id, pt_regs) (irq, dev_id, pt_regs) #if (LINUX_VERSION_CODE < 0x20123) -#define test_and_set_bit(val, addr) set_bit(val, addr) +//#define test_and_set_bit(val, addr) set_bit(val, addr) #elif defined(MODULE) MODULE_AUTHOR("Donald Becker <becker@cesdis.gsfc.nasa.gov>"); MODULE_DESCRIPTION("3Com 3c515 Corkscrew driver"); diff --git a/linux/src/drivers/net/de4x5.c b/linux/src/drivers/net/de4x5.c index b1ab417..114f6a7 100644 --- a/linux/src/drivers/net/de4x5.c +++ b/linux/src/drivers/net/de4x5.c @@ -445,7 +445,7 @@ static const char *version = "de4x5.c:V0.5351 1998/10/4 davies@maniac.ultranet.c #include <linux/version.h> #if LINUX_VERSION_CODE < LinuxVersionCode(2,1,0) # define __initfunc(__arginit) __arginit -# define test_and_set_bit set_bit +//# define test_and_set_bit set_bit # define net_device_stats enet_statistics # define copy_to_user(a,b,c) memcpy_tofs(a,b,c) # define copy_from_user(a,b,c) memcpy_fromfs(a,b,c) diff --git a/linux/src/drivers/net/eth16i.c b/linux/src/drivers/net/eth16i.c index 903b3ec..244c3e7 100644 --- a/linux/src/drivers/net/eth16i.c +++ b/linux/src/drivers/net/eth16i.c @@ -175,7 +175,7 @@ static char *version = #endif #if LINUX_VERSION_CODE < 0x20138 -#define test_and_set_bit(val,addr) set_bit(val,addr) +//#define test_and_set_bit(val,addr) set_bit(val,addr) #endif #if LINUX_VERSION_CODE < 0x020100 diff --git a/linux/src/drivers/net/kern_compat.h b/linux/src/drivers/net/kern_compat.h index 75c34b0..39e1934 100644 --- a/linux/src/drivers/net/kern_compat.h +++ b/linux/src/drivers/net/kern_compat.h @@ -2,7 +2,7 @@ #define _KERN_COMPAT_H /* kern_compat.h: Linux PCI network adapter backward compatibility code. */ /* - $Revision: 1.1.2.1 $ $Date: 2006/01/22 15:54:41 $ + $Revision: 1.1.2.2 $ $Date: 2007/08/04 21:02:21 $ Kernel compatibility defines. This file provides macros to mask the difference between kernel versions. @@ -76,7 +76,7 @@ __attribute__((section(".modinfo"))) = \ */ #if LINUX_VERSION_CODE < 0x20123 #define hard_smp_processor_id() smp_processor_id() -#define test_and_set_bit(val, addr) set_bit(val, addr) +//#define test_and_set_bit(val, addr) set_bit(val, addr) #define cpu_to_le16(val) (val) #define cpu_to_le32(val) (val) #define le16_to_cpu(val) (val) diff --git a/linux/src/drivers/net/pcnet32.c b/linux/src/drivers/net/pcnet32.c index acc5ce7..02e7098 100644 --- a/linux/src/drivers/net/pcnet32.c +++ b/linux/src/drivers/net/pcnet32.c @@ -105,7 +105,7 @@ static int pcnet32_debug = 1; #define le32_to_cpu(val) (val) #endif #if (LINUX_VERSION_CODE < 0x20123) -#define test_and_set_bit(val, addr) set_bit(val, addr) +//#define test_and_set_bit(val, addr) set_bit(val, addr) #endif #define TX_RING_SIZE (1 << (PCNET_LOG_TX_BUFFERS)) diff --git a/linux/src/include/asm-i386/atomic.h b/linux/src/include/asm-i386/atomic.h index 1b9d99f..7e5dd06 100644 --- a/linux/src/include/asm-i386/atomic.h +++ b/linux/src/include/asm-i386/atomic.h @@ -21,6 +21,8 @@ typedef int atomic_t; +#define atomic_read(v) (*v) + static __inline__ void atomic_add(atomic_t i, atomic_t *v) { __asm__ __volatile__( diff --git a/linux/src/include/asm-i386/bitops.h b/linux/src/include/asm-i386/bitops.h index d3ed1fb..fc4cf19 100644 --- a/linux/src/include/asm-i386/bitops.h +++ b/linux/src/include/asm-i386/bitops.h @@ -61,6 +61,40 @@ extern __inline__ int change_bit(int nr, SMPVOL void * addr) return oldbit; } +extern __inline__ int test_and_set_bit(int nr, volatile void * addr) +{ + int oldbit; + + __asm__ __volatile__( LOCK_PREFIX + "btsl %2,%1\n\tsbbl %0,%0" + :"=r" (oldbit),"=m" (ADDR) + :"Ir" (nr)); + return oldbit; +} + +extern __inline__ int test_and_clear_bit(int nr, volatile void * addr) +{ + int oldbit; + + __asm__ __volatile__( LOCK_PREFIX + "btrl %2,%1\n\tsbbl %0,%0" + :"=r" (oldbit),"=m" (ADDR) + :"Ir" (nr)); + return oldbit; +} + +extern __inline__ int test_and_change_bit(int nr, volatile void * addr) +{ + int oldbit; + + __asm__ __volatile__( LOCK_PREFIX + "btcl %2,%1\n\tsbbl %0,%0" + :"=r" (oldbit),"=m" (ADDR) + :"Ir" (nr)); + return oldbit; +} + + /* * This routine doesn't need to be atomic. */ diff --git a/linux/src/include/asm-i386/hardirq.h b/linux/src/include/asm-i386/hardirq.h index 5339613..10dae41 100644 --- a/linux/src/include/asm-i386/hardirq.h +++ b/linux/src/include/asm-i386/hardirq.h @@ -4,6 +4,7 @@ #include <linux/tasks.h> extern unsigned int local_irq_count[NR_CPUS]; +extern unsigned int local_bh_count[NR_CPUS]; /* * Are we in an interrupt context? Either doing bottom half diff --git a/linux/src/include/linux/compatmac.h b/linux/src/include/linux/compatmac.h index 5f9175d..b9a4112 100644 --- a/linux/src/include/linux/compatmac.h +++ b/linux/src/include/linux/compatmac.h @@ -111,8 +111,8 @@ static inline void *ioremap(unsigned long base, long length) #define time_after(t1,t2) (((long)t1-t2) > 0) -#define test_and_set_bit(nr, addr) set_bit(nr, addr) -#define test_and_clear_bit(nr, addr) clear_bit(nr, addr) +//#define test_and_set_bit(nr, addr) set_bit(nr, addr) +//#define test_and_clear_bit(nr, addr) clear_bit(nr, addr) /* Not yet implemented on 2.0 */ #define ASYNC_SPD_SHI -1 diff --git a/linux/src/include/linux/tasks.h b/linux/src/include/linux/tasks.h index 4540e34..466560e 100644 --- a/linux/src/include/linux/tasks.h +++ b/linux/src/include/linux/tasks.h @@ -5,14 +5,12 @@ * This is the maximum nr of tasks - change it if you need to */ -#ifdef __SMP__ -#define NR_CPUS 32 /* Max processors that can be running in SMP */ -#else -#define NR_CPUS 1 -#endif +#define NR_CPUS NCPUS /* Max processors that can be running in SMP */ #define NR_TASKS 512 +#define NO_PROC_ID -1 + #define MAX_TASKS_PER_USER (NR_TASKS/2) #define MIN_TASKS_LEFT_FOR_ROOT 4 |