GNU Linux-libre 6.1.91-gnu
[releases.git] / arch / arm64 / tools / gen-cpucaps.awk
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
8 function 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
17 BEGIN {
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
31 END {
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 }