162306a36Sopenharmony_ci#!/bin/sh
262306a36Sopenharmony_ci# SPDX-License-Identifier: LGPL-2.1
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciif [ $# -gt 0 ] ; then
562306a36Sopenharmony_ci	uapi_header_dir=$1
662306a36Sopenharmony_ci	beauty_header_dir=$2
762306a36Sopenharmony_cielse
862306a36Sopenharmony_ci	uapi_header_dir=tools/include/uapi/linux/
962306a36Sopenharmony_ci	beauty_header_dir=tools/perf/trace/beauty/include/linux/
1062306a36Sopenharmony_cifi
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciprintf "static const char *socket_ipproto[] = {\n"
1362306a36Sopenharmony_ciipproto_regex='^[[:space:]]+IPPROTO_(\w+)[[:space:]]+=[[:space:]]+([[:digit:]]+),.*'
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cigrep -E $ipproto_regex ${uapi_header_dir}/in.h | \
1662306a36Sopenharmony_ci	sed -r "s/$ipproto_regex/\2 \1/g"	| \
1762306a36Sopenharmony_ci	sort -n | xargs printf "\t[%s] = \"%s\",\n"
1862306a36Sopenharmony_ciprintf "};\n\n"
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciprintf "static const char *socket_level[] = {\n"
2162306a36Sopenharmony_cisocket_level_regex='^#define[[:space:]]+SOL_(\w+)[[:space:]]+([[:digit:]]+)([[:space:]]+\/.*)?'
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cigrep -E $socket_level_regex ${beauty_header_dir}/socket.h | \
2462306a36Sopenharmony_ci	sed -r "s/$socket_level_regex/\2 \1/g"	| \
2562306a36Sopenharmony_ci	sort -n | xargs printf "\t[%s] = \"%s\",\n"
2662306a36Sopenharmony_ciprintf "};\n\n"
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciprintf 'DEFINE_STRARRAY(socket_level, "SOL_");\n'
29