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_CPUCAP_DEFS_H" 19 print "#define __ASM_CPUCAP_DEFS_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_%-40s\t%d\n", $0, cap_num++) 28 next 29} 30 31END { 32 printf("#define ARM64_NCAPS\t\t\t\t\t%d\n", cap_num) 33 print "" 34 print "#endif /* __ASM_CPUCAP_DEFS_H */" 35} 36 37# Any lines not handled by previous rules are unexpected 38{ 39 fatal("unhandled statement") 40} 41