1#!/bin/sh 2# SPDX-License-Identifier: LGPL-2.1 3# (C) 2019, Arnaldo Carvalho de Melo <acme@redhat.com> 4 5if [ $# -ne 1 ] ; then 6 arch_x86_header_dir=tools/arch/x86/include/asm/ 7else 8 arch_x86_header_dir=$1 9fi 10 11x86_irq_vectors=${arch_x86_header_dir}/irq_vectors.h 12 13# FIRST_EXTERNAL_VECTOR is not that useful, find what is its number 14# and then replace whatever is using it and that is useful, which at 15# the time of writing of this script was: IRQ_MOVE_CLEANUP_VECTOR. 16 17first_external_regex='^#define[[:space:]]+FIRST_EXTERNAL_VECTOR[[:space:]]+(0x[[:xdigit:]]+)$' 18first_external_vector=$(grep -E ${first_external_regex} ${x86_irq_vectors} | sed -r "s/${first_external_regex}/\1/g") 19 20printf "static const char *x86_irq_vectors[] = {\n" 21regex='^#define[[:space:]]+([[:alnum:]_]+)_VECTOR[[:space:]]+(0x[[:xdigit:]]+)$' 22sed -r "s/FIRST_EXTERNAL_VECTOR/${first_external_vector}/g" ${x86_irq_vectors} | \ 23grep -E ${regex} | \ 24 sed -r "s/${regex}/\2 \1/g" | sort -n | \ 25 xargs printf "\t[%s] = \"%s\",\n" 26printf "};\n\n" 27 28