Adhemerval Zanella 
							
						 
					 
					
						
						
							
						
						5da2c626a5 
					 
					
						
						
							
							Consolidate Linux sync_file_range implementations  
						
						... 
						
						
						
						This patch consolidates all the sync_file_range implementation for Linux
in only one (sysdeps/unix/sysv/linux/sync_file_range.c).  It also removes
the syscall from the auto-generation using assembly macros (except for
x86_64 due x32 [1]).
For current minimum supported kernel (2.6.32 for x86_64 and 3.2 for all
other architectures) either sync_file_range or sync_file_range2 is supported
and it is expected that any future Linux ABI will provide either of one
syscall.  So the code path that returns ENOSYS in the case of missing
syscall is removed.
Checked on x86_64, i386, powerpc64le, aarch64, and armhf.
	* sysdeps/unix/sysv/linux/Makefile (tests): Add tst-sync_file_range.
	* sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c: Remove file.
	* sysdeps/sysv/linux/powerpc/powerpc64/sync_file_range.c: Likewise.
	* sysdeps/unix/sysv/linux/sync_file_range.c: New file.
	* sysdeps/unix/sysv/linux/tst-sync_file_range.c (sync_file_range):
	Consolidate all Linux implementations.
[1] https://patchwork.ozlabs.org/patch/659794/  
						
						
					 
					
						2016-10-11 16:21:12 -03:00 
						 
				 
			
				
					
						
							
							
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						f7a9f785e5 
					 
					
						
						
							
							Update copyright dates with scripts/update-copyrights.  
						
						
						
						
					 
					
						2016-01-04 16:05:18 +00:00 
						 
				 
			
				
					
						
							
							
								Adhemerval Zanella 
							
						 
					 
					
						
						
							
						
						c6bb095eb5 
					 
					
						
						
							
							nptl: Rewrite cancellation macros  
						
						... 
						
						
						
						This patch changes the way cancellation entrypoints are defined to
instead call the macro SYSCALL_CANCEL.  An usual cnacellation definition
is defined as:
  if (SINGLE_THREAD_P)
    return INLINE_SYSCALL (syscall, NARGS, args...)
  int oldtype = LIBC_CANCEL_ASYNC ();
  return INLINE_SYSCALL (syscall, NARGS, args...)
  LIBC_CANCEL_RESET (oldtype);
And it is rewrited as just:
  SYSCALL_CANCEL (syscall, args...)
