cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

gen-cpucaps.awk (759B)


      1#!/bin/awk -f
      2# SPDX-License-Identifier: GPL-2.0
      3# gen-cpucaps.awk: arm64 cpucaps header generator
      4#
      5# Usage: awk -f gen-cpucaps.awk cpucaps.txt
      6
      7# Log an error and terminate
      8function fatal(msg) {
      9	print "Error at line " NR ": " msg > "/dev/stderr"
     10	exit 1
     11}
     12
     13# skip blank lines and comment lines
     14/^$/ { next }
     15/^#/ { next }
     16
     17BEGIN {
     18	print "#ifndef __ASM_CPUCAPS_H"
     19	print "#define __ASM_CPUCAPS_H"
     20	print ""
     21	print "/* Generated file - do not edit */"
     22	cap_num = 0
     23	print ""
     24}
     25
     26/^[vA-Z0-9_]+$/ {
     27	printf("#define ARM64_%-30s\t%d\n", $0, cap_num++)
     28	next
     29}
     30
     31END {
     32	printf("#define ARM64_NCAPS\t\t\t\t%d\n", cap_num)
     33	print ""
     34	print "#endif /* __ASM_CPUCAPS_H */"
     35}
     36
     37# Any lines not handled by previous rules are unexpected
     38{
     39	fatal("unhandled statement")
     40}