Quellcode durchsuchen

[MIPS] Wire up the fallocate syscall.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle vor 18 Jahren
Ursprung
Commit
4dc467756e

+ 7 - 0
arch/mips/kernel/linux32.c

@@ -566,6 +566,13 @@ asmlinkage long sys32_fadvise64_64(int fd, int __pad,
 			flags);
 			flags);
 }
 }
 
 
+asmlinkage long sys32_fallocate(int fd, int mode, unsigned offset_a2,
+	unsigned offset_a3, unsigned len_a4, unsigned len_a5)
+{
+	return sys_fallocate(fd, mode, merge_64(offset_a2, offset_a3),
+	                     merge_64(len_a4, len_a5));
+}
+
 save_static_function(sys32_clone);
 save_static_function(sys32_clone);
 static int noinline __used
 static int noinline __used
 _sys32_clone(nabi_no_regargs struct pt_regs regs)
 _sys32_clone(nabi_no_regargs struct pt_regs regs)

+ 1 - 0
arch/mips/kernel/scall32-o32.S

@@ -662,6 +662,7 @@ einval:	li	v0, -EINVAL
 	sys	sys_signalfd		3
 	sys	sys_signalfd		3
 	sys	sys_timerfd		4
 	sys	sys_timerfd		4
 	sys	sys_eventfd		1
 	sys	sys_eventfd		1
+	sys	sys_fallocate		6	/* 4320 */
 	.endm
 	.endm
 
 
 	/* We pre-compute the number of _instruction_ bytes needed to
 	/* We pre-compute the number of _instruction_ bytes needed to

+ 1 - 0
arch/mips/kernel/scall64-64.S

@@ -477,4 +477,5 @@ sys_call_table:
 	PTR	sys_signalfd
 	PTR	sys_signalfd
 	PTR	sys_timerfd
 	PTR	sys_timerfd
 	PTR	sys_eventfd
 	PTR	sys_eventfd
+	PTR	sys_fallocate
 	.size	sys_call_table,.-sys_call_table
 	.size	sys_call_table,.-sys_call_table

+ 1 - 0
arch/mips/kernel/scall64-n32.S

@@ -403,4 +403,5 @@ EXPORT(sysn32_call_table)
 	PTR	compat_sys_signalfd		/* 5280 */
 	PTR	compat_sys_signalfd		/* 5280 */
 	PTR	compat_sys_timerfd
 	PTR	compat_sys_timerfd
 	PTR	sys_eventfd
 	PTR	sys_eventfd
+	PTR	sys_fallocate
 	.size	sysn32_call_table,.-sysn32_call_table
 	.size	sysn32_call_table,.-sysn32_call_table

+ 1 - 0
arch/mips/kernel/scall64-o32.S

@@ -525,4 +525,5 @@ sys_call_table:
 	PTR	compat_sys_signalfd
 	PTR	compat_sys_signalfd
 	PTR	compat_sys_timerfd
 	PTR	compat_sys_timerfd
 	PTR	sys_eventfd
 	PTR	sys_eventfd
+	PTR	sys_fallocate			/* 4320 */
 	.size	sys_call_table,.-sys_call_table
 	.size	sys_call_table,.-sys_call_table

+ 9 - 6
include/asm-mips/unistd.h

@@ -340,16 +340,17 @@
 #define __NR_signalfd			(__NR_Linux + 317)
 #define __NR_signalfd			(__NR_Linux + 317)
 #define __NR_timerfd			(__NR_Linux + 318)
 #define __NR_timerfd			(__NR_Linux + 318)
 #define __NR_eventfd			(__NR_Linux + 319)
 #define __NR_eventfd			(__NR_Linux + 319)
+#define __NR_fallocate			(__NR_Linux + 320)
 
 
 /*
 /*
  * Offset of the last Linux o32 flavoured syscall
  * Offset of the last Linux o32 flavoured syscall
  */
  */
-#define __NR_Linux_syscalls		319
+#define __NR_Linux_syscalls		320
 
 
 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
 
 
 #define __NR_O32_Linux			4000
 #define __NR_O32_Linux			4000
-#define __NR_O32_Linux_syscalls		319
+#define __NR_O32_Linux_syscalls		320
 
 
 #if _MIPS_SIM == _MIPS_SIM_ABI64
 #if _MIPS_SIM == _MIPS_SIM_ABI64
 
 
@@ -636,16 +637,17 @@
 #define __NR_signalfd			(__NR_Linux + 276)
 #define __NR_signalfd			(__NR_Linux + 276)
 #define __NR_timerfd			(__NR_Linux + 277)
 #define __NR_timerfd			(__NR_Linux + 277)
 #define __NR_eventfd			(__NR_Linux + 278)
 #define __NR_eventfd			(__NR_Linux + 278)
+#define __NR_fallocate			(__NR_Linux + 279)
 
 
 /*
 /*
  * Offset of the last Linux 64-bit flavoured syscall
  * Offset of the last Linux 64-bit flavoured syscall
  */
  */
-#define __NR_Linux_syscalls		278
+#define __NR_Linux_syscalls		279
 
 
 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
 
 
 #define __NR_64_Linux			5000
 #define __NR_64_Linux			5000
-#define __NR_64_Linux_syscalls		278
+#define __NR_64_Linux_syscalls		279
 
 
 #if _MIPS_SIM == _MIPS_SIM_NABI32
 #if _MIPS_SIM == _MIPS_SIM_NABI32
 
 
@@ -936,16 +938,17 @@
 #define __NR_signalfd			(__NR_Linux + 280)
 #define __NR_signalfd			(__NR_Linux + 280)
 #define __NR_timerfd			(__NR_Linux + 281)
 #define __NR_timerfd			(__NR_Linux + 281)
 #define __NR_eventfd			(__NR_Linux + 282)
 #define __NR_eventfd			(__NR_Linux + 282)
+#define __NR_fallocate			(__NR_Linux + 283)
 
 
 /*
 /*
  * Offset of the last N32 flavoured syscall
  * Offset of the last N32 flavoured syscall
  */
  */
-#define __NR_Linux_syscalls		282
+#define __NR_Linux_syscalls		283
 
 
 #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
 #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
 
 
 #define __NR_N32_Linux			6000
 #define __NR_N32_Linux			6000
-#define __NR_N32_Linux_syscalls		282
+#define __NR_N32_Linux_syscalls		283
 
 
 #ifdef __KERNEL__
 #ifdef __KERNEL__