perf trace beauty: Add beautifiers for 'socket''s 'protocol' arg
It'll be wired to 'perf trace' in the next cset. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: https://lkml.kernel.org/n/tip-2i9vkvm1ik8yu4hgjmxhsyjv@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@@ -7,4 +7,5 @@ endif
|
||||
libperf-y += kcmp.o
|
||||
libperf-y += pkey_alloc.o
|
||||
libperf-y += prctl.o
|
||||
libperf-y += socket.o
|
||||
libperf-y += statx.o
|
||||
|
@@ -106,6 +106,9 @@ size_t syscall_arg__scnprintf_prctl_arg2(char *bf, size_t size, struct syscall_a
|
||||
size_t syscall_arg__scnprintf_prctl_arg3(char *bf, size_t size, struct syscall_arg *arg);
|
||||
#define SCA_PRCTL_ARG3 syscall_arg__scnprintf_prctl_arg3
|
||||
|
||||
size_t syscall_arg__scnprintf_socket_protocol(char *bf, size_t size, struct syscall_arg *arg);
|
||||
#define SCA_SK_PROTO syscall_arg__scnprintf_socket_protocol
|
||||
|
||||
size_t syscall_arg__scnprintf_statx_flags(char *bf, size_t size, struct syscall_arg *arg);
|
||||
#define SCA_STATX_FLAGS syscall_arg__scnprintf_statx_flags
|
||||
|
||||
|
28
tools/perf/trace/beauty/socket.c
Normal file
28
tools/perf/trace/beauty/socket.c
Normal file
@@ -0,0 +1,28 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* trace/beauty/socket.c
|
||||
*
|
||||
* Copyright (C) 2018, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com>
|
||||
*/
|
||||
|
||||
#include "trace/beauty/beauty.h"
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
static size_t socket__scnprintf_ipproto(int protocol, char *bf, size_t size)
|
||||
{
|
||||
#include "trace/beauty/generated/socket_ipproto_array.c"
|
||||
static DEFINE_STRARRAY(socket_ipproto);
|
||||
|
||||
return strarray__scnprintf(&strarray__socket_ipproto, bf, size, "%d", protocol);
|
||||
}
|
||||
|
||||
size_t syscall_arg__scnprintf_socket_protocol(char *bf, size_t size, struct syscall_arg *arg)
|
||||
{
|
||||
int domain = syscall_arg__val(arg, 0);
|
||||
|
||||
if (domain == AF_INET || domain == AF_INET6)
|
||||
return socket__scnprintf_ipproto(arg->val, bf, size);
|
||||
|
||||
return syscall_arg__scnprintf_int(bf, size, arg);
|
||||
}
|
Reference in New Issue
Block a user