![]() |
|
|||
0001 /* SPDX-License-Identifier: GPL-2.0-or-later */ 0002 /* 0003 * Copyright 2015, Cyril Bur, IBM Corp. 0004 */ 0005 0006 #include "basic_asm.h" 0007 0008 /* long signal_self(pid_t pid, int sig); */ 0009 FUNC_START(signal_self) 0010 li r0,37 /* sys_kill */ 0011 /* r3 already has our pid in it */ 0012 /* r4 already has signal type in it */ 0013 sc 0014 bc 4,3,1f 0015 subfze r3,r3 0016 1: blr 0017 FUNC_END(signal_self) 0018 0019 /* long tm_signal_self(pid_t pid, int sig, int *ret); */ 0020 FUNC_START(tm_signal_self) 0021 PUSH_BASIC_STACK(8) 0022 std r5,STACK_FRAME_PARAM(0)(sp) /* ret */ 0023 tbegin. 0024 beq 1f 0025 tsuspend. 0026 li r0,37 /* sys_kill */ 0027 /* r3 already has our pid in it */ 0028 /* r4 already has signal type in it */ 0029 sc 0030 ld r5,STACK_FRAME_PARAM(0)(sp) /* ret */ 0031 bc 4,3,2f 0032 subfze r3,r3 0033 2: std r3,0(r5) 0034 tabort. 0 0035 tresume. /* Be nice to some cleanup, jumps back to tbegin then to 1: */ 0036 /* 0037 * Transaction should be proper doomed and we should never get 0038 * here 0039 */ 0040 li r3,1 0041 POP_BASIC_STACK(8) 0042 blr 0043 1: li r3,0 0044 POP_BASIC_STACK(8) 0045 blr 0046 FUNC_END(tm_signal_self)
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |