add preadv/pwritev syscall wrappers
This commit is contained in:
parent
743546a933
commit
ea544bfe80
3 changed files with 35 additions and 0 deletions
|
|
@ -11,6 +11,10 @@ extern "C" {
|
||||||
#define __NEED_ssize_t
|
#define __NEED_ssize_t
|
||||||
#define __NEED_struct_iovec
|
#define __NEED_struct_iovec
|
||||||
|
|
||||||
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
|
#define __NEED_off_t
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
#ifdef _GNU_SOURCE
|
||||||
#define __NEED_pid_t
|
#define __NEED_pid_t
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -20,6 +24,11 @@ extern "C" {
|
||||||
ssize_t readv (int, const struct iovec *, int);
|
ssize_t readv (int, const struct iovec *, int);
|
||||||
ssize_t writev (int, const struct iovec *, int);
|
ssize_t writev (int, const struct iovec *, int);
|
||||||
|
|
||||||
|
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
|
||||||
|
ssize_t preadv (int, const struct iovec *, int, off_t);
|
||||||
|
ssize_t pwritev (int, const struct iovec *, int, off_t);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _GNU_SOURCE
|
#ifdef _GNU_SOURCE
|
||||||
ssize_t process_vm_writev(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long);
|
ssize_t process_vm_writev(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long);
|
||||||
ssize_t process_vm_readv(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long);
|
ssize_t process_vm_readv(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long);
|
||||||
|
|
|
||||||
13
src/unistd/preadv.c
Normal file
13
src/unistd/preadv.c
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <sys/uio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include "syscall.h"
|
||||||
|
#include "libc.h"
|
||||||
|
|
||||||
|
ssize_t preadv(int fd, const struct iovec *iov, int count, off_t ofs)
|
||||||
|
{
|
||||||
|
return syscall_cp(SYS_preadv, fd, iov, count,
|
||||||
|
(long)(ofs), (long)(ofs>>32));
|
||||||
|
}
|
||||||
|
|
||||||
|
LFS64(preadv);
|
||||||
13
src/unistd/pwritev.c
Normal file
13
src/unistd/pwritev.c
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <sys/uio.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include "syscall.h"
|
||||||
|
#include "libc.h"
|
||||||
|
|
||||||
|
ssize_t pwritev(int fd, const struct iovec *iov, int count, off_t ofs)
|
||||||
|
{
|
||||||
|
return syscall_cp(SYS_pwritev, fd, iov, count,
|
||||||
|
(long)(ofs), (long)(ofs>>32));
|
||||||
|
}
|
||||||
|
|
||||||
|
LFS64(pwritev);
|
||||||
Loading…
Add table
Add a link
Reference in a new issue