0001
0002 #include <basic_asm.h>
0003 #include <asm/unistd.h>
0004
0005 .text
0006 FUNC_START(getppid_tm_active)
0007 tbegin.
0008 beq 1f
0009 li r0, __NR_getppid
0010 sc
0011 tend.
0012 blr
0013 1:
0014 li r3, -1
0015 blr
0016
0017 FUNC_START(getppid_tm_suspended)
0018 tbegin.
0019 beq 1f
0020 li r0, __NR_getppid
0021 tsuspend.
0022 sc
0023 tresume.
0024 tend.
0025 blr
0026 1:
0027 li r3, -1
0028 blr
0029
0030
0031 .macro scv level
0032 .long (0x44000001 | (\level) << 5)
0033 .endm
0034
0035 FUNC_START(getppid_scv_tm_active)
0036 PUSH_BASIC_STACK(0)
0037 tbegin.
0038 beq 1f
0039 li r0, __NR_getppid
0040 scv 0
0041 tend.
0042 POP_BASIC_STACK(0)
0043 blr
0044 1:
0045 li r3, -1
0046 POP_BASIC_STACK(0)
0047 blr
0048
0049 FUNC_START(getppid_scv_tm_suspended)
0050 PUSH_BASIC_STACK(0)
0051 tbegin.
0052 beq 1f
0053 li r0, __NR_getppid
0054 tsuspend.
0055 scv 0
0056 tresume.
0057 tend.
0058 POP_BASIC_STACK(0)
0059 blr
0060 1:
0061 li r3, -1
0062 POP_BASIC_STACK(0)
0063 blr