1 | // SPDX-License-Identifier: LGPL-2.1 |
2 | /* |
3 | * trace/beauty/arch_prctl.c |
4 | * |
5 | * Copyright (C) 2018, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com> |
6 | */ |
7 | |
8 | #include "trace/beauty/beauty.h" |
9 | #include <linux/kernel.h> |
10 | |
11 | #include "trace/beauty/generated/x86_arch_prctl_code_array.c" |
12 | |
13 | static DEFINE_STRARRAY_OFFSET(x86_arch_prctl_codes_1, "ARCH_" , x86_arch_prctl_codes_1_offset); |
14 | static DEFINE_STRARRAY_OFFSET(x86_arch_prctl_codes_2, "ARCH_" , x86_arch_prctl_codes_2_offset); |
15 | static DEFINE_STRARRAY_OFFSET(x86_arch_prctl_codes_3, "ARCH_" , x86_arch_prctl_codes_3_offset); |
16 | |
17 | static struct strarray *x86_arch_prctl_codes[] = { |
18 | &strarray__x86_arch_prctl_codes_1, |
19 | &strarray__x86_arch_prctl_codes_2, |
20 | &strarray__x86_arch_prctl_codes_3, |
21 | }; |
22 | |
23 | static DEFINE_STRARRAYS(x86_arch_prctl_codes); |
24 | |
25 | static size_t x86_arch_prctl__scnprintf_code(int option, char *bf, size_t size, bool show_prefix) |
26 | { |
27 | return strarrays__scnprintf(&strarrays__x86_arch_prctl_codes, bf, size, "%#x" , show_prefix, option); |
28 | } |
29 | |
30 | size_t syscall_arg__scnprintf_x86_arch_prctl_code(char *bf, size_t size, struct syscall_arg *arg) |
31 | { |
32 | unsigned long code = arg->val; |
33 | |
34 | return x86_arch_prctl__scnprintf_code(option: code, bf, size, show_prefix: arg->show_string_prefix); |
35 | } |
36 | |