Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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