glibc/sysdeps/unix/sysv/linux/x86_64
H.J. Lu d8a7d10324 x86-64: Update LO_HI_LONG for p{readv,writev}{64}v2
The kernel interface for p{readv,writev}{64}v is

(unsigned long fd, {const }struct iovec *iov, unsigned long vlen,
 unsigned long pos_l, unsigned long pos_h)

Except for targets which define __ARCH_WANT_COMPAT_SYS_PREADV64 and
__ARCH_WANT_COMPAT_SYS_PWRITEV64,

(unsigned long fd, {const }struct iovec *iov, unsigned long vlen,
 off64_t pos)

is used for p{readv,writev}{64}v.  X32 is the only such target.  The
LO_HI_LONG macro is used to pass offset to the pos_l and pos_h pair.
Since pos_h is ignored when size of offset == sizeof of pos_l, x86-64
has

 #define LO_HI_LONG(val) (val)

But the kernel interface for p{readv,writev}{64}v2 is

(unsigned long fd, {const }struct iovec *iov, unsigned long vlen,
 unsigned long pos_l, unsigned long pos_h, int flags)

Except for targets which define __ARCH_WANT_COMPAT_SYS_PREADV64V2 and
__ARCH_WANT_COMPAT_SYS_PWRITEV64V2,

(unsigned long fd, {const }struct iovec *iov, unsigned long vlen,
 off64_t pos, int flags)

is used for p{readv,writev}{64}v2.  X32 is the only such target.  Update
x86-64 LO_HI_LONG to pass 0 as the high part of the offset argument for
p{readv,writev}{64}v2 and define a different LO_HI_LONG for x32 to only
pass one argument for offset.

Tested on x32 and x86-64.

	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (LO_HI_LONG): Pass
	0 as the high part of offset.
	* sysdeps/unix/sysv/linux/x86_64/x32/sysdep.h (LO_HI_LONG): New.
2017-06-05 07:21:57 -07:00
..
64
x32 x86-64: Update LO_HI_LONG for p{readv,writev}{64}v2 2017-06-05 07:21:57 -07:00
Implies
Makefile
Versions
____longjmp_chk.S
__start_context.S
arch-fork.h
brk.c
cancellation.S
clone.S
compat-timer.h
configure
configure.ac
dl-cache.h
dl-procinfo.c
dl-procinfo.h
get_clockfreq.c
getcontext.S
init-first.c
ipc_priv.h
kernel-features.h
kernel_stat.h
ldconfig.h
ldd-rewrite.sed
libc-cancellation.S
libc-lowlevellock.S
libmvec.abilist
librt-cancellation.S
lll_timedlock_wait.c
lll_timedwait_tid.c
lowlevellock.S
lowlevellock.h
makecontext.c
profil-counter.h
pthread_setaffinity.c
readelflib.c
register-dump.h
sched_setaffinity.c
setcontext.S
sigaction.c
sigaltstack-offsets.sym
sigcontextinfo.h
sigpending.c
sigprocmask.c
swapcontext.S
syscall.S
syscalls.list
sysdep-cancel.h
sysdep.S
sysdep.h x86-64: Update LO_HI_LONG for p{readv,writev}{64}v2 2017-06-05 07:21:57 -07:00
timer_create.c
timer_delete.c
timer_getoverr.c
timer_gettime.c
timer_settime.c
ucontext_i.sym
umount.c
vfork.S