1#	$NetBSD: bdump,v 1.2 1997/02/12 23:35:06 gwr Exp $
2
3# Count the number of buffers in the buffer cache for which
4# bp->b_flags & $bufcount_match is non-0.
5#
6#	@(#)bdump	8.1 (Berkeley) 6/10/93
7
8set $bufcount_match=0x020000
9define bufcount
10
11	set $i = 0
12	set $num = 0
13
14	while ($i < 512)
15
16		set $bp = bufhash[$i].b_forw
17		while ($bp != bufhash[$i].b_back)
18			if ($bp->b_flags & $bufcount_match)
19				set $num++
20			end
21			set $bp = $bp->b_forw
22		end
23		# printf "bucket: %d cumulative %d\n", $i, $num
24		set $i++
25	end
26	printf "Number of buffers with flags & %x in hash table: %d\n", $bufcount_match, $num
27end
28
29# Dump the entire buffer cache.
30
31define bufdump
32
33	set $i = 0
34	set $num = 0
35
36	while ($i < 512)
37
38		set $bp = bufhash[$i].b_forw
39		while ($bp != bufhash[$i].b_back)
40			printf "bp=0x%x flags=0x%x vp=0x%x lblkno=0x%x blkno=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_blkno
41			set $num++
42			set $bp = $bp->b_forw
43		end
44		set $i++
45	end
46	printf "Number of buffers in hash table: %d\n", $num
47end
48
49# Dump the buffers in a particular hashbucket.
50# usage: dumpbucket bucketnumber
51define dumpbucket
52
53	set $num = 0
54	set $bp = bufhash[$arg0].b_forw
55	while ($bp != bufhash[$arg0].b_back)
56		printf "bp=0x%x flags=0x%x vp=0x%x lblkno=0x%x blkno=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_blkno
57		set $num++
58		set $bp = $bp->b_forw
59	end
60	printf "Number of buffers in bucket %d: %d\n", $arg0, $num
61end
62
63# Dump the buffers on the empty and age queues
64
65define bdumpnew
66
67	set $i = 0
68	set $num = 0
69
70	while ($i < 4)
71
72		printf "Queue %d\n", $i
73		set $bp = (struct buf *)bufqueues[$i].qe_next
74		while ($bp)
75			printf "bp=0x%x flags=0x%x vp=0x%x lbn=%d size=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_bufsize
76			set $num++
77			set $bp = (struct buf *)$bp->b_freelist.qe_next
78		end
79		set $i++
80	end
81	printf "Number of buffers in free lists: %d\n", $num
82end
83
84define dumpchain
85
86	set $bp = (struct buf *)$arg0
87	while ($bp)
88		printf "bp=0x%x flags=0x%x bn=0x%x lbn=%d count=%d size=%d\n", $bp, $bp->b_flags, $bp->b_blkno, $bp->b_lblkno, $bp->b_bcount, $bp->b_bufsize
89		set $bp = (struct buf *)$bp->b_vnbufs.qe_next
90	end
91end
92
93define dumpq
94
95	set $num = 0
96
97	printf "Queue %d\n", $arg0
98	set $bp = (struct buf *)bufqueues[$arg0].qe_next
99	while ($bp)
100		printf "bp=0x%x flags=0x%x vp=0x%x lbn=%d size=0x%x\n", $bp, $bp->b_flags, $bp->b_vp, $bp->b_lblkno, $bp->b_bufsize
101		set $num++
102		set $bp = (struct buf *)$bp->b_freelist.qe_next
103	end
104	printf "Number of buffers on queue %d: %d\n", $arg0, $num
105end
106