summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorrdivacky <rdivacky@FreeBSD.org>2008-04-23 15:56:33 +0000
committerrdivacky <rdivacky@FreeBSD.org>2008-04-23 15:56:33 +0000
commitdd1e82ea4dd9705b18ec2ab04ffe4dbe3de2b7aa (patch)
treee7d85f8509e111c769f270f9cbeb99913a691fa8 /sys
parent9efc2d78509234ba5da7366adcf4a1c5c8df6232 (diff)
downloadFreeBSD-src-dd1e82ea4dd9705b18ec2ab04ffe4dbe3de2b7aa.zip
FreeBSD-src-dd1e82ea4dd9705b18ec2ab04ffe4dbe3de2b7aa.tar.gz
Implement linux_truncate64() syscall.
Tested by: Aline de Freitas <aline@riseup.net> Approved by: kib (mentor)
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/linux32/linux32_dummy.c1
-rw-r--r--sys/compat/linux/linux_file.c18
-rw-r--r--sys/i386/linux/linux_dummy.c1
3 files changed, 18 insertions, 2 deletions
diff --git a/sys/amd64/linux32/linux32_dummy.c b/sys/amd64/linux32/linux32_dummy.c
index 52eeca0..c5e07b7 100644
--- a/sys/amd64/linux32/linux32_dummy.c
+++ b/sys/amd64/linux32/linux32_dummy.c
@@ -57,7 +57,6 @@ DUMMY(rt_sigqueueinfo);
DUMMY(capget);
DUMMY(capset);
DUMMY(sendfile);
-DUMMY(truncate64);
DUMMY(setfsuid);
DUMMY(setfsgid);
DUMMY(pivot_root);
diff --git a/sys/compat/linux/linux_file.c b/sys/compat/linux/linux_file.c
index 49e9cd2..9f19e5a 100644
--- a/sys/compat/linux/linux_file.c
+++ b/sys/compat/linux/linux_file.c
@@ -886,6 +886,7 @@ linux_readlinkat(struct thread *td, struct linux_readlinkat_args *args)
LFREEPATH(name);
return (error);
}
+
int
linux_truncate(struct thread *td, struct linux_truncate_args *args)
{
@@ -905,6 +906,23 @@ linux_truncate(struct thread *td, struct linux_truncate_args *args)
}
int
+linux_truncate64(struct thread *td, struct linux_truncate64_args *args)
+{
+ char *path;
+ int error;
+
+ LCONVPATHEXIST(td, args->path, &path);
+
+#ifdef DEBUG
+ if (ldebug(truncate64))
+ printf(ARGS(truncate64, "%s, %jd"), path, args->length);
+#endif
+
+ error = kern_truncate(td, path, UIO_SYSSPACE, args->length);
+ LFREEPATH(path);
+ return (error);
+}
+int
linux_ftruncate(struct thread *td, struct linux_ftruncate_args *args)
{
struct ftruncate_args /* {
diff --git a/sys/i386/linux/linux_dummy.c b/sys/i386/linux/linux_dummy.c
index b4fd553..99a9d3d 100644
--- a/sys/i386/linux/linux_dummy.c
+++ b/sys/i386/linux/linux_dummy.c
@@ -60,7 +60,6 @@ DUMMY(rt_sigqueueinfo);
DUMMY(capget);
DUMMY(capset);
DUMMY(sendfile); /* different semantics */
-DUMMY(truncate64);
DUMMY(setfsuid);
DUMMY(setfsgid);
DUMMY(pivot_root);
OpenPOWER on IntegriCloud