| #!/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") | |
| } |