1 /* This file defines the fixed addresses where userspace programs can find
2 atomic code sequences. */
4 #ifndef __BFIN_ASM_FIXED_CODE_H__
5 #define __BFIN_ASM_FIXED_CODE_H__
9 #include <linux/linkage.h>
10 #include <linux/ptrace.h>
11 extern asmlinkage void finish_atomic_sections(struct pt_regs *regs);
12 extern char fixed_code_start;
13 extern char fixed_code_end;
14 extern int atomic_xchg32(void);
15 extern int atomic_cas32(void);
16 extern int atomic_add32(void);
17 extern int atomic_sub32(void);
18 extern int atomic_ior32(void);
19 extern int atomic_and32(void);
20 extern int atomic_xor32(void);
21 extern void safe_user_instruction(void);
22 extern void sigreturn_stub(void);
26 #define FIXED_CODE_START 0x400
28 #define SIGRETURN_STUB 0x400
30 #define ATOMIC_SEQS_START 0x410
32 #define ATOMIC_XCHG32 0x410
33 #define ATOMIC_CAS32 0x420
34 #define ATOMIC_ADD32 0x430
35 #define ATOMIC_SUB32 0x440
36 #define ATOMIC_IOR32 0x450
37 #define ATOMIC_AND32 0x460
38 #define ATOMIC_XOR32 0x470
40 #define ATOMIC_SEQS_END 0x480
42 #define SAFE_USER_INSTRUCTION 0x480
44 #define FIXED_CODE_END 0x490