~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/x86/kernel/cpu/mkcapflags.sh

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #!/bin/sh
  2 # SPDX-License-Identifier: GPL-2.0
  3 #
  4 # Generate the x86_cap/bug_flags[] arrays from include/asm/cpufeatures.h
  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 starting with #define $PFX
 25         sed -n -e 's/\t/ /g' -e "s/^ *# *define *$PFX//p" $IN |
 26         while read i
 27         do
 28                 # Name is everything up to the first whitespace
 29                 NAME="$(echo "$i" | sed 's/ .*//')"
 30 
 31                 # If the /* comment */ starts with a quote string, grab that.
 32                 VALUE="$(echo "$i" | sed -n 's@.*/\* *\("[^"]*"\).*\*/@\1@p')"
 33                 [ ! "$VALUE" ] && continue
 34 
 35                 # Name is uppercase, VALUE is all lowercase
 36                 VALUE="$(echo "$VALUE" | tr A-Z a-z)"
 37 
 38         if [ -n "$POSTFIX" ]; then
 39             T=$(( $PFX_SZ + $(echo $POSTFIX | wc -c) + 2 ))
 40                 TABS="$(printf '\t\t\t\t\t\t')"
 41                     TABCOUNT=$(( ( 6*8 - ($T + 1) - $(echo "$NAME" | wc -c) ) / 8 ))
 42                     printf "\t[%s - %s]%.*s = %s,\n" "$PFX$NAME" "$POSTFIX" "$TABCOUNT" "$TABS" "$VALUE"
 43         else
 44                     TABCOUNT=$(( ( 5*8 - ($PFX_SZ + 1) - $(echo "$NAME" | wc -c) ) / 8 ))
 45             printf "\t[%s]%.*s = %s,\n" "$PFX$NAME" "$TABCOUNT" "$TABS" "$VALUE"
 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*32" "X86_FEATURE_" "" $2
 60         echo ""
 61 
 62         dump_array "x86_bug_flags" "NBUGINTS*32" "X86_BUG_" "NCAPINTS*32" $2
 63         echo ""
 64 
 65         echo "#ifdef CONFIG_X86_VMX_FEATURE_NAMES"
 66         echo "#ifndef _ASM_X86_VMXFEATURES_H"
 67         echo "#include <asm/vmxfeatures.h>"
 68         echo "#endif"
 69         dump_array "x86_vmx_flags" "NVMXINTS*32" "VMX_FEATURE_" "" $3
 70         echo "#endif /* CONFIG_X86_VMX_FEATURE_NAMES */"
 71 ) > $OUT
 72 
 73 trap - EXIT

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php