summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2007-07-04 22:57:21 +0000
committerpeter <peter@FreeBSD.org>2007-07-04 22:57:21 +0000
commitfd45cf2a6d164edcc16ec18ac3d7fd0406d09cff (patch)
treeaba597bf8efc4ca951999b9075343fd6c9ee705a
parent2bb8ba79a86ee6d6b3854e9291504d067cba8f19 (diff)
downloadFreeBSD-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.c28
-rw-r--r--sys/kern/vfs_syscalls.c39
-rw-r--r--sys/vm/vm_mmap.c14
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 {
OpenPOWER on IntegriCloud