diff options
Diffstat (limited to 'libpthread/linuxthreads/sysdeps/unix')
8 files changed, 0 insertions, 733 deletions
| diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h deleted file mode 100644 index 6b588257d..000000000 --- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h +++ /dev/null @@ -1,71 +0,0 @@ -/* bits/typesizes.h -- underlying types for *_t.  Linux/s390 version. -   Copyright (C) 2003 Free Software Foundation, Inc. -   This file is part of the GNU C Library. - -   The GNU C Library is free software; you can redistribute it and/or -   modify it under the terms of the GNU Lesser General Public -   License as published by the Free Software Foundation; either -   version 2.1 of the License, or (at your option) any later version. - -   The GNU C Library is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   Lesser General Public License for more details. - -   You should have received a copy of the GNU Lesser General Public -   License along with the GNU C Library; if not, see -   <http://www.gnu.org/licenses/>.  */ - -#ifndef _BITS_TYPES_H -# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." -#endif - -#ifndef	_BITS_TYPESIZES_H -#define	_BITS_TYPESIZES_H	1 - -/* See <bits/types.h> for the meaning of these macros.  This file exists so -   that <bits/types.h> need not vary across different GNU platforms.  */ - -#define __DEV_T_TYPE		__UQUAD_TYPE -#define __UID_T_TYPE		__U32_TYPE -#define __GID_T_TYPE		__U32_TYPE -#define __INO_T_TYPE		__ULONGWORD_TYPE -#define __INO64_T_TYPE		__UQUAD_TYPE -#define __MODE_T_TYPE		__U32_TYPE -#define __NLINK_T_TYPE		__UWORD_TYPE -#define __OFF_T_TYPE		__SLONGWORD_TYPE -#define __OFF64_T_TYPE		__SQUAD_TYPE -#define __PID_T_TYPE		__S32_TYPE -#define __RLIM_T_TYPE		__ULONGWORD_TYPE -#define __RLIM64_T_TYPE		__UQUAD_TYPE -#define	__BLKCNT_T_TYPE		__SLONGWORD_TYPE -#define	__BLKCNT64_T_TYPE	__SQUAD_TYPE -#define	__FSBLKCNT_T_TYPE	__ULONGWORD_TYPE -#define	__FSBLKCNT64_T_TYPE	__UQUAD_TYPE -#define	__FSFILCNT_T_TYPE	__ULONGWORD_TYPE -#define	__FSFILCNT64_T_TYPE	__UQUAD_TYPE -#define	__ID_T_TYPE		__U32_TYPE -#define __CLOCK_T_TYPE		__SLONGWORD_TYPE -#define __TIME_T_TYPE		__SLONGWORD_TYPE -#define __USECONDS_T_TYPE	__U32_TYPE -#define __SUSECONDS_T_TYPE	__SLONGWORD_TYPE -#define __DADDR_T_TYPE		__S32_TYPE -#define __SWBLK_T_TYPE		__SLONGWORD_TYPE -#define __KEY_T_TYPE		__S32_TYPE -#define __CLOCKID_T_TYPE	__S32_TYPE -#define __TIMER_T_TYPE		__S32_TYPE -#define __BLKSIZE_T_TYPE	__SLONGWORD_TYPE -#define __FSID_T_TYPE		struct { int __val[2]; } -#if defined __GNUC__ && __GNUC__ <= 2 -/* Compatibility with g++ 2.95.x.  */ -#define __SSIZE_T_TYPE		__SWORD_TYPE -#else -/* size_t is unsigned long int on s390 -m31.  */ -#define __SSIZE_T_TYPE		__SLONGWORD_TYPE -#endif - -/* Number of descriptors that can fit in an `fd_set'.  */ -#define	__FD_SETSIZE		1024 - - -#endif /* bits/typesizes.h */ diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c deleted file mode 100644 index cde418307..000000000 --- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c +++ /dev/null @@ -1,153 +0,0 @@ -/* Special .init and .fini section support for S/390. -   Copyright (C) 2000, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. - -   The GNU C Library is free software; you can redistribute it -   and/or modify it under the terms of the GNU Lesser General Public -   License as published by the Free Software Foundation; either -   version 2.1 of the License, or (at your option) any later version. - -   In addition to the permissions in the GNU Lesser General Public -   License, the Free Software Foundation gives you unlimited -   permission to link the compiled version of this file with other -   programs, and to distribute those programs without any restriction -   coming from the use of this file.  (The Lesser General Public -   License restrictions do apply in other respects; for example, they -   cover modification of the file, and distribution when not linked -   into another program.) - -   The GNU C Library is distributed in the hope that it will be -   useful, but WITHOUT ANY WARRANTY; without even the implied warranty -   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -   GNU Lesser General Public License for more details. - -   You should have received a copy of the GNU Lesser General Public -   License along with the GNU C Library; see the file COPYING.LIB.  If not, -   see <http://www.gnu.org/licenses/>.  */ - -/* This file is compiled into assembly code which is then munged by a sed -   script into two files: crti.s and crtn.s. - -   * crti.s puts a function prologue at the beginning of the -   .init and .fini sections and defines global symbols for -   those addresses, so they can be called as functions. - -   * crtn.s puts the corresponding function epilogues -   in the .init and .fini sections. */ - -__asm__ ("\ -\n\ -#include \"defs.h\"\n\ -\n\ -/*@HEADER_ENDS*/\n\ -\n\ -/*@TESTS_BEGIN*/\n\ -\n\ -/*@TESTS_END*/\n\ -\n\ -/*@_init_PROLOG_BEGINS*/\n\ -\n\ -	.section .init\n\ -#NO_APP\n\ -	.align 4\n\ -.globl _init\n\ -	.type	 _init,@function\n\ -_init:\n\ -#	leaf function           0\n\ -#	automatics              0\n\ -#	outgoing args           0\n\ -#	need frame pointer      0\n\ -#	call alloca             0\n\ -#	has varargs             0\n\ -#	incoming args (stack)   0\n\ -#	function length         36\n\ -	STM	6,15,24(15)\n\ -	BRAS	13,.LTN1_0\n\ -.LT1_0:\n\ -.LC13:\n\ -	.long	__pthread_initialize_minimal@PLT-.LT1_0\n\ -.LC14:\n\ -	.long	__gmon_start__@GOT\n\ -.LC15:\n\ -	.long	_GLOBAL_OFFSET_TABLE_-.LT1_0\n\ -.LTN1_0:\n\ -	LR	1,15\n\ -	AHI	15,-96\n\ -	ST	1,0(15)\n\ -	L	12,.LC15-.LT1_0(13)\n\ -	AR	12,13\n\ -	L     1,.LC13-.LT1_0(13)\n\ -	LA    1,0(1,13)\n\ -	BASR  14,1\n\ -	L     1,.LC14-.LT1_0(13)\n\ -	L     1,0(1,12)\n\ -	LTR   1,1\n\ -	JE    .L22\n\ -	BASR  14,1\n\ -.L22:\n\ -#APP\n\ -	.align 4,0x07\n\ -	END_INIT\n\ -\n\ -/*@_init_PROLOG_ENDS*/\n\ -\n\ -/*@_init_EPILOG_BEGINS*/\n\ -	.align 4\n\ -	.section .init\n\ -#NO_APP\n\ -	.align 4\n\ -	L	4,152(15)\n\ -	LM	6,15,120(15)\n\ -	BR	4\n\ -#APP\n\ -	END_INIT\n\ -\n\ -/*@_init_EPILOG_ENDS*/\n\ -\n\ -/*@_fini_PROLOG_BEGINS*/\n\ -	.section .fini\n\ -#NO_APP\n\ -	.align 4\n\ -.globl _fini\n\ -	.type	 _fini,@function\n\ -_fini:\n\ -#	leaf function           0\n\ -#	automatics              0\n\ -#	outgoing args           0\n\ -#	need frame pointer      0\n\ -#	call alloca             0\n\ -#	has varargs             0\n\ -#	incoming args (stack)   0\n\ -#	function length         30\n\ -	STM	6,15,24(15)\n\ -	BRAS	13,.LTN2_0\n\ -.LT2_0:\n\ -.LC17:\n\ -	.long	_GLOBAL_OFFSET_TABLE_-.LT2_0\n\ -.LTN2_0:\n\ -	LR	1,15\n\ -	AHI	15,-96\n\ -	ST	1,0(15)\n\ -	L	12,.LC17-.LT2_0(13)\n\ -	AR	12,13\n\ -#APP\n\ -	.align 4,0x07\n\ -	END_FINI\n\ -\n\ -/*@_fini_PROLOG_ENDS*/\n\ -\n\ -/*@_fini_EPILOG_BEGINS*/\n\ -	.align 4\n\ -	.section .fini\n\ -#NO_APP\n\ -	.align 4\n\ -	L	4,152(15)\n\ -	LM	6,15,120(15)\n\ -	BR	4\n\ -#APP\n\ -	END_FINI\n\ -\n\ -/*@_fini_EPILOG_ENDS*/\n\ -\n\ -/*@TRAILER_BEGINS*/\ -"); diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h deleted file mode 100644 index 2431129e5..000000000 --- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h +++ /dev/null @@ -1,136 +0,0 @@ -/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. - -   The GNU C Library is free software; you can redistribute it and/or -   modify it under the terms of the GNU Lesser General Public -   License as published by the Free Software Foundation; either -   version 2.1 of the License, or (at your option) any later version. - -   The GNU C Library is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   Lesser General Public License for more details. - -   You should have received a copy of the GNU Lesser General Public -   License along with the GNU C Library; if not, see -   <http://www.gnu.org/licenses/>.  */ - -#include <sysdep.h> -#include <tls.h> -#ifndef __ASSEMBLER__ -# include <linuxthreads/internals.h> -#endif - -#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt - -# if !defined NOT_IN_libc || defined IS_IN_libpthread - -#  define PSEUDO_CANCEL(name, syscall_name, args)			      \ -L(pseudo_cancel):							      \ -	STM_##args							      \ -	stm	%r12,%r15,48(%r15);					      \ -	lr	%r14,%r15;						      \ -	ahi	%r15,-96;						      \ -	st	%r14,0(%r15);						      \ -	basr    %r13,0;							      \ -0:	l	%r1,1f-0b(%r13);					      \ -	bas	%r14,0(%r1,%r13);					      \ -	lr	%r0,%r2;						      \ -	LM_##args							      \ -	DO_CALL(syscall_name, args);					      \ -	l	%r1,2f-0b(%r13);					      \ -	lr	%r12,%r2;						      \ -	lr	%r2,%r0;						      \ -	bas	%r14,0(%r1,%r13);					      \ -	lr	%r2,%r12;						      \ -	lm	%r12,%r15,48+96(%r15);					      \ -	j	L(pseudo_check);					      \ -1:	.long	CENABLE-0b;						      \ -2:	.long	CDISABLE-0b; - -# else /* !libc.so && !libpthread.so */ - -#  define PSEUDO_CANCEL(name, syscall_name, args)			      \ -L(pseudo_cancel):							      \ -	STM_##args							      \ -	stm	%r11,%r15,44(%r15);					      \ -	lr	%r14,%r15;						      \ -	ahi	%r15,-96;						      \ -	st	%r14,0(%r15);						      \ -	basr    %r13,0;							      \ -0:	l	%r12,3f-0b(%r13);					      \ -	l	%r1,1f-0b(%r13);					      \ -	la	%r12,0(%r12,%r13);					      \ -	bas	%r14,0(%r1,%r13);					      \ -	lr	%r0,%r2;						      \ -	LM_##args							      \ -	DO_CALL(syscall_name, args);					      \ -	l	%r1,2f-0b(%r13);					      \ -	lr	%r11,%r2;						      \ -	lr	%r2,%r0;						      \ -	bas	%r14,0(%r1,%r13);					      \ -	lr	%r2,%r11;						      \ -	lm	%r11,%r15,44+96(%r15);					      \ -	j	L(pseudo_check);					      \ -1:	.long	CENABLE@PLT-0b;						      \ -2:	.long	CDISABLE@PLT-0b;					      \ -3:	.long	_GLOBAL_OFFSET_TABLE_-0b; - -# endif - -# undef PSEUDO -# define PSEUDO(name, syscall_name, args)				      \ -	.text;								      \ -PSEUDO_CANCEL(name, syscall_name, args)					      \ -ENTRY(name)								      \ -	SINGLE_THREAD_P(%r1)						      \ -	jne	L(pseudo_cancel);					      \ -	DO_CALL(syscall_name, args);					      \ -L(pseudo_check):							      \ -	lhi	%r4,-4095;						      \ -	clr	%r2,%r4;						      \ -	jnl	SYSCALL_ERROR_LABEL;					      \ -L(pseudo_end): - -# ifdef IS_IN_libpthread -#  define CENABLE	__pthread_enable_asynccancel -#  define CDISABLE	__pthread_disable_asynccancel -# elif !defined NOT_IN_libc -#  define CENABLE	__libc_enable_asynccancel -#  define CDISABLE	__libc_disable_asynccancel -# else -#  define CENABLE	__librt_enable_asynccancel -#  define CDISABLE	__librt_disable_asynccancel -# endif - -#define STM_0		/* Nothing */ -#define STM_1		st %r2,8(%r15); -#define STM_2		stm %r2,%r3,8(%r15); -#define STM_3		stm %r2,%r4,8(%r15); -#define STM_4		stm %r2,%r5,8(%r15); -#define STM_5		stm %r2,%r5,8(%r15); - -#define LM_0		/* Nothing */ -#define LM_1		l %r2,8+96(%r15); -#define LM_2		lm %r2,%r3,8+96(%r15); -#define LM_3		lm %r2,%r4,8+96(%r15); -#define LM_4		lm %r2,%r5,8+96(%r15); -#define LM_5		lm %r2,%r5,8+96(%r15); - -# ifndef __ASSEMBLER__ -#  define SINGLE_THREAD_P \ -  __builtin_expect (THREAD_GETMEM (THREAD_SELF,				      \ -				   p_header.data.multiple_threads) == 0, 1) -# else -#  define SINGLE_THREAD_P(reg) \ -	ear	reg,%a0;						      \ -	icm	reg,15,MULTIPLE_THREADS_OFFSET(reg); -# endif - -#elif !defined __ASSEMBLER__ - -/* This code should never be used but we define it anyhow.  */ -# define SINGLE_THREAD_P (1) - -#endif diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S deleted file mode 100644 index 078c730fd..000000000 --- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright (C) 2003 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com> - -   The GNU C Library is free software; you can redistribute it and/or -   modify it under the terms of the GNU Lesser General Public -   License as published by the Free Software Foundation; either -   version 2.1 of the License, or (at your option) any later version. - -   The GNU C Library is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   Lesser General Public License for more details. - -   You should have received a copy of the GNU Lesser General Public -   License along with the GNU C Library; if not, see -   <http://www.gnu.org/licenses/>.  */ - -#include <sysdep-cancel.h> -#define _ERRNO_H	1 -#include <bits/errno.h> - -/* Clone the calling process, but without copying the whole address space. -   The calling process is suspended until the new process exits or is -   replaced by a call to `execve'.  Return -1 for errors, 0 to the new process, -   and the process ID of the new process to the old process.  */ - -ENTRY (__vfork) -	basr	%r1,0 -0: -#ifdef SHARED -	al	%r1,4f-0b(%r1) -	l	%r1,0(%r1) -	ltr	%r1,%r1 -#else -	icm	%r1,15,4f-0b(%r1) -#endif -	jne	1f - -	/* Do vfork system call.  */ -	svc	SYS_ify (vfork) - -	/* Check for error.  */ -	lhi	%r4,-4095 -	clr	%r2,%r4 -	jnl	SYSCALL_ERROR_LABEL - -	/* Normal return.  */ -	br	%r14 -1: -	basr	%r1,0 -2: -	al	%r1,3f-2b(%r1) -	br	%r1 -3: -	.long	HIDDEN_JUMPTARGET(fork)-2b -4: -#ifdef SHARED -	.long	__libc_pthread_functions-0b -#else -	.weak	pthread_create -	.long	pthread_create -#endif -PSEUDO_END(__vfork) - -libc_hidden_def (__vfork) - -weak_alias (__vfork, vfork) diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c deleted file mode 100644 index 136ce5442..000000000 --- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c +++ /dev/null @@ -1,136 +0,0 @@ -/* Special .init and .fini section support for 64 bit S/390. -   Copyright (C) 2001 Free Software Foundation, Inc. -   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com). -   This file is part of the GNU C Library. - -   The GNU C Library is free software; you can redistribute it -   and/or modify it under the terms of the GNU Lesser General Public -   License as published by the Free Software Foundation; either -   version 2.1 of the License, or (at your option) any later version. - -   In addition to the permissions in the GNU Lesser General Public -   License, the Free Software Foundation gives you unlimited -   permission to link the compiled version of this file with other -   programs, and to distribute those programs without any restriction -   coming from the use of this file.  (The Lesser General Public -   License restrictions do apply in other respects; for example, they -   cover modification of the file, and distribution when not linked -   into another program.) - -   The GNU C Library is distributed in the hope that it will be -   useful, but WITHOUT ANY WARRANTY; without even the implied warranty -   of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -   GNU Lesser General Public License for more details. - -   You should have received a copy of the GNU Lesser General Public -   License along with the GNU C Library; see the file COPYING.LIB.  If not, -   see <http://www.gnu.org/licenses/>.  */ - -/* This file is compiled into assembly code which is then munged by a sed -   script into two files: crti.s and crtn.s. - -   * crti.s puts a function prologue at the beginning of the -   .init and .fini sections and defines global symbols for -   those addresses, so they can be called as functions. - -   * crtn.s puts the corresponding function epilogues -   in the .init and .fini sections. */ - -__asm__ ("\ -\n\ -#include \"defs.h\"\n\ -\n\ -/*@HEADER_ENDS*/\n\ -\n\ -/*@TESTS_BEGIN*/\n\ -\n\ -/*@TESTS_END*/\n\ -\n\ -/*@_init_PROLOG_BEGINS*/\n\ -\n\ -	.section .init\n\ -#NO_APP\n\ -	.align 4\n\ -.globl _init\n\ -	.type	 _init,@function\n\ -_init:\n\ -#	leaf function           0\n\ -#	automatics              0\n\ -#	outgoing args           0\n\ -#	need frame pointer      0\n\ -#	call alloca             0\n\ -#	has varargs             0\n\ -#	incoming args (stack)   0\n\ -#	function length         36\n\ -	STMG	6,15,48(15)\n\ -	LGR	1,15\n\ -	AGHI	15,-160\n\ -	STG	1,0(15)\n\ -	LARL	12,_GLOBAL_OFFSET_TABLE_\n\ -	BRASL	14,__pthread_initialize_minimal@PLT\n\ -	LARL	1,__gmon_start__@GOTENT\n\ -	LG	1,0(1)\n\ -	LTGR	1,1\n\ -	JE	.L22\n\ -	BASR	14,1\n\ -.L22:\n\ -#APP\n\ -	.align 4,0x07\n\ -	END_INIT\n\ -\n\ -/*@_init_PROLOG_ENDS*/\n\ -\n\ -/*@_init_EPILOG_BEGINS*/\n\ -	.align 4\n\ -	.section .init\n\ -#NO_APP\n\ -	.align 4\n\ -	LG	4,272(15)\n\ -	LMG	6,15,208(15)\n\ -	BR	4\n\ -#APP\n\ -	END_INIT\n\ -\n\ -/*@_init_EPILOG_ENDS*/\n\ -\n\ -/*@_fini_PROLOG_BEGINS*/\n\ -	.section .fini\n\ -#NO_APP\n\ -	.align 4\n\ -.globl _fini\n\ -	.type	 _fini,@function\n\ -_fini:\n\ -#	leaf function           0\n\ -#	automatics              0\n\ -#	outgoing args           0\n\ -#	need frame pointer      0\n\ -#	call alloca             0\n\ -#	has varargs             0\n\ -#	incoming args (stack)   0\n\ -#	function length         30\n\ -	STMG	6,15,48(15)\n\ -	LGR	1,15\n\ -	AGHI	15,-160\n\ -	STG	1,0(15)\n\ -	LARL	12,_GLOBAL_OFFSET_TABLE_\n\ -#APP\n\ -	.align 4,0x07\n\ -	END_FINI\n\ -\n\ -/*@_fini_PROLOG_ENDS*/\n\ -\n\ -/*@_fini_EPILOG_BEGINS*/\n\ -	.align 4\n\ -	.section .fini\n\ -#NO_APP\n\ -	.align 4\n\ -	LG	4,272(15)\n\ -	LMG	6,15,208(15)\n\ -	BR	4\n\ -#APP\n\ -	END_FINI\n\ -\n\ -/*@_fini_EPILOG_ENDS*/\n\ -\n\ -/*@TRAILER_BEGINS*/\n\ -	"); diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c deleted file mode 100644 index d57283ad2..000000000 --- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c +++ /dev/null @@ -1 +0,0 @@ -#include "../../ia64/pt-sigsuspend.c" diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h deleted file mode 100644 index cf3124ebb..000000000 --- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h +++ /dev/null @@ -1,115 +0,0 @@ -/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. - -   The GNU C Library is free software; you can redistribute it and/or -   modify it under the terms of the GNU Lesser General Public -   License as published by the Free Software Foundation; either -   version 2.1 of the License, or (at your option) any later version. - -   The GNU C Library is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   Lesser General Public License for more details. - -   You should have received a copy of the GNU Lesser General Public -   License along with the GNU C Library; if not, see -   <http://www.gnu.org/licenses/>.  */ - -#include <sysdep.h> -#include <tls.h> -#ifndef __ASSEMBLER__ -# include <linuxthreads/internals.h> -#endif - -#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt - -# undef PSEUDO -# define PSEUDO(name, syscall_name, args)				      \ -	.text;								      \ -L(pseudo_cancel):							      \ -	STM_##args							      \ -	stmg	%r13,%r15,104(%r15);					      \ -	lgr	%r14,%r15;						      \ -	aghi	%r15,-160;						      \ -	stg	%r14,0(%r15);						      \ -	brasl	%r14,CENABLE;						      \ -	lgr	%r0,%r2;						      \ -	LM_##args							      \ -	DO_CALL(syscall_name, args);					      \ -	lgr	%r13,%r2;						      \ -	lgr	%r2,%r0;						      \ -	brasl	%r14,CDISABLE;						      \ -	lgr	%r2,%r13;						      \ -	lmg	%r13,%r15,104+160(%r15);				      \ -	j	L(pseudo_check);					      \ -ENTRY(name)								      \ -	SINGLE_THREAD_P							      \ -	jne	L(pseudo_cancel);					      \ -	DO_CALL(syscall_name, args);					      \ -L(pseudo_check):							      \ -	lghi	%r4,-4095;						      \ -	clgr	%r2,%r4;						      \ -	jgnl	SYSCALL_ERROR_LABEL;					      \ -L(pseudo_end): - -# ifdef IS_IN_libpthread -#  define CENABLE	__pthread_enable_asynccancel -#  define CDISABLE	__pthread_disable_asynccancel -#  define __local_multiple_threads	__pthread_multiple_threads -# elif !defined NOT_IN_libc -#  define CENABLE	__libc_enable_asynccancel -#  define CDISABLE	__libc_disable_asynccancel -#  define __local_multiple_threads	__libc_multiple_threads -# else -#  define CENABLE	__librt_enable_asynccancel@PLT -#  define CDISABLE	__librt_disable_asynccancel@PLT -# endif - -#define STM_0		/* Nothing */ -#define STM_1		stg %r2,16(%r15); -#define STM_2		stmg %r2,%r3,16(%r15); -#define STM_3		stmg %r2,%r4,16(%r15); -#define STM_4		stmg %r2,%r5,16(%r15); -#define STM_5		stmg %r2,%r5,16(%r15); - -#define LM_0		/* Nothing */ -#define LM_1		lg %r2,16+160(%r15); -#define LM_2		lmg %r2,%r3,16+160(%r15); -#define LM_3		lmg %r2,%r4,16+160(%r15); -#define LM_4		lmg %r2,%r5,16+160(%r15); -#define LM_5		lmg %r2,%r5,16+160(%r15); - -# if !defined NOT_IN_libc || defined IS_IN_libpthread -#  ifndef __ASSEMBLER__ -extern int __local_multiple_threads attribute_hidden; -#   define SINGLE_THREAD_P \ -  __builtin_expect (__local_multiple_threads == 0, 1) -#  else -#   define SINGLE_THREAD_P \ -	larl	%r1,__local_multiple_threads;				      \ -	icm	%r0,15,0(%r1); -#  endif - -# else - -#  ifndef __ASSEMBLER__ -#   define SINGLE_THREAD_P \ -  __builtin_expect (THREAD_GETMEM (THREAD_SELF,				      \ -				   p_header.data.multiple_threads) == 0, 1) -#  else -#   define SINGLE_THREAD_P \ -	ear	%r1,%a0;						      \ -	sllg	%r1,%r1,32;						      \ -	ear	%r1,%a1;						      \ -	icm	%r1,15,MULTIPLE_THREADS_OFFSET(%r1); -#  endif - -# endif - -#elif !defined __ASSEMBLER__ - -/* This code should never be used but we define it anyhow.  */ -# define SINGLE_THREAD_P (1) - -#endif diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S deleted file mode 100644 index 109d4f6dc..000000000 --- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright (C) 2003 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com> - -   The GNU C Library is free software; you can redistribute it and/or -   modify it under the terms of the GNU Lesser General Public -   License as published by the Free Software Foundation; either -   version 2.1 of the License, or (at your option) any later version. - -   The GNU C Library is distributed in the hope that it will be useful, -   but WITHOUT ANY WARRANTY; without even the implied warranty of -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU -   Lesser General Public License for more details. - -   You should have received a copy of the GNU Lesser General Public -   License along with the GNU C Library; if not, see -   <http://www.gnu.org/licenses/>.  */ - -#include <sysdep-cancel.h> -#define _ERRNO_H	1 -#include <bits/errno.h> - -/* Clone the calling process, but without copying the whole address space. -   The calling process is suspended until the new process exits or is -   replaced by a call to `execve'.  Return -1 for errors, 0 to the new process, -   and the process ID of the new process to the old process.  */ - -ENTRY (__vfork) -#ifdef SHARED -	larl	%r1,__libc_pthread_functions -	lg	%r1,0(%r1) -#else -	.weak	pthread_create -	larl	%r1,pthread_create -#endif -	ltgr	%r1,%r1 -	jgne	HIDDEN_JUMPTARGET(fork) - -	/* Do vfork system call.  */ -	svc	SYS_ify (vfork) - -	/* Check for error.  */ -	lghi	%r4,-4095 -	clgr	%r2,%r4 -	jgnl	SYSCALL_ERROR_LABEL - -	/* Normal return.  */ -	br	%r14 -PSEUDO_END(__vfork) - -libc_hidden_def (__vfork) - -weak_alias (__vfork, vfork) | 
