diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-07-12 01:43:08 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-07-12 01:43:08 +0000 |
commit | f4ae78d536e6dfaeb24c01b331fc38d950ed062b (patch) | |
tree | 6930a78aa7cc4ee1829d50d3bcbaf0dbe9e2e905 /include/asm-sparc | |
parent | 66f20d0f9bd86dc11f3869d78f3c5749789323ee (diff) |
Merge with 2.4.0-test4-pre2.
Diffstat (limited to 'include/asm-sparc')
-rw-r--r-- | include/asm-sparc/asm_offsets.h | 40 | ||||
-rw-r--r-- | include/asm-sparc/bitops.h | 28 | ||||
-rw-r--r-- | include/asm-sparc/pgalloc.h | 6 | ||||
-rw-r--r-- | include/asm-sparc/pgtable.h | 9 | ||||
-rw-r--r-- | include/asm-sparc/smp.h | 6 |
5 files changed, 45 insertions, 44 deletions
diff --git a/include/asm-sparc/asm_offsets.h b/include/asm-sparc/asm_offsets.h index 3447973a0..44d4c371e 100644 --- a/include/asm-sparc/asm_offsets.h +++ b/include/asm-sparc/asm_offsets.h @@ -18,24 +18,24 @@ #define ASIZ_task_exec_domain 0x00000004 #define AOFF_task_need_resched 0x00000014 #define ASIZ_task_need_resched 0x00000004 -#define AOFF_task_avg_slice 0x00000018 -#define ASIZ_task_avg_slice 0x00000004 -#define AOFF_task_lock_depth 0x0000001c +#define AOFF_task_lock_depth 0x00000018 #define ASIZ_task_lock_depth 0x00000004 -#define AOFF_task_counter 0x00000020 +#define AOFF_task_counter 0x0000001c #define ASIZ_task_counter 0x00000004 -#define AOFF_task_priority 0x00000024 +#define AOFF_task_priority 0x00000020 #define ASIZ_task_priority 0x00000004 -#define AOFF_task_policy 0x00000028 +#define AOFF_task_policy 0x00000024 #define ASIZ_task_policy 0x00000004 -#define AOFF_task_mm 0x0000002c +#define AOFF_task_mm 0x00000028 #define ASIZ_task_mm 0x00000004 -#define AOFF_task_active_mm 0x00000030 +#define AOFF_task_active_mm 0x0000002c #define ASIZ_task_active_mm 0x00000004 -#define AOFF_task_has_cpu 0x00000034 +#define AOFF_task_has_cpu 0x00000030 #define ASIZ_task_has_cpu 0x00000004 -#define AOFF_task_processor 0x00000038 +#define AOFF_task_processor 0x00000034 #define ASIZ_task_processor 0x00000004 +#define AOFF_task_cpus_allowed 0x00000038 +#define ASIZ_task_cpus_allowed 0x00000004 #define AOFF_task_ptrace 0x0000003c #define ASIZ_task_ptrace 0x00000004 #define AOFF_task_run_list 0x00000040 @@ -301,24 +301,24 @@ #define ASIZ_task_exec_domain 0x00000004 #define AOFF_task_need_resched 0x00000014 #define ASIZ_task_need_resched 0x00000004 -#define AOFF_task_avg_slice 0x00000018 -#define ASIZ_task_avg_slice 0x00000004 -#define AOFF_task_lock_depth 0x0000001c +#define AOFF_task_lock_depth 0x00000018 #define ASIZ_task_lock_depth 0x00000004 -#define AOFF_task_counter 0x00000020 +#define AOFF_task_counter 0x0000001c #define ASIZ_task_counter 0x00000004 -#define AOFF_task_priority 0x00000024 +#define AOFF_task_priority 0x00000020 #define ASIZ_task_priority 0x00000004 -#define AOFF_task_policy 0x00000028 +#define AOFF_task_policy 0x00000024 #define ASIZ_task_policy 0x00000004 -#define AOFF_task_mm 0x0000002c +#define AOFF_task_mm 0x00000028 #define ASIZ_task_mm 0x00000004 -#define AOFF_task_active_mm 0x00000030 +#define AOFF_task_active_mm 0x0000002c #define ASIZ_task_active_mm 0x00000004 -#define AOFF_task_has_cpu 0x00000034 +#define AOFF_task_has_cpu 0x00000030 #define ASIZ_task_has_cpu 0x00000004 -#define AOFF_task_processor 0x00000038 +#define AOFF_task_processor 0x00000034 #define ASIZ_task_processor 0x00000004 +#define AOFF_task_cpus_allowed 0x00000038 +#define ASIZ_task_cpus_allowed 0x00000004 #define AOFF_task_ptrace 0x0000003c #define ASIZ_task_ptrace 0x00000004 #define AOFF_task_run_list 0x00000040 diff --git a/include/asm-sparc/bitops.h b/include/asm-sparc/bitops.h index eb9710eb1..af8d4a2d4 100644 --- a/include/asm-sparc/bitops.h +++ b/include/asm-sparc/bitops.h @@ -1,4 +1,4 @@ -/* $Id: bitops.h,v 1.57 2000/06/30 10:18:39 davem Exp $ +/* $Id: bitops.h,v 1.58 2000/07/07 07:29:30 anton Exp $ * bitops.h: Bit string operations on the Sparc. * * Copyright 1995 David S. Miller (davem@caip.rutgers.edu) @@ -19,8 +19,6 @@ * themself. */ -#define __SMPVOL - extern __inline__ unsigned long set_bit(unsigned long nr, void *addr) { int mask; @@ -83,19 +81,13 @@ extern __inline__ void change_bit(unsigned long nr, void *addr) #include <asm/system.h> -#ifdef CONFIG_SMP -#define __SMPVOL volatile -#else -#define __SMPVOL -#endif - /* Set bit 'nr' in 32-bit quantity at address 'addr' where bit '0' * is in the highest of the four bytes and bit '31' is the high bit * within the first byte. Sparc is BIG-Endian. Unless noted otherwise * all bit-ops return 0 if bit was previously clear and != 0 otherwise. */ -extern __inline__ int test_and_set_bit(unsigned long nr, __SMPVOL void *addr) +extern __inline__ int test_and_set_bit(unsigned long nr, volatile void *addr) { register unsigned long mask asm("g2"); register unsigned long *ADDR asm("g1"); @@ -112,12 +104,12 @@ extern __inline__ int test_and_set_bit(unsigned long nr, __SMPVOL void *addr) return mask != 0; } -extern __inline__ void set_bit(unsigned long nr, __SMPVOL void *addr) +extern __inline__ void set_bit(unsigned long nr, volatile void *addr) { (void) test_and_set_bit(nr, addr); } -extern __inline__ int test_and_clear_bit(unsigned long nr, __SMPVOL void *addr) +extern __inline__ int test_and_clear_bit(unsigned long nr, volatile void *addr) { register unsigned long mask asm("g2"); register unsigned long *ADDR asm("g1"); @@ -135,12 +127,12 @@ extern __inline__ int test_and_clear_bit(unsigned long nr, __SMPVOL void *addr) return mask != 0; } -extern __inline__ void clear_bit(unsigned long nr, __SMPVOL void *addr) +extern __inline__ void clear_bit(unsigned long nr, volatile void *addr) { (void) test_and_clear_bit(nr, addr); } -extern __inline__ int test_and_change_bit(unsigned long nr, __SMPVOL void *addr) +extern __inline__ int test_and_change_bit(unsigned long nr, volatile void *addr) { register unsigned long mask asm("g2"); register unsigned long *ADDR asm("g1"); @@ -158,7 +150,7 @@ extern __inline__ int test_and_change_bit(unsigned long nr, __SMPVOL void *addr) return mask != 0; } -extern __inline__ void change_bit(unsigned long nr, __SMPVOL void *addr) +extern __inline__ void change_bit(unsigned long nr, volatile void *addr) { (void) test_and_change_bit(nr, addr); } @@ -166,7 +158,7 @@ extern __inline__ void change_bit(unsigned long nr, __SMPVOL void *addr) #endif /* __KERNEL__ */ /* The following routine need not be atomic. */ -extern __inline__ int test_bit(int nr, __const__ __SMPVOL void *addr) +extern __inline__ int test_bit(int nr, __const__ void *addr) { return (1 & (((__const__ unsigned int *) addr)[nr >> 5] >> (nr & 31))) != 0; } @@ -298,7 +290,7 @@ extern __inline__ int clear_le_bit(int nr, void *addr) /* Now for the ext2 filesystem bit operations and helper routines. */ -extern __inline__ int set_le_bit(int nr,void * addr) +extern __inline__ int set_le_bit(int nr, volatile void * addr) { register int mask asm("g2"); register unsigned char *ADDR asm("g1"); @@ -316,7 +308,7 @@ extern __inline__ int set_le_bit(int nr,void * addr) return mask; } -extern __inline__ int clear_le_bit(int nr, void * addr) +extern __inline__ int clear_le_bit(int nr, volatile void * addr) { register int mask asm("g2"); register unsigned char *ADDR asm("g1"); diff --git a/include/asm-sparc/pgalloc.h b/include/asm-sparc/pgalloc.h index 71a03dc02..20e9d805e 100644 --- a/include/asm-sparc/pgalloc.h +++ b/include/asm-sparc/pgalloc.h @@ -1,4 +1,4 @@ -/* $Id: pgalloc.h,v 1.5 2000/06/04 06:23:53 anton Exp $ */ +/* $Id: pgalloc.h,v 1.6 2000/07/10 20:56:53 anton Exp $ */ #ifndef _SPARC_PGALLOC_H #define _SPARC_PGALLOC_H @@ -92,14 +92,10 @@ extern struct pgtable_cache_struct { unsigned long *pte_cache; unsigned long pgtable_cache_sz; unsigned long pgd_cache_sz; - spinlock_t pgd_spinlock; - spinlock_t pte_spinlock; } pgt_quicklists; #define pgd_quicklist (pgt_quicklists.pgd_cache) #define pmd_quicklist ((unsigned long *)0) #define pte_quicklist (pgt_quicklists.pte_cache) -#define pgd_spinlock (pgt_quicklists.pgd_spinlock) -#define pte_spinlock (pgt_quicklists.pte_spinlock) #define pgtable_cache_size (pgt_quicklists.pgtable_cache_sz) #define pgd_cache_size (pgt_quicklists.pgd_cache_sz) diff --git a/include/asm-sparc/pgtable.h b/include/asm-sparc/pgtable.h index a4a1ef3ce..53039cc9c 100644 --- a/include/asm-sparc/pgtable.h +++ b/include/asm-sparc/pgtable.h @@ -1,4 +1,4 @@ -/* $Id: pgtable.h,v 1.96 2000/06/05 06:08:46 anton Exp $ */ +/* $Id: pgtable.h,v 1.97 2000/07/07 07:33:11 anton Exp $ */ #ifndef _SPARC_PGTABLE_H #define _SPARC_PGTABLE_H @@ -125,7 +125,14 @@ BTFIXUPDEF_INT(page_kernel) #define PAGE_SHARED __pgprot(BTFIXUP_INT(page_shared)) #define PAGE_COPY __pgprot(BTFIXUP_INT(page_copy)) #define PAGE_READONLY __pgprot(BTFIXUP_INT(page_readonly)) + +extern unsigned long page_kernel; + +#ifdef MODULE +#define PAGE_KERNEL page_kernel +#else #define PAGE_KERNEL __pgprot(BTFIXUP_INT(page_kernel)) +#endif /* Top-level page directory */ extern pgd_t swapper_pg_dir[1024]; diff --git a/include/asm-sparc/smp.h b/include/asm-sparc/smp.h index 5f7040345..f6504165d 100644 --- a/include/asm-sparc/smp.h +++ b/include/asm-sparc/smp.h @@ -93,6 +93,12 @@ extern __inline__ void xc5(smpfunc_t func, unsigned long arg1, unsigned long arg unsigned long arg3, unsigned long arg4, unsigned long arg5) { smp_cross_call(func, arg1, arg2, arg3, arg4, arg5); } +extern __inline__ int smp_call_function(void (*func)(void *info), void *info, int nonatomic, int wait) +{ + xc1((smpfunc_t)func, (unsigned long)info); + return 0; +} + extern __volatile__ int __cpu_number_map[NR_CPUS]; extern __volatile__ int __cpu_logical_map[NR_CPUS]; extern unsigned long smp_proc_in_lock[NR_CPUS]; |