Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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}