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