tm-syscall-asm.S 754 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #include <basic_asm.h>
  3. #include <asm/unistd.h>
  4. .text
  5. FUNC_START(getppid_tm_active)
  6. tbegin.
  7. beq 1f
  8. li r0, __NR_getppid
  9. sc
  10. tend.
  11. blr
  12. 1:
  13. li r3, -1
  14. blr
  15. FUNC_START(getppid_tm_suspended)
  16. tbegin.
  17. beq 1f
  18. li r0, __NR_getppid
  19. tsuspend.
  20. sc
  21. tresume.
  22. tend.
  23. blr
  24. 1:
  25. li r3, -1
  26. blr
  27. .macro scv level
  28. .long (0x44000001 | (\level) << 5)
  29. .endm
  30. FUNC_START(getppid_scv_tm_active)
  31. PUSH_BASIC_STACK(0)
  32. tbegin.
  33. beq 1f
  34. li r0, __NR_getppid
  35. scv 0
  36. tend.
  37. POP_BASIC_STACK(0)
  38. blr
  39. 1:
  40. li r3, -1
  41. POP_BASIC_STACK(0)
  42. blr
  43. FUNC_START(getppid_scv_tm_suspended)
  44. PUSH_BASIC_STACK(0)
  45. tbegin.
  46. beq 1f
  47. li r0, __NR_getppid
  48. tsuspend.
  49. scv 0
  50. tresume.
  51. tend.
  52. POP_BASIC_STACK(0)
  53. blr
  54. 1:
  55. li r3, -1
  56. POP_BASIC_STACK(0)
  57. blr