diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-06-22 23:05:57 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-06-22 23:05:57 +0000 |
commit | 51d3b7814cdccef9188240fe0cbd8d97ff2c7470 (patch) | |
tree | 5cbb01d0323d4f63ade66bdf48ba4a91aaa6df16 /include/asm-arm/system.h | |
parent | 52273a23c9a84336b93a35e4847fc88fac7eb0e4 (diff) |
Merge with Linux 2.3.7.
WARNING: 2.3.7 is known to eat filesystems for breakfast and little
children for lunch, so if you try this on your machine make backups
first ...
Diffstat (limited to 'include/asm-arm/system.h')
-rw-r--r-- | include/asm-arm/system.h | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h index 2874c4661..80252899d 100644 --- a/include/asm-arm/system.h +++ b/include/asm-arm/system.h @@ -35,7 +35,7 @@ extern unsigned int __machine_arch_type; /* * Sort out a definition for machine_arch_type - * The rules basically are: + * The rules are: * 1. If one architecture is selected, then all machine_is_xxx() * are constant. * 2. If two or more architectures are selected, then the selected @@ -118,28 +118,16 @@ extern unsigned int __machine_arch_type; #define machine_arch_type __machine_arch_type #endif -/* - * task_struct isn't always declared - forward-declare it here. - */ -struct task_struct; - #include <asm/proc-fns.h> -extern void arm_malalignedptr(const char *, void *, volatile void *); -extern void arm_invalidptr(const char *, int); - #define xchg(ptr,x) \ ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) #define tas(ptr) (xchg((ptr),1)) -/* - * switch_to(prev, next) should switch from task `prev' to `next' - * `prev' will never be the same as `next'. - * - * `next' and `prev' should be struct task_struct, but it isn't always defined - */ -#define switch_to(prev,next,last) do { last = processor._switch_to(prev,next); } while (0) +extern void arm_malalignedptr(const char *, void *, volatile void *); +extern void arm_invalidptr(const char *, int); +extern asmlinkage void __backtrace(void); /* * Include processor dependent parts @@ -152,7 +140,16 @@ extern void arm_invalidptr(const char *, int); #define wmb() mb() #define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t"); -extern asmlinkage void __backtrace(void); +/* + * switch_to(prev, next) should switch from task `prev' to `next' + * `prev' will never be the same as `next'. + * The `mb' is to tell GCC not to cache `current' across this call. + */ +#define switch_to(prev,next,last) \ + do { \ + last = processor._switch_to(prev,next); \ + mb(); \ + } while (0) #endif |