The idea is to remove LIBC_CANCEL_ASYNC/LIBC_CANCEL_RESET explicit
usage.
Tested on i386, x86_64, powerpc32, powerpc64le, arm, and aarch64.
	* sysdeps/unix/sysdep.h [SYSCALL_CANCEL]: New macro: define
	cancellable syscalls.
	(SYS_ify): Add guard to no redefine it.
	(INLINE_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/accept4.c (accept4): Remove
	LIBC_CANCEL_ASYNC/INLINE_SYSCALL/LIBC_CANCEL_RESET and use
	SYSCALL_CANCEL instead.
	* sysdeps/unix/sysv/linux/alpha/fdatasync.c (__fdatasync): Likewise.
	* sysdeps/unix/sysv/linux/arm/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/arm/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/arm/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/arm/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/epoll_pwait.c (epoll_pwait): Likewise.
	* sysdeps/unix/sysv/linux/fallocate.c (fallocate): Likewise.
	* sysdeps/unix/sysv/linux/fallocate64.c (fallocate64): Likewise.
	* sysdeps/unix/sysv/linux/generic/open.c (__libc_open): Likewise.
	* sysdeps/unix/sysv/linux/generic/open64.c (__libc_open64): Likewise.
	* sysdeps/unix/sysv/linux/generic/pause.c (__libc_pause): Likewise.
	* sysdeps/unix/sysv/linux/generic/poll.c (__poll): Likewise.
	* sysdeps/unix/sysv/linux/generic/recv.c (__libc_recv): Likewise.
	* sysdeps/unix/sysv/linux/generic/select.c (__select): Likewise.
	* sysdeps/unix/sysv/linux/generic/send.c (__libc_send): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c (__libc_pread):
	Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c
	(__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c
	(__libc_preadv): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c
	(__libc_readv64): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c
	(__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c
	(__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c
	(__libc_pwritev): Likewise.
	* sysdeps/sysv/linux/generic/wordsize-32/pwritev64.c
	(__libc_pwritev64): Likewise.
	* sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/sync_file_range.c
	(sync_file_range): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate.c (fallocate):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/fallocate64.c (fallocate64):
	Likewise.
	* sysdeps/unix/sysv/linux/mips/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/mips/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/mips/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/msgrcv.c (__libc_msgrcv): Likewise.
	* sysdeps/unix/sysv/linux/msgsnd.c (__libc_msgsnd): Likewise.
	* sysdeps/unix/sysv/linux/open64.c (__libc_open64): Likewise.
	* sysdeps/unix/sysv/linux/openat.c (__libc_openat): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c (__libc_pread):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c
	(__libc_read64): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c (__libc_write):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c (__libc_write64):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/fcntl.c (__libc_fcntl):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c (__libc_pread):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c
	(__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c (__libc_pwrite):
	Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c
	(__libc_pwrite64): Likewise.
	* sysdeps/sysv/linux/powerpc/powerpc64/sync_file_range.c
	(sync_file_range): Likewise.
	* sysdeps/unix/sysv/linux/ppoll.c (ppoll): Likewise.
	* sysdeps/unix/sysv/linux/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/preadv.c (__libc_preadv): Likewise.
	* sysdeps/unix/sysv/linux/pselect.c (__pselect): Likewise.
	* sysdeps/unix/sysv/linux/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/pwritev.c (PWRITEV): Likewise.
	* sysdeps/unix/sysv/linux/readv.c (__libc_readv): Likewise.
	* sysdeps/unix/sysv/linux/recvmmsg.c (recvmmsg): Likewise.
	* sysdeps/unix/sysv/linux/sendmmsg.c (sendmmsg): Likewise.
	* sysdeps/unix/sysv/linux/sh/pread.c (__libc_pread): Likewise.
	* sysdeps/unix/sysv/linux/sh/pread64.c (__libc_pread64): Likewise.
	* sysdeps/unix/sysv/linux/sh/pwrite.c (__libc_pwrite): Likewise.
	* sysdeps/unix/sysv/linux/sh/pwrite64.c (__libc_pwrite64): Likewise.
	* sysdeps/unix/sysv/linux/sigsuspend.c (__sigsuspend): Likewise.
	* sysdeps/unix/sysv/linux/sigtimedwait.c (__sigtimedwait): Likewise.
	* sysdeps/unix/sysv/linux/sigwaitinfo.c (__sigwaitinfo): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c (__libc_msgrcv):
	Likewise.
	* sysdeps/unix/sysv/linux/sync_file_range.c (sync_file_range):
	Likewise.
	* sysdeps/unix/sysv/linux/tcdrain.c (__libc_tcdrain): Likewise.
	* sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
	Likewise.
	* sysdeps/unix/sysv/linux/wait.c (__libc_wait): Likewise.
	* sysdeps/unix/sysv/linux/waitid.c (__waitid): Likewise.
	* sysdeps/unix/sysv/linux/waitpid.c (__libc_waitpid): Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/fallocate.c (fallocate):
	Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/preadv.c (preadv): Likewise.
	* sysdeps/unix/sysv/linux/wordsize-64/pwritev.c (pwritev): Likewise.
	* sysdeps/unix/sysv/linux/writev.c (__libc_writev): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/recv.c (__libc_recv): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/send.c (__libc_send): Likewise. 
						
						
					 
					
						2015-06-04 18:58:36 -03:00 
						 
				 
			
				
					
						
							
							
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						b168057aaa 
					 
					
						
						
							
							Update copyright dates with scripts/update-copyrights.  
						
						
						
						
					 
					
						2015-01-02 16:29:47 +00:00 
						 
				 
			
				
					
						
							
							
								Allan McRae 
							
						 
					 
					
						
						
							
						
						d4697bc93d 
					 
					
						
						
							
							Update copyright notices with scripts/update-copyrights  
						
						
						
						
					 
					
						2014-01-01 22:00:23 +10:00 
						 
				 
			
				
					
						
							
							
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						568035b787 
					 
					
						
						
							
							Update copyright notices with scripts/update-copyrights.  
						
						
						
						
					 
					
						2013-01-02 19:05:09 +00:00 
						 
				 
			
				
					
						
							
							
								Thomas Schwinge 
							
						 
					 
					
						
						
							
						
						b830319d49 
					 
					
						
						
							
							[BZ  #157 ] Remove include/stub-tag.h for good.  
						
						
						
						
					 
					
						2012-11-04 19:59:40 +01:00 
						 
				 
			
				
					
						
							
							
								Paul Eggert 
							
						 
					 
					
						
						
							
						
						59ba27a63a 
					 
					
						
						
							
							Replace FSF snail mail address with URLs.  
						
						
						
						
					 
					
						2012-02-09 23:18:22 +00:00 
						 
				 
			
				
					
						
							
							
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						748876bf1c 
					 
					
						
						
							
							Really implement fallocate{,64} and sync_file_range as cancellation points.  
						
						
						
						
					 
					
						2011-04-01 11:15:08 -04:00 
						 
				 
			
				
					
						
							
							
								Jakub Jelinek 
							
						 
					 
					
						
						
							
						
						8ad81b316b 
					 
					
						
						
							
							Fix sync_file_range on ppc/ppc64.  
						
						... 
						
						
						
						I've noticed that sync_file_range is a stub on ppc/ppc64.
The kernel on these arches provides sync_file_range2 syscall with swapped
parameters.
The following completely untested patch ought to fix this. 
						
						
					 
					
						2009-11-17 18:04:51 -08:00 
						 
				 
			
				
					
						
							
							
								Jakub Jelinek 
							
						 
					 
					
						
						
							
						
						d64e9790cc 
					 
					
						
						
							
							* sysdeps/unix/sysv/linux/sync_file_range.c (sync_file_range):  
						
						... 
						
						
						
						Change last argument to unsigned int.
2007-04-01  Jakub Jelinek  <jakub@redhat.com >
	* sysdeps/unix/sysv/linux/sync_file_range.c (sync_file_range):
	Change last argument to unsigned int. 
						
						
					 
					
						2007-04-01 16:35:03 +00:00 
						 
				 
			
				
					
						
							
							
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						589abe9337 
					 
					
						
						
							
							* sysdeps/unix/sysv/linux/sync_file_range.c (sync_file_range): Use  
						
						... 
						
						
						
						__LONG_LONG_PAIR macro. 
						
						
					 
					
						2006-04-24 17:09:55 +00:00 
						 
				 
			
				
					
						
							
							
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						de18918f84 
					 
					
						
						
							
							* sysdeps/unix/sysv/linux/sync_file_range.c: New file.  
						
						
						
						
					 
					
						2006-04-14 08:09:08 +00:00 
						 
				 
			
				
					
						
							
							
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						a334319f65 
					 
					
						
						
							
							(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.  
						
						
						
						
					 
					
						2004-12-22 20:10:10 +00:00 
						 
				 
			
				
					
						
							
							
								Jakub Jelinek 
							
						 
					 
					
						
						
							
						
						0ecb606cb6 
					 
					
						
						
							
							2.5-18.1  
						
						
						
						
					 
					
						2007-07-12 18:26:36 +00:00