mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-19 17:30:08 +00:00
x86-64: Add p{read,write}[v]64 to syscalls.list [BZ #20348]
64-bit off_t in pread64, preadv, pwrite64 and pwritev syscalls is passed in one 64-bit register for both x32 and x86-64. Since the inline asm statement only passes long, which is 32-bit for x32, in registers, 64-bit off_t is truncated to 32-bit on x32. Since __ASSUME_PREADV and __ASSUME_PWRITEV are defined unconditionally, these syscalls can be implemented in syscalls.list to pass 64-bit off_t in one 64-bit register. Tested on x86-64 and x32 with off_t > 4GB on pread64/pwrite64 and preadv64/pwritev64. [BZ #20348] * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Add pread64, preadv64, pwrite64 and pwritev64.
This commit is contained in:
parent
3bbee82a56
commit
f531f93056
@ -1,3 +1,9 @@
|
||||
2016-07-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
[BZ #20348]
|
||||
* sysdeps/unix/sysv/linux/x86_64/syscalls.list: Add pread64,
|
||||
preadv64, pwrite64 and pwritev64.
|
||||
|
||||
2016-07-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
[BZ #20350]
|
||||
|
@ -6,6 +6,10 @@ msgctl - msgctl i:iip __msgctl msgctl
|
||||
msgget - msgget i:ii __msgget msgget
|
||||
msgrcv - msgrcv Ci:ibnii __msgrcv msgrcv
|
||||
msgsnd - msgsnd Ci:ibni __msgsnd msgsnd
|
||||
pread64 - pread64 Ci:ipii __libc_pread __libc_pread64 __pread64 pread64 __pread pread
|
||||
preadv64 - preadv Ci:ipii preadv64 preadv
|
||||
pwrite64 - pwrite64 Ci:ipii __libc_pwrite __pwrite64 pwrite64 __pwrite pwrite
|
||||
pwritev64 - pwritev Ci:ipii pwritev64 pwritev
|
||||
shmat - shmat i:ipi __shmat shmat
|
||||
shmctl - shmctl i:iip __shmctl shmctl
|
||||
shmdt - shmdt i:s __shmdt shmdt
|
||||
|
Loading…
Reference in New Issue
Block a user