xref: /openbmc/linux/tools/perf/trace/beauty/socket.sh (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1795f91dbSArnaldo Carvalho de Melo#!/bin/sh
2795f91dbSArnaldo Carvalho de Melo# SPDX-License-Identifier: LGPL-2.1
3795f91dbSArnaldo Carvalho de Melo
41a1edf33SArnaldo Carvalho de Meloif [ $# -gt 0 ] ; then
51a1edf33SArnaldo Carvalho de Melo	uapi_header_dir=$1
6ecf0a35bSArnaldo Carvalho de Melo	beauty_header_dir=$2
71a1edf33SArnaldo Carvalho de Meloelse
81a1edf33SArnaldo Carvalho de Melo	uapi_header_dir=tools/include/uapi/linux/
9ecf0a35bSArnaldo Carvalho de Melo	beauty_header_dir=tools/perf/trace/beauty/include/linux/
101a1edf33SArnaldo Carvalho de Melofi
11795f91dbSArnaldo Carvalho de Melo
12795f91dbSArnaldo Carvalho de Meloprintf "static const char *socket_ipproto[] = {\n"
1382e3664bSArnaldo Carvalho de Meloipproto_regex='^[[:space:]]+IPPROTO_(\w+)[[:space:]]+=[[:space:]]+([[:digit:]]+),.*'
14795f91dbSArnaldo Carvalho de Melo
15*818448e9STiezhu Yanggrep -E $ipproto_regex ${uapi_header_dir}/in.h | \
1682e3664bSArnaldo Carvalho de Melo	sed -r "s/$ipproto_regex/\2 \1/g"	| \
17d3f82839SArnaldo Carvalho de Melo	sort -n | xargs printf "\t[%s] = \"%s\",\n"
18ecf0a35bSArnaldo Carvalho de Meloprintf "};\n\n"
19ecf0a35bSArnaldo Carvalho de Melo
20ecf0a35bSArnaldo Carvalho de Meloprintf "static const char *socket_level[] = {\n"
21ecf0a35bSArnaldo Carvalho de Melosocket_level_regex='^#define[[:space:]]+SOL_(\w+)[[:space:]]+([[:digit:]]+)([[:space:]]+\/.*)?'
22ecf0a35bSArnaldo Carvalho de Melo
23*818448e9STiezhu Yanggrep -E $socket_level_regex ${beauty_header_dir}/socket.h | \
24ecf0a35bSArnaldo Carvalho de Melo	sed -r "s/$socket_level_regex/\2 \1/g"	| \
25ecf0a35bSArnaldo Carvalho de Melo	sort -n | xargs printf "\t[%s] = \"%s\",\n"
26ecf0a35bSArnaldo Carvalho de Meloprintf "};\n\n"
27ecf0a35bSArnaldo Carvalho de Melo
28ecf0a35bSArnaldo Carvalho de Meloprintf 'DEFINE_STRARRAY(socket_level, "SOL_");\n'
29