1 /*
2 * Copyright (c) 2022 Dmitry V. Levin <ldv@strace.io>
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: LGPL-2.1-or-later
6 */
7
8 #include "defs.h"
9
10 #include DEF_MPERS_TYPE(struct_sysctl_args)
11 #include <linux/sysctl.h>
12 typedef struct __sysctl_args struct_sysctl_args;
13 #include MPERS_DEFS
14
15 SYS_FUNC(sysctl)
16 {
17 struct_sysctl_args info;
18
19 if (umove_or_printaddr(tcp, tcp->u_arg[0], &info))
20 return RVAL_DECODED;
21
22 tprint_struct_begin();
23 PRINT_FIELD_PTR(info, name);
24 tprint_struct_next();
25 PRINT_FIELD_D(info, nlen);
26 tprint_struct_next();
27 PRINT_FIELD_PTR(info, oldval);
28 tprint_struct_next();
29 PRINT_FIELD_PTR(info, oldlenp);
30 tprint_struct_next();
31 PRINT_FIELD_PTR(info, newval);
32 tprint_struct_next();
33 PRINT_FIELD_U(info, newlen);
34 tprint_struct_end();
35
36 return RVAL_DECODED;
37 }