Home | History | Annotate | Line # | Download | only in gdbscripts
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