brintos

brintos / linux-shallow public Read only

0
0
Text · 973 B · 228fba4 Raw
47 lines · plain
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * Copyright 2015, Cyril Bur, IBM Corp.4 */5 6#include "basic_asm.h"7 8/* long signal_self(pid_t pid, int sig); */9FUNC_START(signal_self)10	li	r0,37 /* sys_kill */11	/* r3 already has our pid in it */12	/* r4 already has signal type in it */13	sc14	bc	4,3,1f15	subfze	r3,r3161:	blr17FUNC_END(signal_self)18 19/* long tm_signal_self(pid_t pid, int sig, int *ret); */20FUNC_START(tm_signal_self)21	PUSH_BASIC_STACK(8)22	std	r5,STACK_FRAME_PARAM(0)(sp) /* ret */23	tbegin.24	beq	1f25	tsuspend.26	li	r0,37 /* sys_kill */27	/* r3 already has our pid in it */28	/* r4 already has signal type in it */29	sc30	ld	r5,STACK_FRAME_PARAM(0)(sp) /* ret */31	bc	4,3,2f32	subfze	r3,r3332:	std	r3,0(r5)34	tabort. 035	tresume. /* Be nice to some cleanup, jumps back to tbegin then to 1: */36	/*37	 * Transaction should be proper doomed and we should never get38	 * here39	 */40	li	r3,141	POP_BASIC_STACK(8)42	blr431:	li	r3,044	POP_BASIC_STACK(8)45	blr46FUNC_END(tm_signal_self)47