vchain revision 1.11 1 1.11 mrg # $NetBSD: vchain,v 1.11 2019/12/06 02:37:53 mrg 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.11 mrg set $vi = (struct vnode_impl *)$arg0
10 1.11 mrg printf "lrulist_next: 0x%lx\n", $vi->vi_lrulist.tqe_next
11 1.11 mrg while ($vi)
12 1.11 mrg set $vp = &$vi->vi_vnode
13 1.11 mrg printf "vp: 0x%lx usecount: %d flags: i:0x%x v:0x%x u:0x%x\n",\
14 1.11 mrg $vp, $vp->v_uobj.uo_refs, \
15 1.6 eeh $vp->v_iflag, $vp->v_vflag, $vp->v_uflag
16 1.1 gwr set $num++
17 1.11 mrg set $vi = $vi->vi_mntvnodes.tqe_next
18 1.1 gwr end
19 1.1 gwr printf "Number of vnodes: %d\n", $num
20 1.1 gwr end
21 1.1 gwr
22 1.6 eeh document vchain
23 1.6 eeh Given a vnode, follow its mount pointers
24 1.6 eeh end
25 1.6 eeh
26 1.1 gwr define vprint
27 1.1 gwr set $vp=(struct vnode *)$arg0
28 1.1 gwr set $ip=(struct inode *)$vp->v_data
29 1.1 gwr end
30 1.1 gwr
31 1.3 pooka define mp_vchain
32 1.11 mrg set $mp = $arg0->me_mount
33 1.11 mrg set $first = $mp->mnt_vnodelist.tqh_first
34 1.11 mrg if ($first)
35 1.11 mrg vchain $mp->mnt_vnodelist.tqh_first
36 1.11 mrg end
37 1.3 pooka end
38 1.6 eeh document mp_vchain
39 1.6 eeh print the vnode chain for a given mount point
40 1.6 eeh end
41 1.3 pooka
42 1.1 gwr define vall
43 1.11 mrg set $mpe=mountlist.tqh_first
44 1.11 mrg while ($mpe)
45 1.11 mrg printf "\tmount point at 0x%lx\n", $mpe
46 1.11 mrg mp_vchain $mpe
47 1.11 mrg set $mpe = $mpe->me_list.tqe_next
48 1.3 pooka
49 1.3 pooka # "break"
50 1.11 mrg if ((const void *)$mpe == (const void *)&mountlist)
51 1.11 mrg set $mpe = 0
52 1.3 pooka end
53 1.1 gwr end
54 1.1 gwr end
55 1.6 eeh document vall
56 1.6 eeh print vnode chains for all mount points
57 1.6 eeh end
58 1.4 pooka
59 1.4 pooka define mountdump
60 1.10 mrg set $me=mountlist.tqh_first
61 1.9 hannken while ($me)
62 1.9 hannken if ($me->me_type == ME_MOUNT)
63 1.9 hannken set $mp = $me->me_mount
64 1.11 mrg printf "%s on %s type %s, (mp 0x%lx, privdata 0x%lx)\n", \
65 1.9 hannken $mp->mnt_stat->f_mntfromname, \
66 1.9 hannken $mp->mnt_stat->f_mntonname, \
67 1.9 hannken $mp->mnt_op->vfs_name, $mp, $mp->mnt_data
68 1.9 hannken end
69 1.9 hannken set $me=$me->me_list.tqe_next
70 1.10 mrg if ((const void *)$me == (const void *)&mountlist)
71 1.9 hannken set $me = 0
72 1.4 pooka end
73 1.4 pooka end
74 1.7 riz end
75