fixed_code.h 1.1 KB

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