vchain revision 1.6 1 1.6 eeh # $NetBSD: vchain,v 1.6 2009/11/18 18:04:26 eeh Exp $
2 1.2 gwr
3 1.1 gwr # @(#)vchain 8.1 (Berkeley) 6/10/93
4 1.1 gwr #
5 1.6 eeh
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.6 eeh printf "vp: 0x%lx freelist_next: 0x%lx usecount: %d flags: i:0x%x v:0x%x u:0x%x\n",\
12 1.6 eeh $vp, $vp->v_freelist.tqe_next, $vp->v_uobj.uo_refs, \
13 1.6 eeh $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.6 eeh document vchain
21 1.6 eeh Given a vnode, follow its mount pointers
22 1.6 eeh end
23 1.6 eeh
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.6 eeh document mp_vchain
34 1.6 eeh print the vnode chain for a given mount point
35 1.6 eeh 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.6 eeh document vall
51 1.6 eeh print vnode chains for all mount points
52 1.6 eeh 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.6 eeh end