diff options
| author | David Howells <dhowells@redhat.com> | 2012-03-28 18:30:02 +0100 | 
|---|---|---|
| committer | David Howells <dhowells@redhat.com> | 2012-03-28 18:30:02 +0100 | 
| commit | 4eb14db4440febb7e560eb8ab2c099bc6e11a0ac (patch) | |
| tree | 6a4d408111b670220c1515c1f688657c65b757cd | |
| parent | a0616cdebcfd575dcd4c46102d1b52fbb827fc29 (diff) | |
| download | olio-linux-3.10-4eb14db4440febb7e560eb8ab2c099bc6e11a0ac.tar.xz olio-linux-3.10-4eb14db4440febb7e560eb8ab2c099bc6e11a0ac.zip  | |
Disintegrate asm/system.h for Score
Disintegrate asm/system.h for Score.  Not compiled.
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Chen Liqin <liqin.chen@sunplusct.com>
| -rw-r--r-- | arch/score/include/asm/atomic.h | 1 | ||||
| -rw-r--r-- | arch/score/include/asm/barrier.h | 16 | ||||
| -rw-r--r-- | arch/score/include/asm/bitops.h | 1 | ||||
| -rw-r--r-- | arch/score/include/asm/bug.h | 11 | ||||
| -rw-r--r-- | arch/score/include/asm/cmpxchg.h | 49 | ||||
| -rw-r--r-- | arch/score/include/asm/exec.h | 6 | ||||
| -rw-r--r-- | arch/score/include/asm/switch_to.h | 13 | ||||
| -rw-r--r-- | arch/score/include/asm/system.h | 95 | 
8 files changed, 101 insertions, 91 deletions
diff --git a/arch/score/include/asm/atomic.h b/arch/score/include/asm/atomic.h index 84eb8ddf9f3..edf33dbded1 100644 --- a/arch/score/include/asm/atomic.h +++ b/arch/score/include/asm/atomic.h @@ -1,6 +1,7 @@  #ifndef _ASM_SCORE_ATOMIC_H  #define _ASM_SCORE_ATOMIC_H +#include <asm/cmpxchg.h>  #include <asm-generic/atomic.h>  #endif /* _ASM_SCORE_ATOMIC_H */ diff --git a/arch/score/include/asm/barrier.h b/arch/score/include/asm/barrier.h new file mode 100644 index 00000000000..0eacb6471e6 --- /dev/null +++ b/arch/score/include/asm/barrier.h @@ -0,0 +1,16 @@ +#ifndef _ASM_SCORE_BARRIER_H +#define _ASM_SCORE_BARRIER_H + +#define mb()		barrier() +#define rmb()		barrier() +#define wmb()		barrier() +#define smp_mb()	barrier() +#define smp_rmb()	barrier() +#define smp_wmb()	barrier() + +#define read_barrier_depends()		do {} while (0) +#define smp_read_barrier_depends()	do {} while (0) + +#define set_mb(var, value) 		do {var = value; wmb(); } while (0) + +#endif /* _ASM_SCORE_BARRIER_H */ diff --git a/arch/score/include/asm/bitops.h b/arch/score/include/asm/bitops.h index 2763b050fca..a304096b189 100644 --- a/arch/score/include/asm/bitops.h +++ b/arch/score/include/asm/bitops.h @@ -2,7 +2,6 @@  #define _ASM_SCORE_BITOPS_H  #include <asm/byteorder.h> /* swab32 */ -#include <asm/system.h> /* save_flags */  /*   * clear_bit() doesn't provide any barrier for the compiler. diff --git a/arch/score/include/asm/bug.h b/arch/score/include/asm/bug.h index bb76a330bcf..fd7164af1f0 100644 --- a/arch/score/include/asm/bug.h +++ b/arch/score/include/asm/bug.h @@ -3,4 +3,15 @@  #include <asm-generic/bug.h> +struct pt_regs; +extern void __die(const char *, struct pt_regs *, const char *, +	const char *, unsigned long) __attribute__((noreturn)); +extern void __die_if_kernel(const char *, struct pt_regs *, const char *, +	const char *, unsigned long); + +#define die(msg, regs)							\ +	__die(msg, regs, __FILE__ ":", __func__, __LINE__) +#define die_if_kernel(msg, regs)					\ +	__die_if_kernel(msg, regs, __FILE__ ":", __func__, __LINE__) +  #endif /* _ASM_SCORE_BUG_H */ diff --git a/arch/score/include/asm/cmpxchg.h b/arch/score/include/asm/cmpxchg.h new file mode 100644 index 00000000000..f384839c3ee --- /dev/null +++ b/arch/score/include/asm/cmpxchg.h @@ -0,0 +1,49 @@ +#ifndef _ASM_SCORE_CMPXCHG_H +#define _ASM_SCORE_CMPXCHG_H + +#include <linux/irqflags.h> + +struct __xchg_dummy { unsigned long a[100]; }; +#define __xg(x) ((struct __xchg_dummy *)(x)) + +static inline +unsigned long __xchg(volatile unsigned long *m, unsigned long val) +{ +	unsigned long retval; +	unsigned long flags; + +	local_irq_save(flags); +	retval = *m; +	*m = val; +	local_irq_restore(flags); +	return retval; +} + +#define xchg(ptr, v)						\ +	((__typeof__(*(ptr))) __xchg((unsigned long *)(ptr),	\ +					(unsigned long)(v))) + +static inline unsigned long __cmpxchg(volatile unsigned long *m, +				unsigned long old, unsigned long new) +{ +	unsigned long retval; +	unsigned long flags; + +	local_irq_save(flags); +	retval = *m; +	if (retval == old) +		*m = new; +	local_irq_restore(flags); +	return retval; +} + +#define cmpxchg(ptr, o, n)					\ +	((__typeof__(*(ptr))) __cmpxchg((unsigned long *)(ptr),	\ +					(unsigned long)(o),	\ +					(unsigned long)(n))) + +#define __HAVE_ARCH_CMPXCHG	1 + +#include <asm-generic/cmpxchg-local.h> + +#endif /* _ASM_SCORE_CMPXCHG_H */ diff --git a/arch/score/include/asm/exec.h b/arch/score/include/asm/exec.h new file mode 100644 index 00000000000..f9f3cd59c86 --- /dev/null +++ b/arch/score/include/asm/exec.h @@ -0,0 +1,6 @@ +#ifndef _ASM_SCORE_EXEC_H +#define _ASM_SCORE_EXEC_H + +extern unsigned long arch_align_stack(unsigned long sp); + +#endif /* _ASM_SCORE_EXEC_H */ diff --git a/arch/score/include/asm/switch_to.h b/arch/score/include/asm/switch_to.h new file mode 100644 index 00000000000..031756b59ec --- /dev/null +++ b/arch/score/include/asm/switch_to.h @@ -0,0 +1,13 @@ +#ifndef _ASM_SCORE_SWITCH_TO_H +#define _ASM_SCORE_SWITCH_TO_H + +extern void *resume(void *last, void *next, void *next_ti); + +#define switch_to(prev, next, last)				\ +do {								\ +	(last) = resume(prev, next, task_thread_info(next));	\ +} while (0) + +#define finish_arch_switch(prev)	do {} while (0) + +#endif /* _ASM_SCORE_SWITCH_TO_H */ diff --git a/arch/score/include/asm/system.h b/arch/score/include/asm/system.h index 589d5c7e171..a7f40578587 100644 --- a/arch/score/include/asm/system.h +++ b/arch/score/include/asm/system.h @@ -1,90 +1,5 @@ -#ifndef _ASM_SCORE_SYSTEM_H -#define _ASM_SCORE_SYSTEM_H - -#include <linux/types.h> -#include <linux/irqflags.h> - -struct pt_regs; -struct task_struct; - -extern void *resume(void *last, void *next, void *next_ti); - -#define switch_to(prev, next, last)				\ -do {								\ -	(last) = resume(prev, next, task_thread_info(next));	\ -} while (0) - -#define finish_arch_switch(prev)	do {} while (0) - -typedef void (*vi_handler_t)(void); -extern unsigned long arch_align_stack(unsigned long sp); - -#define mb()		barrier() -#define rmb()		barrier() -#define wmb()		barrier() -#define smp_mb()	barrier() -#define smp_rmb()	barrier() -#define smp_wmb()	barrier() - -#define read_barrier_depends()		do {} while (0) -#define smp_read_barrier_depends()	do {} while (0) - -#define set_mb(var, value) 		do {var = value; wmb(); } while (0) - -#define __HAVE_ARCH_CMPXCHG	1 - -#include <asm-generic/cmpxchg-local.h> - -#ifndef __ASSEMBLY__ - -struct __xchg_dummy { unsigned long a[100]; }; -#define __xg(x) ((struct __xchg_dummy *)(x)) - -static inline -unsigned long __xchg(volatile unsigned long *m, unsigned long val) -{ -	unsigned long retval; -	unsigned long flags; - -	local_irq_save(flags); -	retval = *m; -	*m = val; -	local_irq_restore(flags); -	return retval; -} - -#define xchg(ptr, v)						\ -	((__typeof__(*(ptr))) __xchg((unsigned long *)(ptr),	\ -					(unsigned long)(v))) - -static inline unsigned long __cmpxchg(volatile unsigned long *m, -				unsigned long old, unsigned long new) -{ -	unsigned long retval; -	unsigned long flags; - -	local_irq_save(flags); -	retval = *m; -	if (retval == old) -		*m = new; -	local_irq_restore(flags); -	return retval; -} - -#define cmpxchg(ptr, o, n)					\ -	((__typeof__(*(ptr))) __cmpxchg((unsigned long *)(ptr),	\ -					(unsigned long)(o),	\ -					(unsigned long)(n))) - -extern void __die(const char *, struct pt_regs *, const char *, -	const char *, unsigned long) __attribute__((noreturn)); -extern void __die_if_kernel(const char *, struct pt_regs *, const char *, -	const char *, unsigned long); - -#define die(msg, regs)							\ -	__die(msg, regs, __FILE__ ":", __func__, __LINE__) -#define die_if_kernel(msg, regs)					\ -	__die_if_kernel(msg, regs, __FILE__ ":", __func__, __LINE__) - -#endif /* !__ASSEMBLY__ */ -#endif /* _ASM_SCORE_SYSTEM_H */ +/* FILE TO BE DELETED. DO NOT ADD STUFF HERE! */ +#include <asm/barrier.h> +#include <asm/cmpxchg.h> +#include <asm/exec.h> +#include <asm/switch_to.h>  |