Module Name:    src
Committed By:   njoly
Date:           Fri Jun  5 16:45:33 UTC 2009

Modified Files:
        src/sys/compat/linux32/arch/amd64: syscalls.master
        src/sys/compat/linux32/common: linux32_misc.c

Log Message:
Add fstatfs syscall.


To generate a diff of this commit:
cvs rdiff -u -r1.52 -r1.53 src/sys/compat/linux32/arch/amd64/syscalls.master
cvs rdiff -u -r1.16 -r1.17 src/sys/compat/linux32/common/linux32_misc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/linux32/arch/amd64/syscalls.master
diff -u src/sys/compat/linux32/arch/amd64/syscalls.master:1.52 src/sys/compat/linux32/arch/amd64/syscalls.master:1.53
--- src/sys/compat/linux32/arch/amd64/syscalls.master:1.52	Thu Jun  4 17:59:30 2009
+++ src/sys/compat/linux32/arch/amd64/syscalls.master	Fri Jun  5 16:45:33 2009
@@ -1,4 +1,4 @@
-	$NetBSD: syscalls.master,v 1.52 2009/06/04 17:59:30 njoly Exp $
+	$NetBSD: syscalls.master,v 1.53 2009/06/05 16:45:33 njoly Exp $
 
 ; NetBSD i386 COMPAT_LINUX32 system call name/number "master" file.
 ; (See syscalls.conf to see what it is processed into.)
@@ -196,7 +196,7 @@
 98	UNIMPL	profil
 99	STD	{ int|linux32_sys||statfs(netbsd32_charp path, \
 		    linux32_statfsp sp); }
-100	UNIMPL	fstatfs
+100	STD	{ int|linux32_sys||fstatfs(int fd, linux32_statfsp sp); }
 101	UNIMPL	ioperm
 102	STD	{ int|linux32_sys||socketcall(int what, netbsd32_voidp args); }
 103	UNIMPL	syslog

Index: src/sys/compat/linux32/common/linux32_misc.c
diff -u src/sys/compat/linux32/common/linux32_misc.c:1.16 src/sys/compat/linux32/common/linux32_misc.c:1.17
--- src/sys/compat/linux32/common/linux32_misc.c:1.16	Tue Jan 20 12:00:59 2009
+++ src/sys/compat/linux32/common/linux32_misc.c	Fri Jun  5 16:45:33 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_misc.c,v 1.16 2009/01/20 12:00:59 njoly Exp $	*/
+/*	$NetBSD: linux32_misc.c,v 1.17 2009/06/05 16:45:33 njoly Exp $	*/
 
 /*-
  * Copyright (c) 1995, 1998, 1999 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_misc.c,v 1.16 2009/01/20 12:00:59 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_misc.c,v 1.17 2009/06/05 16:45:33 njoly Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -89,6 +89,28 @@
 	return error;
 }
 
+int
+linux32_sys_fstatfs(struct lwp *l, const struct linux32_sys_fstatfs_args *uap, register_t *retval)
+{
+	/* {
+		syscallarg(int) fd;
+		syscallarg(linux32_statfsp) sp;
+	} */
+	struct statvfs *sb;
+	struct linux_statfs ltmp;
+	int error;
+
+	sb = STATVFSBUF_GET();
+	error = do_sys_fstatvfs(l, SCARG(uap, fd), ST_WAIT, sb);
+	if (error == 0) {
+		bsd_to_linux_statfs(sb, &ltmp);
+		error = copyout(&ltmp, SCARG_P32(uap, sp), sizeof ltmp);
+	}
+	STATVFSBUF_PUT(sb);
+
+	return error;
+}
+
 extern const int linux_ptrace_request_map[];
 
 int

Reply via email to