avr32: wire up copy_file_range syscall

This patch wires up the new copy_file_range syscall on AVR32.

On AVR32, all parameters beyond the 5th are passed on the stack. System
calls don't use the stack -- they borrow a callee-saved register
instead. This means that syscalls that take 6 parameters must be called
through a stub that pushes the last parameter on the stack.

Signed-off-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no>
This commit is contained in:
Hans-Christian Egtvedt 2016-02-28 18:14:41 +01:00
parent b562e44f50
commit b837e97fd3
3 changed files with 11 additions and 0 deletions

View File

@ -337,5 +337,6 @@
#define __NR_userfaultfd 322 #define __NR_userfaultfd 322
#define __NR_membarrier 323 #define __NR_membarrier 323
#define __NR_mlock2 324 #define __NR_mlock2 324
#define __NR_copy_file_range 325
#endif /* _UAPI__ASM_AVR32_UNISTD_H */ #endif /* _UAPI__ASM_AVR32_UNISTD_H */

View File

@ -124,3 +124,12 @@ __sys_process_vm_writev:
call sys_process_vm_writev call sys_process_vm_writev
sub sp, -4 sub sp, -4
popm pc popm pc
.global __sys_copy_file_range
.type __sys_copy_file_range,@function
__sys_copy_file_range:
pushm lr
st.w --sp, ARG6
call sys_copy_file_range
sub sp, -4
popm pc

View File

@ -338,4 +338,5 @@ sys_call_table:
.long sys_userfaultfd .long sys_userfaultfd
.long sys_membarrier .long sys_membarrier
.long sys_mlock2 .long sys_mlock2
.long __sys_copy_file_range /* 325 */
.long sys_ni_syscall /* r8 is saturated at nr_syscalls */ .long sys_ni_syscall /* r8 is saturated at nr_syscalls */