armv7.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #ifndef __ARMV7_H__
  2. #define __ARMV7_H__
  3. /* the exception stack without VFP registers */
  4. struct rt_hw_exp_stack
  5. {
  6. unsigned long r0;
  7. unsigned long r1;
  8. unsigned long r2;
  9. unsigned long r3;
  10. unsigned long r4;
  11. unsigned long r5;
  12. unsigned long r6;
  13. unsigned long r7;
  14. unsigned long r8;
  15. unsigned long r9;
  16. unsigned long r10;
  17. unsigned long fp;
  18. unsigned long ip;
  19. unsigned long sp;
  20. unsigned long lr;
  21. unsigned long pc;
  22. unsigned long cpsr;
  23. };
  24. struct rt_hw_stack
  25. {
  26. unsigned long cpsr;
  27. unsigned long r0;
  28. unsigned long r1;
  29. unsigned long r2;
  30. unsigned long r3;
  31. unsigned long r4;
  32. unsigned long r5;
  33. unsigned long r6;
  34. unsigned long r7;
  35. unsigned long r8;
  36. unsigned long r9;
  37. unsigned long r10;
  38. unsigned long fp;
  39. unsigned long ip;
  40. unsigned long lr;
  41. unsigned long pc;
  42. };
  43. #define USERMODE 0x10
  44. #define FIQMODE 0x11
  45. #define IRQMODE 0x12
  46. #define SVCMODE 0x13
  47. #define MONITORMODE 0x16
  48. #define ABORTMODE 0x17
  49. #define HYPMODE 0x1b
  50. #define UNDEFMODE 0x1b
  51. #define MODEMASK 0x1f
  52. #define NOINT 0xc0
  53. #define T_Bit (1<<5)
  54. #define F_Bit (1<<6)
  55. #define I_Bit (1<<7)
  56. #define A_Bit (1<<8)
  57. #define E_Bit (1<<9)
  58. #define J_Bit (1<<24)
  59. #endif