#!/bin/awk -f # SPDX-License-Identifier: GPL-2.0 # gen-cpucaps.awk: arm64 cpucaps header generator # # Usage: awk -f gen-cpucaps.awk cpucaps.txt # Log an error and terminate function fatal(msg) { print "Error at line " NR ": " msg > "/dev/stderr" exit 1 } # skip blank lines and comment lines /^$/ { next } /^#/ { next } BEGIN { print "#ifndef __ASM_CPUCAP_DEFS_H" print "#define __ASM_CPUCAP_DEFS_H" print "" print "/* Generated file - do not edit */" cap_num = 0 print "" } /^[vA-Z0-9_]+$/ { printf("#define ARM64_%-40s\t%d\n", $0, cap_num++) next } END { printf("#define ARM64_NCAPS\t\t\t\t\t%d\n", cap_num) print "" print "#endif /* __ASM_CPUCAP_DEFS_H */" } # Any lines not handled by previous rules are unexpected { fatal("unhandled statement") }