diff options
| -rw-r--r-- | sys/i386/linux/linux_dummy.c | 2 | ||||
| -rw-r--r-- | sys/i386/linux/linux_file.c | 28 | ||||
| -rw-r--r-- | sys/i386/linux/linux_proto.h | 12 | ||||
| -rw-r--r-- | sys/i386/linux/linux_syscall.h | 2 | ||||
| -rw-r--r-- | sys/i386/linux/linux_sysent.c | 6 |
5 files changed, 41 insertions, 9 deletions
diff --git a/sys/i386/linux/linux_dummy.c b/sys/i386/linux/linux_dummy.c index 7cdac161d439..25615fd3ff0b 100644 --- a/sys/i386/linux/linux_dummy.c +++ b/sys/i386/linux/linux_dummy.c @@ -96,8 +96,6 @@ DUMMY(rt_sigreturn); DUMMY(rt_sigpending); DUMMY(rt_sigtimedwait); DUMMY(rt_sigqueueinfo); -DUMMY(pread); -DUMMY(pwrite); DUMMY(capget); DUMMY(capset); DUMMY(sendfile); diff --git a/sys/i386/linux/linux_file.c b/sys/i386/linux/linux_file.c index 90d82c2d3295..2cb2303629ce 100644 --- a/sys/i386/linux/linux_file.c +++ b/sys/i386/linux/linux_file.c @@ -849,3 +849,31 @@ linux_fdatasync(p, uap) bsd.fd = uap->fd; return fsync(p, &bsd); } + +int +linux_pread(p, uap) + struct proc *p; + struct linux_pread_args *uap; +{ + struct pread_args bsd; + + bsd.fd = uap->fd; + bsd.buf = uap->buf; + bsd.nbyte = uap->nbyte; + bsd.offset = uap->offset; + return pread(p, &bsd); +} + +int +linux_pwrite(p, uap) + struct proc *p; + struct linux_pwrite_args *uap; +{ + struct pwrite_args bsd; + + bsd.fd = uap->fd; + bsd.buf = uap->buf; + bsd.nbyte = uap->nbyte; + bsd.offset = uap->offset; + return pwrite(p, &bsd); +} diff --git a/sys/i386/linux/linux_proto.h b/sys/i386/linux/linux_proto.h index 1cda60b87fa3..594abf8b90f5 100644 --- a/sys/i386/linux/linux_proto.h +++ b/sys/i386/linux/linux_proto.h @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.30.2.1 2000/07/07 01:18:21 obrien Exp + * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.30.2.2 2000/07/19 21:11:10 marcel Exp */ #ifndef _LINUX_SYSPROTO_H_ @@ -480,10 +480,16 @@ struct linux_rt_sigsuspend_args { size_t sigsetsize; char sigsetsize_[PAD_(size_t)]; }; struct linux_pread_args { - register_t dummy; + int fd; char fd_[PAD_(int)]; + char * buf; char buf_[PAD_(char *)]; + size_t nbyte; char nbyte_[PAD_(size_t)]; + off_t offset; char offset_[PAD_(off_t)]; }; struct linux_pwrite_args { - register_t dummy; + int fd; char fd_[PAD_(int)]; + const char * buf; char buf_[PAD_(const char *)]; + size_t nbyte; char nbyte_[PAD_(size_t)]; + off_t offset; char offset_[PAD_(off_t)]; }; struct linux_chown_args { char * path; char path_[PAD_(char *)]; diff --git a/sys/i386/linux/linux_syscall.h b/sys/i386/linux/linux_syscall.h index 9ef1a341fdbd..df82255e37d6 100644 --- a/sys/i386/linux/linux_syscall.h +++ b/sys/i386/linux/linux_syscall.h @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.30.2.1 2000/07/07 01:18:21 obrien Exp + * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.30.2.2 2000/07/19 21:11:10 marcel Exp */ #define LINUX_SYS_linux_setup 0 diff --git a/sys/i386/linux/linux_sysent.c b/sys/i386/linux/linux_sysent.c index 91b4b6f96fc5..3e5484081365 100644 --- a/sys/i386/linux/linux_sysent.c +++ b/sys/i386/linux/linux_sysent.c @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.30.2.1 2000/07/07 01:18:21 obrien Exp + * created from FreeBSD: src/sys/i386/linux/syscalls.master,v 1.30.2.2 2000/07/19 21:11:10 marcel Exp */ #include "opt_compat.h" @@ -195,8 +195,8 @@ struct sysent linux_sysent[] = { { 0, (sy_call_t *)linux_rt_sigtimedwait }, /* 177 = linux_rt_sigtimedwait */ { 0, (sy_call_t *)linux_rt_sigqueueinfo }, /* 178 = linux_rt_sigqueueinfo */ { 2, (sy_call_t *)linux_rt_sigsuspend }, /* 179 = linux_rt_sigsuspend */ - { 0, (sy_call_t *)linux_pread }, /* 180 = linux_pread */ - { 0, (sy_call_t *)linux_pwrite }, /* 181 = linux_pwrite */ + { 5, (sy_call_t *)linux_pread }, /* 180 = linux_pread */ + { 5, (sy_call_t *)linux_pwrite }, /* 181 = linux_pwrite */ { 3, (sy_call_t *)linux_chown }, /* 182 = linux_chown */ { 2, (sy_call_t *)linux_getcwd }, /* 183 = linux_getcwd */ { 0, (sy_call_t *)linux_capget }, /* 184 = linux_capget */ |
