#!/bin/sh
# Copyright (C) 2023 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# Used to generate linux-defaults.xml.in, like so:
# $ ./update-linux-defaults.sh ~/strace.git
if [ $# -lt 1 ]; then
echo "dir argument needed"
exit 1
fi
d="$1"
shift
if [ ! -d "$d" ]; then
echo "cannot find $d"
exit 1
fi
pre ()
{
year=$(date +%Y)
cat <
EOF
echo ''
}
post ()
{
echo ''
}
generate ()
{
pre
grep -rn -E "T[A-Z][,|]" "$d/src/linux/" \
| sed -e 's/\(T[A-Z][,|].*\)/\x03&/' -e 's/.*\x03//' \
-e 's/,[ \t]*SEN[ \t]*(/, SEN(/g' \
| grep ", SEN(" \
| sed -e 's/\(.*\"\).*/\1/g' \
-e 's/#64\"/\"/g' \
| awk '{print $3 " " $1}' \
| sort -u \
| sed -e 's/|/,/g' \
-e 's/TD,/descriptor,/g' \
-e 's/TF,/file,/g' \
-e 's/TI,/ipc,/g' \
-e 's/TM,/memory,/g' \
-e 's/TN,/network,/g' \
-e 's/TP,/process,/g' \
-e 's/TS,/signal,/g' \
-e 's/[A-Z]\+,//g' \
| grep -v '" $' \
| sed 's/,$//g' \
| awk "{printf \" \n\", \$1, \$2}"
post
}
f=linux-defaults.xml.in
echo "Generating $f"
generate > "$f"