aboutsummaryrefslogtreecommitdiff
blob: 846294cb8f22aa0f78fd3fa2e5b51182e667869c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
BEGIN {
	COUNT = split(" " SYMBOLS_LIST, SYMBOLS);

	if (MODE == "gen") {
		for (x in SYMBOLS) {
			s = SYMBOLS[x]
			print "SB_" s " = SYS_" s
		}
		exit(0);
	}
}

function out(name, val)
{
	name = toupper(name)
	print "#define SB_SYS" syscall_prefix "_" name " " val;
	print "S(" name ")";
}

{
	# found:     SB_func = <something>
	# not found: SB_func = SYS_func
	if ($1 !~ /^SB_/)
		next;
	if ($3 ~ /^SYS_/)
		next;

	sub(/^SB_/, "", $1);
	name = $1
	# accept everything after the "=" in case it's either
	# a straight number or an expression (a syscall base)
	sub(/^[^=]*= /, "");

	for (i = 1; i <= COUNT; ++i)
		if (SYMBOLS[i] == name) {
			SYMBOLS[i] = "";
			break;
		}

	out(name, $0);
}

END {
	if (MODE != "gen") {
		for (x in SYMBOLS) {
			s = SYMBOLS[x];
			if (s != "")
				out(s, "SB_NR_UNDEF");
		}
	}
}