Commit ffc8b00d authored by Jesper Nilsson's avatar Jesper Nilsson
Browse files

CRIS v32: Update entry.S to working order.

- Remove oldset parameter.
- Utilise delay-slot for parameter moving.
- Add kernel_execve as break 13.
- Add new kernel syscalls.
parent e8a8abf2
Loading
Loading
Loading
Loading
+63 −18
Original line number Diff line number Diff line
@@ -281,12 +281,10 @@ _work_notifysig:
	;; Deal with pending signals and notify-resume requests.

	addoq	+TI_flags, $r0, $acr
	move.d	[$acr], $r13		; The thread_info_flags parameter.
	move.d	$r9, $r10		; do_notify_resume syscall/irq param.
	moveq	0, $r11			; oldset param - 0 in this case.
	move.d	$sp, $r12		; The regs param.
	move.d	[$acr], $r12		; The thread_info_flags parameter.
	move.d	$sp, $r11		; The regs param.
	jsr	do_notify_resume
	nop
	move.d	$r9, $r10		; do_notify_resume syscall/irq param.

	ba _Rexit
	nop
@@ -515,6 +513,13 @@ _ugdb_handle_exception:
	ba	do_sigtrap		; SIGTRAP the offending process.
	move.d	[$sp+], $r0		; Restore R0 in delay slot.

	.global kernel_execve
kernel_execve:
	move.d __NR_execve, $r9
	break 13
	ret
	nop

	.data

	.section .rodata,"a"
@@ -805,6 +810,46 @@ sys_call_table:
	.long sys_mq_getsetattr
	.long sys_ni_syscall		/* reserved for kexec */
	.long sys_waitid
	.long sys_ni_syscall		/* 285 */ /* available */
	.long sys_add_key
	.long sys_request_key
	.long sys_keyctl
	.long sys_ioprio_set
	.long sys_ioprio_get		/* 290 */
	.long sys_inotify_init
	.long sys_inotify_add_watch
	.long sys_inotify_rm_watch
	.long sys_migrate_pages
	.long sys_openat		/* 295 */
	.long sys_mkdirat
	.long sys_mknodat
	.long sys_fchownat
	.long sys_futimesat
	.long sys_fstatat64		/* 300 */
	.long sys_unlinkat
	.long sys_renameat
	.long sys_linkat
	.long sys_symlinkat
	.long sys_readlinkat		/* 305 */
	.long sys_fchmodat
	.long sys_faccessat
	.long sys_pselect6
	.long sys_ppoll
	.long sys_unshare		/* 310 */
	.long sys_set_robust_list
	.long sys_get_robust_list
	.long sys_splice
	.long sys_sync_file_range
	.long sys_tee			/* 315 */
	.long sys_vmsplice
	.long sys_move_pages
	.long sys_getcpu
	.long sys_epoll_pwait
	.long sys_utimensat		/* 320 */
	.long sys_signalfd
	.long sys_timerfd
	.long sys_eventfd
	.long sys_fallocate

        /*
         * NOTE!! This doesn't have to be exact - we just have