162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#include <basic_asm.h>
362306a36Sopenharmony_ci#include <asm/unistd.h>
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci	.text
662306a36Sopenharmony_ciFUNC_START(getppid_tm_active)
762306a36Sopenharmony_ci	tbegin.
862306a36Sopenharmony_ci	beq 1f
962306a36Sopenharmony_ci	li	r0, __NR_getppid
1062306a36Sopenharmony_ci	sc
1162306a36Sopenharmony_ci	tend.
1262306a36Sopenharmony_ci	blr
1362306a36Sopenharmony_ci1:
1462306a36Sopenharmony_ci	li	r3, -1
1562306a36Sopenharmony_ci	blr
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciFUNC_START(getppid_tm_suspended)
1862306a36Sopenharmony_ci	tbegin.
1962306a36Sopenharmony_ci	beq 1f
2062306a36Sopenharmony_ci	li	r0, __NR_getppid
2162306a36Sopenharmony_ci	tsuspend.
2262306a36Sopenharmony_ci	sc
2362306a36Sopenharmony_ci	tresume.
2462306a36Sopenharmony_ci	tend.
2562306a36Sopenharmony_ci	blr
2662306a36Sopenharmony_ci1:
2762306a36Sopenharmony_ci	li	r3, -1
2862306a36Sopenharmony_ci	blr
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci.macro scv level
3262306a36Sopenharmony_ci	.long (0x44000001 | (\level) << 5)
3362306a36Sopenharmony_ci.endm
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciFUNC_START(getppid_scv_tm_active)
3662306a36Sopenharmony_ci	PUSH_BASIC_STACK(0)
3762306a36Sopenharmony_ci	tbegin.
3862306a36Sopenharmony_ci	beq 1f
3962306a36Sopenharmony_ci	li	r0, __NR_getppid
4062306a36Sopenharmony_ci	scv	0
4162306a36Sopenharmony_ci	tend.
4262306a36Sopenharmony_ci	POP_BASIC_STACK(0)
4362306a36Sopenharmony_ci	blr
4462306a36Sopenharmony_ci1:
4562306a36Sopenharmony_ci	li	r3, -1
4662306a36Sopenharmony_ci	POP_BASIC_STACK(0)
4762306a36Sopenharmony_ci	blr
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciFUNC_START(getppid_scv_tm_suspended)
5062306a36Sopenharmony_ci	PUSH_BASIC_STACK(0)
5162306a36Sopenharmony_ci	tbegin.
5262306a36Sopenharmony_ci	beq 1f
5362306a36Sopenharmony_ci	li	r0, __NR_getppid
5462306a36Sopenharmony_ci	tsuspend.
5562306a36Sopenharmony_ci	scv	0
5662306a36Sopenharmony_ci	tresume.
5762306a36Sopenharmony_ci	tend.
5862306a36Sopenharmony_ci	POP_BASIC_STACK(0)
5962306a36Sopenharmony_ci	blr
6062306a36Sopenharmony_ci1:
6162306a36Sopenharmony_ci	li	r3, -1
6262306a36Sopenharmony_ci	POP_BASIC_STACK(0)
6362306a36Sopenharmony_ci	blr
64