[MIPS] IRIX: Goodbye and thanks for all the fish
Never terribly functional or popular, plagued by hard to fix bugs the time to say goodbye has more than arrived. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Цей коміт міститься в:
@@ -34,12 +34,8 @@ NESTED(handle_sys, PT_SIZE, sp)
|
||||
|
||||
lw t1, PT_EPC(sp) # skip syscall on return
|
||||
|
||||
#if defined(CONFIG_BINFMT_IRIX)
|
||||
sltiu t0, v0, MAX_SYSCALL_NO + 1 # check syscall number
|
||||
#else
|
||||
subu v0, v0, __NR_O32_Linux # check syscall number
|
||||
sltiu t0, v0, __NR_O32_Linux_syscalls + 1
|
||||
#endif
|
||||
addiu t1, 4 # skip to next instruction
|
||||
sw t1, PT_EPC(sp)
|
||||
beqz t0, illegal_syscall
|
||||
@@ -264,22 +260,14 @@ bad_alignment:
|
||||
END(sys_sysmips)
|
||||
|
||||
LEAF(sys_syscall)
|
||||
#if defined(CONFIG_BINFMT_IRIX)
|
||||
sltiu v0, a0, MAX_SYSCALL_NO + 1 # check syscall number
|
||||
#else
|
||||
subu t0, a0, __NR_O32_Linux # check syscall number
|
||||
sltiu v0, t0, __NR_O32_Linux_syscalls + 1
|
||||
#endif
|
||||
sll t1, t0, 3
|
||||
beqz v0, einval
|
||||
|
||||
lw t2, sys_call_table(t1) # syscall routine
|
||||
|
||||
#if defined(CONFIG_BINFMT_IRIX)
|
||||
li v1, 4000 # nr of sys_syscall
|
||||
#else
|
||||
li v1, 4000 - __NR_O32_Linux # index of sys_syscall
|
||||
#endif
|
||||
beq t0, v1, einval # do not recurse
|
||||
|
||||
/* Some syscalls like execve get their arguments from struct pt_regs
|
||||
@@ -324,13 +312,6 @@ einval: li v0, -EINVAL
|
||||
.endm
|
||||
|
||||
.macro syscalltable
|
||||
#if defined(CONFIG_BINFMT_IRIX)
|
||||
mille sys_ni_syscall 0 /* 0 - 999 SVR4 flavour */
|
||||
mille sys_ni_syscall 0 /* 1000 - 1999 32-bit IRIX */
|
||||
mille sys_ni_syscall 0 /* 2000 - 2999 BSD43 flavour */
|
||||
mille sys_ni_syscall 0 /* 3000 - 3999 POSIX flavour */
|
||||
#endif
|
||||
|
||||
sys sys_syscall 8 /* 4000 */
|
||||
sys sys_exit 1
|
||||
sys sys_fork 0
|
||||
|
Посилання в новій задачі
Заблокувати користувача