#!/usr/bin/awk -f
#
# Make a header file associating BPF_FUNC_* symbolic names with BPF helper ids.

BEGIN {
	print "#ifndef _BPF_ASM_HELPERS_H\n" \
	      "#define _BPF_ASM_HELPERS_H\n";
}

$1 == "static" && /=/ && /[ \t]+[1-9][0-9]*[ \t]*;/ {
	if (match($0, /[ \t\*]bpf_[_A-Za-z0-9]+[ \t]*\)/) > 0) {
		fn = substr($0, RSTART + 5, RLENGTH - 6);
		sub(/[ \t]+/, "", fn);

		match($0, /[ \t]+[1-9][0-9]*[ \t]*;/);
		id = substr($0, RSTART, RLENGTH - 1);
		gsub(/[ \t]+/,"", id);

		print "#define BPF_FUNC_"fn " " id;
	}
}

END {
	print "\n#endif /* _BPF_ASM_HELPERS_H */";
}
