]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-avr32/system.h
Mem Policy: add MPOL_F_MEMS_ALLOWED get_mempolicy() flag
[linux-2.6-omap-h63xx.git] / include / asm-avr32 / system.h
index ac596058697dce633b4a82092f82c3932903a159..dc2d527cef4132532db6bda322f66167618f1d7f 100644 (file)
@@ -9,6 +9,7 @@
 #define __ASM_AVR32_SYSTEM_H
 
 #include <linux/compiler.h>
+#include <linux/linkage.h>
 #include <linux/types.h>
 
 #include <asm/ptrace.h>
@@ -72,11 +73,16 @@ extern struct task_struct *__switch_to(struct task_struct *,
 
 extern void __xchg_called_with_bad_pointer(void);
 
-#ifdef __CHECKER__
-extern unsigned long __builtin_xchg(void *ptr, unsigned long x);
-#endif
+static inline unsigned long xchg_u32(u32 val, volatile u32 *m)
+{
+       u32 ret;
 
-#define xchg_u32(val, m) __builtin_xchg((void *)m, val)
+       asm volatile("xchg %[ret], %[m], %[val]"
+                       : [ret] "=&r"(ret), "=m"(*m)
+                       : "m"(*m), [m] "r"(m), [val] "r"(val)
+                       : "memory");
+       return ret;
+}
 
 static inline unsigned long __xchg(unsigned long x,
                                       volatile void *ptr,
@@ -140,15 +146,9 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
                                   sizeof(*(ptr))))
 
 struct pt_regs;
-extern void __die(const char *, struct pt_regs *, unsigned long,
-                 const char *, const char *, unsigned long);
-extern void __die_if_kernel(const char *, struct pt_regs *, unsigned long,
-                           const char *, const char *, unsigned long);
-
-#define die(msg, regs, err)                                    \
-       __die(msg, regs, err, __FILE__ ":", __FUNCTION__, __LINE__)
-#define die_if_kernel(msg, regs, err)                                  \
-       __die_if_kernel(msg, regs, err, __FILE__ ":", __FUNCTION__, __LINE__)
+void NORET_TYPE die(const char *str, struct pt_regs *regs, long err);
+void _exception(long signr, struct pt_regs *regs, int code,
+               unsigned long addr);
 
 #define arch_align_stack(x)    (x)