diff options
Diffstat (limited to 'src/linux/bfin/get_syscall_args.c')
-rw-r--r-- | src/linux/bfin/get_syscall_args.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/linux/bfin/get_syscall_args.c b/src/linux/bfin/get_syscall_args.c new file mode 100644 index 000000000..c0eb7a5b4 --- /dev/null +++ b/src/linux/bfin/get_syscall_args.c @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2015-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +/* Return -1 on error or 1 on success (never 0!). */ +static int +arch_get_syscall_args(struct tcb *tcp) +{ + static const int argreg[MAX_ARGS] = { + PT_R0, PT_R1, PT_R2, PT_R3, PT_R4, PT_R5 + }; + unsigned int i; + + for (i = 0; i < n_args(tcp); ++i) + if (upeek(tcp, argreg[i], &tcp->u_arg[i]) < 0) + return -1; + return 1; +} |