1 // SPDX-License-Identifier: LGPL-2.1
2 #include <linux/log2.h>
4 #include "trace/beauty/generated/mmap_prot_array.c"
5 static DEFINE_STRARRAY(mmap_prot
, "PROT_");
7 static size_t mmap__scnprintf_prot(unsigned long prot
, char *bf
, size_t size
, bool show_prefix
)
9 return strarray__scnprintf_flags(&strarray__mmap_prot
, bf
, size
, show_prefix
, prot
);
12 static size_t syscall_arg__scnprintf_mmap_prot(char *bf
, size_t size
, struct syscall_arg
*arg
)
14 unsigned long prot
= arg
->val
;
17 return scnprintf(bf
, size
, "%sNONE", arg
->show_string_prefix
? strarray__mmap_prot
.prefix
: "");
19 return mmap__scnprintf_prot(prot
, bf
, size
, arg
->show_string_prefix
);
22 #define SCA_MMAP_PROT syscall_arg__scnprintf_mmap_prot
24 #include "trace/beauty/generated/mmap_flags_array.c"
25 static DEFINE_STRARRAY(mmap_flags
, "MAP_");
27 static size_t mmap__scnprintf_flags(unsigned long flags
, char *bf
, size_t size
, bool show_prefix
)
29 return strarray__scnprintf_flags(&strarray__mmap_flags
, bf
, size
, show_prefix
, flags
);
32 static size_t syscall_arg__scnprintf_mmap_flags(char *bf
, size_t size
,
33 struct syscall_arg
*arg
)
35 unsigned long flags
= arg
->val
;
37 if (flags
& MAP_ANONYMOUS
)
38 arg
->mask
|= (1 << 4) | (1 << 5); /* Mask 4th ('fd') and 5th ('offset') args, ignored */
40 return mmap__scnprintf_flags(flags
, bf
, size
, arg
->show_string_prefix
);
43 #define SCA_MMAP_FLAGS syscall_arg__scnprintf_mmap_flags
45 #include "trace/beauty/generated/mremap_flags_array.c"
46 static DEFINE_STRARRAY(mremap_flags
, "MREMAP_");
48 static size_t mremap__scnprintf_flags(unsigned long flags
, char *bf
, size_t size
, bool show_prefix
)
50 return strarray__scnprintf_flags(&strarray__mremap_flags
, bf
, size
, show_prefix
, flags
);
53 static size_t syscall_arg__scnprintf_mremap_flags(char *bf
, size_t size
, struct syscall_arg
*arg
)
55 unsigned long flags
= arg
->val
;
57 if (!(flags
& MREMAP_FIXED
))
58 arg
->mask
|= (1 << 5); /* Mask 5th ('new_address') args, ignored */
60 return mremap__scnprintf_flags(flags
, bf
, size
, arg
->show_string_prefix
);
63 #define SCA_MREMAP_FLAGS syscall_arg__scnprintf_mremap_flags
65 static size_t madvise__scnprintf_behavior(int behavior
, char *bf
, size_t size
)
67 #include "trace/beauty/generated/madvise_behavior_array.c"
68 static DEFINE_STRARRAY(madvise_advices
, "MADV_");
70 if (behavior
< strarray__madvise_advices
.nr_entries
&& strarray__madvise_advices
.entries
[behavior
] != NULL
)
71 return scnprintf(bf
, size
, "MADV_%s", strarray__madvise_advices
.entries
[behavior
]);
73 return scnprintf(bf
, size
, "%#", behavior
);
76 static size_t syscall_arg__scnprintf_madvise_behavior(char *bf
, size_t size
,
77 struct syscall_arg
*arg
)
79 return madvise__scnprintf_behavior(arg
->val
, bf
, size
);
82 #define SCA_MADV_BHV syscall_arg__scnprintf_madvise_behavior