brintos

brintos / linux-shallow public Read only

0
0
Text · 942 B · a10d36a Raw
50 lines · plain
1/* SPDX-License-Identifier: GPL-2.0 */2.global sys32_helper3sys32_helper:4	/* Args: syscall_args_32*, function pointer */5	pushl	%ebp6	pushl	%ebx7	pushl	%esi8	pushl	%edi9	movl	5*4(%esp), %eax	/* pointer to args struct */10 11	movl	1*4(%eax), %ebx12	movl	2*4(%eax), %ecx13	movl	3*4(%eax), %edx14	movl	4*4(%eax), %esi15	movl	5*4(%eax), %edi16	movl	6*4(%eax), %ebp17	movl	0*4(%eax), %eax18 19	call	*(6*4)(%esp)	/* Do the syscall */20 21	/* Now we need to recover without losing any reg values */22	pushl	%eax23	movl	6*4(%esp), %eax24	popl	0*4(%eax)25	movl	%ebx, 1*4(%eax)26	movl	%ecx, 2*4(%eax)27	movl	%edx, 3*4(%eax)28	movl	%esi, 4*4(%eax)29	movl	%edi, 5*4(%eax)30	movl	%ebp, 6*4(%eax)31 32	popl	%edi33	popl	%esi34	popl	%ebx35	popl	%ebp36	ret37 38	.type sys32_helper, @function39	.size sys32_helper, .-sys32_helper40 41.global int80_and_ret42int80_and_ret:43	int	$0x8044	ret45 46	.type int80_and_ret, @function47	.size int80_and_ret, .-int80_and_ret48 49.section .note.GNU-stack,"",%progbits50