vchain revision 1.5.52.1 1 1.5.52.1 yamt # $NetBSD: vchain,v 1.5.52.1 2010/03/11 15:04:15 yamt Exp $
2 1.2 gwr
3 1.1 gwr # @(#)vchain 8.1 (Berkeley) 6/10/93
4 1.1 gwr #
5 1.5.52.1 yamt
6 1.1 gwr define vchain
7 1.1 gwr set $num = 0
8 1.1 gwr
9 1.1 gwr set $vp=(struct vnode *)$arg0
10 1.1 gwr while ($vp)
11 1.5.52.1 yamt printf "vp: 0x%lx freelist_next: 0x%lx usecount: %d flags: i:0x%x v:0x%x u:0x%x\n",\
12 1.5.52.1 yamt $vp, $vp->v_freelist.tqe_next, $vp->v_uobj.uo_refs, \
13 1.5.52.1 yamt $vp->v_iflag, $vp->v_vflag, $vp->v_uflag
14 1.1 gwr set $num++
15 1.5 pooka set $vp = $vp->v_mntvnodes.tqe_next
16 1.1 gwr end
17 1.1 gwr printf "Number of vnodes: %d\n", $num
18 1.1 gwr end
19 1.1 gwr
20 1.5.52.1 yamt document vchain
21 1.5.52.1 yamt Given a vnode, follow its mount pointers
22 1.5.52.1 yamt end
23 1.5.52.1 yamt
24 1.1 gwr define vprint
25 1.1 gwr set $vp=(struct vnode *)$arg0
26 1.1 gwr set $ip=(struct inode *)$vp->v_data
27 1.1 gwr end
28 1.1 gwr
29 1.3 pooka define mp_vchain
30 1.3 pooka set $mp = (struct mount *)$arg0
31 1.5 pooka vchain $mp->mnt_vnodelist.tqh_first
32 1.3 pooka end
33 1.5.52.1 yamt document mp_vchain
34 1.5.52.1 yamt print the vnode chain for a given mount point
35 1.5.52.1 yamt end
36 1.3 pooka
37 1.1 gwr define vall
38 1.3 pooka set $mp=mountlist.cqh_first
39 1.1 gwr while ($mp)
40 1.3 pooka printf "\tmount point at 0x%x\n", $mp
41 1.3 pooka mp_vchain $mp
42 1.3 pooka set $mp=$mp->mnt_list.cqe_next
43 1.3 pooka
44 1.3 pooka # "break"
45 1.3 pooka if ((const void *)$mp == (const void *)&mountlist)
46 1.3 pooka set $mp = 0
47 1.3 pooka end
48 1.1 gwr end
49 1.1 gwr end
50 1.5.52.1 yamt document vall
51 1.5.52.1 yamt print vnode chains for all mount points
52 1.5.52.1 yamt end
53 1.4 pooka
54 1.4 pooka define mountdump
55 1.4 pooka set $mp=mountlist.cqh_first
56 1.4 pooka while ($mp)
57 1.4 pooka printf "%s on %s type %s, (mp 0x%x, privdata 0x%x)\n", \
58 1.4 pooka $mp->mnt_stat->f_mntfromname, $mp->mnt_stat->f_mntonname, \
59 1.4 pooka $mp->mnt_op->vfs_name, $mp, $mp->mnt_data
60 1.4 pooka set $mp=$mp->mnt_list.cqe_next
61 1.4 pooka if ((const void *)$mp == (const void *)&mountlist)
62 1.4 pooka set $mp = 0
63 1.4 pooka end
64 1.4 pooka end
65 1.5.52.1 yamt end