Dmitry V. Levin | 64672a6 | 2015-11-30 00:57:14 +0000 | [diff] [blame] | 1 | /* Return -1 on error or 1 on success (never 0!). */ |
| 2 | static int |
| 3 | get_syscall_args(struct tcb *tcp) |
| 4 | { |
| 5 | /* Registers used by SH5 Linux system calls for parameters */ |
| 6 | static const int syscall_regs[MAX_ARGS] = { 2, 3, 4, 5, 6, 7 }; |
| 7 | unsigned int i; |
Dmitry V. Levin | d70d1c4 | 2015-03-22 22:13:55 +0000 | [diff] [blame] | 8 | |
Dmitry V. Levin | 64672a6 | 2015-11-30 00:57:14 +0000 | [diff] [blame] | 9 | for (i = 0; i < tcp->s_ent->nargs; ++i) |
| 10 | if (upeek(tcp->pid, REG_GENERAL(syscall_regs[i]), |
| 11 | &tcp->u_arg[i]) < 0) |
| 12 | return -1; |
| 13 | return 1; |
| 14 | } |