1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0 3 # 4 # Generate the x86_cap/bug_flags[] arrays from 5 # 6 7 set -e 8 9 OUT=$1 10 11 dump_array() 12 { 13 ARRAY=$1 14 SIZE=$2 15 PFX=$3 16 POSTFIX=$4 17 IN=$5 18 19 PFX_SZ=$(echo $PFX | wc -c) 20 TABS="$(printf '\t\t\t\t\t')" 21 22 echo "const char * const $ARRAY[$SIZE] 23 24 # Iterate through any input lines star 25 sed -n -e 's/\t/ /g' -e "s/^ *# *defin 26 while read i 27 do 28 # Name is everything up to the 29 NAME="$(echo "$i" | sed 's/ .* 30 31 # If the /* comment */ starts 32 VALUE="$(echo "$i" | sed -n 's 33 [ ! "$VALUE" ] && continue 34 35 # Name is uppercase, VALUE is 36 VALUE="$(echo "$VALUE" | tr A- 37 38 if [ -n "$POSTFIX" ]; then 39 T=$(( $PFX_SZ + $(echo $POSTFIX | 40 TABS="$(printf '\t\t\t\t\t\t') 41 TABCOUNT=$(( ( 6*8 - ($T + 42 printf "\t[%s - %s]%.*s = 43 else 44 TABCOUNT=$(( ( 5*8 - ($PFX 45 printf "\t[%s]%.*s = %s,\n" "$PFX$ 46 fi 47 done 48 echo "};" 49 } 50 51 trap 'rm "$OUT"' EXIT 52 53 ( 54 echo "#ifndef _ASM_X86_CPUFEATURES_H" 55 echo "#include <asm/cpufeatures.h>" 56 echo "#endif" 57 echo "" 58 59 dump_array "x86_cap_flags" "NCAPINTS*3 60 echo "" 61 62 dump_array "x86_bug_flags" "NBUGINTS*3 63 echo "" 64 65 echo "#ifdef CONFIG_X86_VMX_FEATURE_NA 66 echo "#ifndef _ASM_X86_VMXFEATURES_H" 67 echo "#include <asm/vmxfeatures.h>" 68 echo "#endif" 69 dump_array "x86_vmx_flags" "NVMXINTS*3 70 echo "#endif /* CONFIG_X86_VMX_FEATURE 71 ) > $OUT 72 73 trap - EXIT
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.