svn commit: r277150 - in user/dchagin/lemul/sys: amd64/linux amd64/linux32 compat/linux i386/linux
Dmitry Chagin
dchagin at FreeBSD.org
Tue Jan 13 22:13:06 UTC 2015
Author: dchagin
Date: Tue Jan 13 22:13:03 2015
New Revision: 277150
URL: https://svnweb.freebsd.org/changeset/base/277150
Log:
Add preliminary fallocate system call implementation
to emulate posix_fallocate() function.
Modified:
user/dchagin/lemul/sys/amd64/linux/linux_dummy.c
user/dchagin/lemul/sys/amd64/linux/syscalls.master
user/dchagin/lemul/sys/amd64/linux32/linux32_dummy.c
user/dchagin/lemul/sys/amd64/linux32/syscalls.master
user/dchagin/lemul/sys/compat/linux/linux_file.c
user/dchagin/lemul/sys/i386/linux/linux_dummy.c
user/dchagin/lemul/sys/i386/linux/syscalls.master
Modified: user/dchagin/lemul/sys/amd64/linux/linux_dummy.c
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux/linux_dummy.c Tue Jan 13 22:00:47 2015 (r277149)
+++ user/dchagin/lemul/sys/amd64/linux/linux_dummy.c Tue Jan 13 22:13:03 2015 (r277150)
@@ -102,7 +102,6 @@ DUMMY(utimensat);
DUMMY(epoll_pwait);
DUMMY(signalfd);
DUMMY(timerfd);
-DUMMY(fallocate);
DUMMY(timerfd_settime);
DUMMY(timerfd_gettime);
DUMMY(signalfd4);
Modified: user/dchagin/lemul/sys/amd64/linux/syscalls.master
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux/syscalls.master Tue Jan 13 22:00:47 2015 (r277149)
+++ user/dchagin/lemul/sys/amd64/linux/syscalls.master Tue Jan 13 22:13:03 2015 (r277150)
@@ -473,7 +473,8 @@
282 AUE_NULL STD { int linux_signalfd(void); }
283 AUE_NULL STD { int linux_timerfd(void); }
284 AUE_NULL STD { int linux_eventfd(l_uint initval); }
-285 AUE_NULL STD { int linux_fallocate(void); }
+285 AUE_NULL STD { int linux_fallocate(l_int fd, l_int mode, \
+ l_loff_t offset, l_loff_t len); }
286 AUE_NULL STD { int linux_timerfd_settime(void); }
287 AUE_NULL STD { int linux_timerfd_gettime(void); }
288 AUE_ACCEPT STD { int linux_accept4(l_int s, l_uintptr_t addr, \
Modified: user/dchagin/lemul/sys/amd64/linux32/linux32_dummy.c
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux32/linux32_dummy.c Tue Jan 13 22:00:47 2015 (r277149)
+++ user/dchagin/lemul/sys/amd64/linux32/linux32_dummy.c Tue Jan 13 22:13:03 2015 (r277150)
@@ -107,8 +107,6 @@ DUMMY(epoll_pwait);
DUMMY(utimensat);
DUMMY(signalfd);
DUMMY(timerfd_create);
-/* linux 2.6.23: */
-DUMMY(fallocate);
/* linux 2.6.25: */
DUMMY(timerfd_settime);
DUMMY(timerfd_gettime);
Modified: user/dchagin/lemul/sys/amd64/linux32/syscalls.master
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux32/syscalls.master Tue Jan 13 22:00:47 2015 (r277149)
+++ user/dchagin/lemul/sys/amd64/linux32/syscalls.master Tue Jan 13 22:13:03 2015 (r277150)
@@ -536,7 +536,8 @@
322 AUE_NULL STD { int linux_timerfd_create(void); }
323 AUE_NULL STD { int linux_eventfd(l_uint initval); }
; linux 2.6.23:
-324 AUE_NULL STD { int linux_fallocate(void); }
+324 AUE_NULL STD { int linux_fallocate(l_int fd, l_int mode, \
+ l_loff_t offset, l_loff_t len); }
; linux 2.6.25:
325 AUE_NULL STD { int linux_timerfd_settime(void); }
326 AUE_NULL STD { int linux_timerfd_gettime(void); }
Modified: user/dchagin/lemul/sys/compat/linux/linux_file.c
==============================================================================
--- user/dchagin/lemul/sys/compat/linux/linux_file.c Tue Jan 13 22:00:47 2015 (r277149)
+++ user/dchagin/lemul/sys/compat/linux/linux_file.c Tue Jan 13 22:13:03 2015 (r277150)
@@ -1661,3 +1661,18 @@ linux_dup3(struct thread *td, struct lin
newfd = args->newfd;
return (kern_fcntl(td, args->oldfd, cmd, newfd));
}
+
+int
+linux_fallocate(struct thread *td, struct linux_fallocate_args *args)
+{
+
+ /*
+ * We emulate only posix_fallocate system call for which
+ * mode should be 0.
+ */
+ if (args->mode != 0)
+ return (ENOSYS);
+
+ return (kern_posix_fallocate(td, args->fd, args->offset,
+ args->len));
+}
Modified: user/dchagin/lemul/sys/i386/linux/linux_dummy.c
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/linux_dummy.c Tue Jan 13 22:00:47 2015 (r277149)
+++ user/dchagin/lemul/sys/i386/linux/linux_dummy.c Tue Jan 13 22:13:03 2015 (r277150)
@@ -103,8 +103,6 @@ DUMMY(epoll_pwait);
DUMMY(utimensat);
DUMMY(signalfd);
DUMMY(timerfd_create);
-/* linux 2.6.23: */
-DUMMY(fallocate);
/* linux 2.6.25: */
DUMMY(timerfd_settime);
DUMMY(timerfd_gettime);
Modified: user/dchagin/lemul/sys/i386/linux/syscalls.master
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/syscalls.master Tue Jan 13 22:00:47 2015 (r277149)
+++ user/dchagin/lemul/sys/i386/linux/syscalls.master Tue Jan 13 22:13:03 2015 (r277150)
@@ -544,7 +544,8 @@
322 AUE_NULL STD { int linux_timerfd_create(void); }
323 AUE_NULL STD { int linux_eventfd(l_uint initval); }
; linux 2.6.23:
-324 AUE_NULL STD { int linux_fallocate(void); }
+324 AUE_NULL STD { int linux_fallocate(l_int fd, l_int mode, \
+ l_loff_t offset, l_loff_t len); }
; linux 2.6.25:
325 AUE_NULL STD { int linux_timerfd_settime(void); }
326 AUE_NULL STD { int linux_timerfd_gettime(void); }
More information about the svn-src-user
mailing list