diff options
author | peter <peter@FreeBSD.org> | 2007-07-04 22:57:21 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2007-07-04 22:57:21 +0000 |
commit | fd45cf2a6d164edcc16ec18ac3d7fd0406d09cff (patch) | |
tree | aba597bf8efc4ca951999b9075343fd6c9ee705a | |
parent | 2bb8ba79a86ee6d6b3854e9291504d067cba8f19 (diff) | |
download | FreeBSD-src-fd45cf2a6d164edcc16ec18ac3d7fd0406d09cff.zip FreeBSD-src-fd45cf2a6d164edcc16ec18ac3d7fd0406d09cff.tar.gz |
Add freebsd6_ wrappers for mmap/lseek/pread/pwrite/truncate/ftruncate
Approved by: re (kensmith)
-rw-r--r-- | sys/kern/sys_generic.c | 28 | ||||
-rw-r--r-- | sys/kern/vfs_syscalls.c | 39 | ||||
-rw-r--r-- | sys/vm/vm_mmap.c | 14 |
3 files changed, 78 insertions, 3 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index 992d181..16bd195 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -142,6 +142,20 @@ pread(td, uap) return(error); } +int +freebsd6_pread(td, uap) + struct thread *td; + struct freebsd6_pread_args *uap; +{ + struct pread_args oargs; + + oargs.fd = uap->fd; + oargs.buf = uap->buf; + oargs.nbyte = uap->nbyte; + oargs.offset = uap->offset; + return (pread(td, &oargs)); +} + /* * Scatter read system call. */ @@ -337,6 +351,20 @@ pwrite(td, uap) return(error); } +int +freebsd6_pwrite(td, uap) + struct thread *td; + struct freebsd6_pwrite_args *uap; +{ + struct pwrite_args oargs; + + oargs.fd = uap->fd; + oargs.buf = uap->buf; + oargs.nbyte = uap->nbyte; + oargs.offset = uap->offset; + return (pwrite(td, &oargs)); +} + /* * Gather write system call. */ diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index d73c4a2..819a74c 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1785,16 +1785,28 @@ olseek(td, uap) off_t offset; int whence; } */ nuap; - int error; nuap.fd = uap->fd; nuap.offset = uap->offset; nuap.whence = uap->whence; - error = lseek(td, &nuap); - return (error); + return (lseek(td, &nuap)); } #endif /* COMPAT_43 */ +/* Version with the 'pad' argument */ +int +freebsd6_lseek(td, uap) + struct thread *td; + register struct freebsd6_lseek_args *uap; +{ + struct lseek_args ouap; + + ouap.fd = uap->fd; + ouap.offset = uap->offset; + ouap.whence = uap->whence; + return (lseek(td, &ouap)); +} + /* * Check access permissions using passed credentials. */ @@ -3150,6 +3162,27 @@ oftruncate(td, uap) } #endif /* COMPAT_43 */ +/* Versions with the pad argument */ +int +freebsd6_truncate(struct thread *td, struct freebsd6_truncate_args *uap) +{ + struct truncate_args ouap; + + ouap.path = uap->path; + ouap.length = uap->length; + return (truncate(td, &ouap)); +} + +int +freebsd6_ftruncate(struct thread *td, struct freebsd6_ftruncate_args *uap) +{ + struct ftruncate_args ouap; + + ouap.fd = uap->fd; + ouap.length = uap->length; + return (ftruncate(td, &ouap)); +} + /* * Sync an open file. */ diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c index b91b822..8744156 100644 --- a/sys/vm/vm_mmap.c +++ b/sys/vm/vm_mmap.c @@ -392,6 +392,20 @@ done: return (error); } +int +freebsd6_mmap(struct thread *td, struct freebsd6_mmap_args *uap) +{ + struct mmap_args oargs; + + oargs.addr = uap->addr; + oargs.len = uap->len; + oargs.prot = uap->prot; + oargs.flags = uap->flags; + oargs.fd = uap->fd; + oargs.pos = uap->pos; + return (mmap(td, &oargs)); +} + #ifdef COMPAT_43 #ifndef _SYS_SYSPROTO_H_ struct ommap_args { |