Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3240c1f authored by Hans-Christian Egtvedt's avatar Hans-Christian Egtvedt
Browse files

avr32: wire up missing syscalls



This patch adds a bunch of missing syscalls to AVR32:
__NR_pread64
__NR_pwrite64
__NR_timerfd_create
__NR_fallocate
__NR_timerfd_settime
__NR_timerfd_gettime
__NR_signalfd4
__NR_eventfd2
__NR_epoll_create1
__NR_dup3
__NR_pipe2
__NR_inotify_init1
__NR_preadv
__NR_pwritev
__NR_rt_tgsigqueueinfo
__NR_perf_event_open
__NR_recvmmsg
__NR_fanotify_init
__NR_fanotify_mark
__NR_prlimit64
__NR_name_to_handle_at
__NR_open_by_handle_at
__NR_clock_adjtime
__NR_syncfs
__NR_sendmmsg
__NR_process_vm_readv
__NR_process_vm_writev
__NR_kcmp
__NR_finit_module
__NR_sched_setattr
__NR_sched_getattr
__NR_renameat2
__NR_seccomp
__NR_getrandom
__NR_memfd_create
__NR_bpf
__NR_execveat

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.

This relates to syscall fallocate, fanotify_mark, process_vm_readv, and
process_vm_writev.

Signed-off-by: default avatarHans-Christian Egtvedt <egtvedt@samfundet.no>
parent bfa76d49
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@

#include <uapi/asm/unistd.h>

#define NR_syscalls		284
#define NR_syscalls		321

/* Old stuff */
#define __IGNORE_uselib
+37 −4
Original line number Diff line number Diff line
@@ -222,7 +222,6 @@
#define __NR_epoll_wait		207
#define __NR_remap_file_pages	208
#define __NR_set_tid_address	209

#define __NR_timer_create	210
#define __NR_timer_settime	211
#define __NR_timer_gettime	212
@@ -238,7 +237,6 @@
				/* 222 reserved for tux */
#define __NR_utimes		223
#define __NR_fadvise64_64	224

#define __NR_cacheflush		225

#define __NR_vserver		226
@@ -281,7 +279,6 @@
#define __NR_tee		263
#define __NR_vmsplice		264
#define __NR_epoll_pwait	265

#define __NR_msgget		266
#define __NR_msgsnd		267
#define __NR_msgrcv		268
@@ -294,11 +291,47 @@
#define __NR_shmget		275
#define __NR_shmdt		276
#define __NR_shmctl		277

#define __NR_utimensat		278
#define __NR_signalfd		279
/* 280 was __NR_timerfd */
#define __NR_eventfd		281
#define __NR_setns		283
#define __NR_pread64		284
#define __NR_pwrite64		285
#define __NR_timerfd_create	286
#define __NR_fallocate		287
#define __NR_timerfd_settime	288
#define __NR_timerfd_gettime	289
#define __NR_signalfd4		290
#define __NR_eventfd2		291
#define __NR_epoll_create1	292
#define __NR_dup3		293
#define __NR_pipe2		294
#define __NR_inotify_init1	295
#define __NR_preadv		296
#define __NR_pwritev		297
#define __NR_rt_tgsigqueueinfo	298
#define __NR_perf_event_open	299
#define __NR_recvmmsg		300
#define __NR_fanotify_init	301
#define __NR_fanotify_mark	302
#define __NR_prlimit64		303
#define __NR_name_to_handle_at	304
#define __NR_open_by_handle_at	305
#define __NR_clock_adjtime	306
#define __NR_syncfs		307
#define __NR_sendmmsg		308
#define __NR_process_vm_readv	309
#define __NR_process_vm_writev	310
#define __NR_kcmp		311
#define __NR_finit_module	312
#define __NR_sched_setattr	313
#define __NR_sched_getattr	314
#define __NR_renameat2		315
#define __NR_seccomp		316
#define __NR_getrandom		317
#define __NR_memfd_create	318
#define __NR_bpf		319
#define __NR_execveat		320

#endif /* _UAPI__ASM_AVR32_UNISTD_H */
+36 −0
Original line number Diff line number Diff line
@@ -88,3 +88,39 @@ __sys_sync_file_range:
	call	sys_sync_file_range
	sub	sp, -4
	popm	pc

	.global __sys_fallocate
	.type	__sys_fallocate,@function
__sys_fallocate:
	pushm	lr
	st.w	--sp, ARG6
	call	sys_fallocate
	sub	sp, -4
	popm	pc

	.global __sys_fanotify_mark
	.type	__sys_fanotify_mark,@function
__sys_fanotify_mark:
	pushm	lr
	st.w	--sp, ARG6
	call	sys_fanotify_mark
	sub	sp, -4
	popm	pc

	.global __sys_process_vm_readv
	.type	__sys_process_vm_readv,@function
__sys_process_vm_readv:
	pushm	lr
	st.w	--sp, ARG6
	call	sys_process_vm_readv
	sub	sp, -4
	popm	pc

	.global __sys_process_vm_writev
	.type	__sys_process_vm_writev,@function
__sys_process_vm_writev:
	pushm	lr
	st.w	--sp, ARG6
	call	sys_process_vm_writev
	sub	sp, -4
	popm	pc
+37 −0
Original line number Diff line number Diff line
@@ -297,4 +297,41 @@ sys_call_table:
	.long	sys_eventfd
	.long	sys_recvmmsg
	.long	sys_setns
	.long	sys_pread64
	.long	sys_pwrite64		/* 285 */
	.long	sys_timerfd_create
	.long	__sys_fallocate
	.long	sys_timerfd_settime
	.long	sys_timerfd_gettime
	.long	sys_signalfd4		/* 290 */
	.long	sys_eventfd2
	.long	sys_epoll_create1
	.long	sys_dup3
	.long	sys_pipe2
	.long	sys_inotify_init1	/* 295 */
	.long	sys_preadv
	.long	sys_pwritev
	.long	sys_rt_tgsigqueueinfo
	.long	sys_perf_event_open
	.long	sys_recvmmsg		/* 300 */
	.long	sys_fanotify_init
	.long	__sys_fanotify_mark
	.long	sys_prlimit64
	.long	sys_name_to_handle_at
	.long	sys_open_by_handle_at	/* 305 */
	.long	sys_clock_adjtime
	.long	sys_syncfs
	.long	sys_sendmmsg
	.long	__sys_process_vm_readv
	.long	__sys_process_vm_writev	/* 310 */
	.long	sys_kcmp
	.long	sys_finit_module
	.long	sys_sched_setattr
	.long	sys_sched_getattr
	.long	sys_renameat2		/* 315 */
	.long	sys_seccomp
	.long	sys_getrandom
	.long	sys_memfd_create
	.long	sys_bpf
	.long	sys_execveat		/* 320 */
	.long	sys_ni_syscall		/* r8 is saturated at nr_syscalls */