sbin/hammer: Have consistent naming for buffer variables
[dragonfly.git] / tools / tools / kernxref / kernxref.sh
blob23f49a71a9dbdbe6454dfa37e6ec2ba4159ac8f9
3 # ----------------------------------------------------------------------------
4 # "THE BEER-WARE LICENSE" (Revision 42):
5 # <phk@login.dknet.dk> wrote this file. As long as you retain this notice you
6 # can do whatever you want with this stuff. If we meet some day, and you think
7 # this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
8 # ----------------------------------------------------------------------------
10 # $FreeBSD: src/tools/tools/kernxref/kernxref.sh,v 1.13 1999/08/28 00:54:30 peter Exp $
12 # This shellscript will make a cross reference of the symbols of the LINT64
13 # kernel.
15 COMPILEDIR=/sys/compile
16 KERNELNAME=LINT64
18 cd ${COMPILEDIR}/${KERNELNAME}
20 nm -gon `echo *.o /boot/kernel/*.ok \
21 | tr ' ' '\012' \
22 | egrep -v '(genassym)'` \
23 | tr : ' ' | awk '
24 NF > 1 {
25 if (length($2) == 8) {
26 $2 = $3
27 $3 = $4
29 if ($2 == "t")
30 next
31 if ($2 == "F")
32 next
33 nm[$3]++
34 if ($2 == "U") {
35 ref[$3]=ref[$3]" "$1
36 } else if ($2 == "T" || $2 == "D" || $2 == "A") {
37 if (def[$3] != "")
38 def[$3]=def[$3]" "$1
39 else
40 def[$3]=$1
41 } else if ($2 == "?") {
42 if (def[$3] == "S")
43 i++
44 else if (def[$3] != "")
45 def[$3]=def[$3]",S"
46 else
47 def[$3]="S"
48 ref[$3]=ref[$3]" "$1
49 } else if ($2 == "C") {
50 if (def[$3] == $2)
51 i++
52 else if (def[$3] == "")
53 def[$3]=$1
54 else
55 ref[$3]=ref[$3]" "$1
56 } else {
57 print ">>>",$0
60 END {
61 for (i in nm) {
62 printf "%s {%s} %s\n",i,def[i],ref[i]
65 ' | sort | awk '
67 if ($2 == "{S}")
68 $2 = "<Linker set>"
69 if (length($3) == 0) {
70 printf "%-30s %3d %s\n\tUNREF\n",$1,0, $2
71 N1++
72 } else if ($2 == "{}") {
73 printf "%-30s %3d {UNDEF}\n",$1, NF-2
74 N2++
75 } else {
76 printf "%-30s %3d %s",$1,NF-2,$2
77 p = 80;
78 for (i = 3 ; i <= NF; i++) {
79 if (p+length ($i)+1 > 78) {
80 printf "\n\t%s", $i
81 p = 7;
82 } else {
83 printf " %s", $i
85 p += 1 + length ($i)
87 printf "\n"
88 N3++
89 if (NF-2 == 1)
90 N4++
91 if (NF-2 == 2)
92 N5++
95 END {
96 printf "Total symbols: %5d\n",N1+N2+N3
97 printf "unref symbols: %5d\n",N1
98 printf "undef symbols: %5d\n",N2
99 printf "1 ref symbols: %5d\n",N4
100 printf "2 ref symbols: %5d\n",N5