set _nameonly 0 ifdef queowner em queowner fi define queowner a 0t48 do strowner_aux *practive (*(($1)+0t64)) . ifdef strowner em strowner fi define strowner a 0t32 do strowner_aux *practive $1 . ifdef strowner_aux em strowner_aux fi define strowner_aux aa 0t538 if ((($1) == 0) | ((%v($1)) == 0)) exit else set str_ownerfound 0 if ((*(($1)+0t0))&0xFF) == 3 else sp $1 do chkfilelst u+0t5484 0t24 $2 0 IF (str_ownerfound == 1) if (_nameonly == 1) pf "\n--- ",$1 pslall $1 0 exit else printf "Proc %8x Name: ",$1 if ((*(($1)+0t4)) & 0x00002000 ) == 0x00002000 printf "%s\n", %s((*(($1)+0t356))+0t4188) printf " # File Vnode Stream\n" fi do chkfilelst u+0t5484 0t24 $2 1 fi fi fi setarg 1 (*(($1)+0t380)) fi . ifdef chkfilelst em chkfilelst fi define chkfilelst aiii 0t388 if (($2) == 0) sa 1 $1 + 0t24 if (*$1) != 0 sa 1 (*$1) sa 2 0t24 else exit FI else args 5 IF (*$1) != 0 sa 5 (*((*$1)+0t12)) IF $5 != 0 IF (*($5+10)) == $3 IF $4 printf "[%d] %8x %8x", $2, *$1, $5 printf " %8x" *($5+10) printf "\n" else set str_ownerfound 1 fi FI FI FI sa 1 $1 + 4 sa 2 $2 - 1 FI . ifdef files em files fi define files a 0t219 if ((($1) == 0) | ((%v($1)) == 0)) exit else printf "Proc %8x\n",$1 sp $1 printf " # File Vnode Stream\n" if ((*(($1)+0t0))&0xFF) == 3 else do filelst u+0t5484 0 0t24 fi setarg 1 (*(($1)+0t380)) fi . ifdef filelst em filelst fi define filelst aii 0t550 args 4 if (($3) == 0) sa 1 $1 + 0t24 if (*$1) != 0 sa 1 (*$1) sa 3 0t24 else exit FI else IF (*$1) != 0 printf "[%d] %8x %8x", $2, *$1, (*((*$1)+0t12)) IF ((*((*$1)+0t12))) != 0 IF (*((*((*$1)+0t12))+10)) != 0 printf " %8x" *((*((*$1)+0t12))+10) else printf " " fi sa 4 (*(((*((*$1)+0t12)))+0t28)) IF $4 != 0 printf " %2d/%2d",(($4>>12)&3FFF), ($4)&3FFFF FI FI printf "\n" FI sa 1 $1 + 4 sa 2 $2 + 1 sa 3 $3 - 1 FI . ifdef strfiles em strfiles fi define strfiles a 0t150 if ((($1) == 0) | ((%v($1)) == 0)) exit else sp $1 if ((*(($1)+0t0))&0xFF) == 3 else do strfilelst u+0t5484 0 fi setarg 1 (*(($1)+0t380)) fi . ifdef strfilelst em strfilelst fi define strfilelst ai 0t178 if ((*$1) == 0) exit else IF ((*((*$1)+0t12))) != 0 IF (*((*((*$1)+0t12))+10)) != 0 stream *((*((*$1)+0t12))+10) FI FI sa 1 $1 + 4 sa 2 $2 + 1 FI . ifdef dstrcalls em dstrcalls fi define dstrcalls ai 0t126 if (*$1) == 0 exit else pf "%x %8x %y %8x %8x %x\n",$2,$1,*$1, *$1+4, *$1+8, *$1+C sa 1 ($1 + 0t48) sa 2 $2 + 1; FI . ifdef file em file fi define file "" 0t863 printf "ADDRESS RCNT TYPE/ADDR OFFSET FLAGS\n" do file_aux *file . ifdef file_aux em file_aux fi define file_aux a 0t1000 args 2 if $1 == 0 exit else printf "%8x %1x ",$1,((*(($1)+0t10))&0xFFFF) if (*(($1)+0t12)) != 0 sa 2 (*(($1)+0t12)) if (*(($2)+0t8)) == s5vnodeops printf "S5 " elseif (*(($2)+0t8)) == ufs_vnodeops printf "UFS " elseif (*(($2)+0t8)) == spec_vnodeops printf "SPEC" elseif (*(($2)+0t8)) == fifo_vnodeops printf "FIFO" elseif (*(($2)+0t8)) == prvnodeops printf "PROC" FI else printf " ? " fi printf "/%8x %6x ",(*(($1)+0t12)),(*(($1)+0t16)) printbits "read:write:ndelay:append:sync:raiosig::nonblock:creat:trunc:excl:noctty:async",((*(($1)+0t8))&0xFFFF) printf "\n" sa 1 (*(($1)+0t0)) fi . ifdef File em File fi define File a 0t863 printf "f_next %8x\n", (*(($1)+0t0)) printf "f_prev %8x\n", (*(($1)+0t4)) printf "f_flag %8x ", ((*(($1)+0t8))&0xFFFF) printbits "FREAD:FWRITE:FNDELAY:FAPPEND:FSYNC:FRAIOSIG:FNONBLOCK" ((*(($1)+0t8))&0xFFFF) printf "\nf_count %8x\n", ((*(($1)+0t10))&0xFFFF) printf "f_vnode %8x\n", (*(($1)+0t12)) printf "f_offset %8x\n", (*(($1)+0t16)) printf "f_cred %8x\n", (*(($1)+0t20)) printf "f_aiof %8x\n", (*(($1)+0t24)) printf "f_aiob %8x\n", (*(($1)+0t28)) printf "f_off %8x\n", ($1)+0t32 printf "f_slnk %8x\n", ($1)+0t32 printf "f_lck %8x\n", ($1)+0t36 printf "f_clcount %8x\n", (*(($1)+0t76)) printf "f_clwant %8x\n", (*(($1)+0t80)) printf "\nvnode\n" vnode (*(($1)+0t12)) printf "\nstream\n" IF (*((*(($1)+0t12))+10)) != 0 stream *((*(($1)+0t12))+10) FI printf "\ncred\n" cred (*(($1)+0t20)) . ifdef filen em filen fi define filen a 0t66 IF ($1 != 0) file *$1 FI sa 1 $1 + 4 IF ((*$1) == 0) exit FI . ifdef file+ em file+ fi define file+ a 0t47 IF ($1 != 0) file *$1 FI sa 1 $1 + 4 ec 1 nx. ifdef cred em cred fi define cred a 0t318 printf "cr_uid %5d cr_gid %5d cr_ruid %5d cr_rgid %5d\n", (*(($1)+0t4)), (*(($1)+0t8)), (*(($1)+0t12)), (*(($1)+0t16)) printf "cr_suid %5d cr_sgid %5d\n", (*(($1)+0t20)), (*(($1)+0t24)) printf "cr_ref %3x cr_ngroups %3x cr_groups %8x\n", ((*(($1)+0t0))&0xFFFF), ((*(($1)+0t2))&0xFFFF), *($1)+0t28 . ifdef qinit em qinit fi define qinit a 0t429 printf "qi_putp() %8x %y\n",(*(($1)+0t0)),(*(($1)+0t0)) printf "qi_srvp() %8x %y\n",(*(($1)+0t4)),(*(($1)+0t4)) printf "qi_qopen() %8x %y\n",(*(($1)+0t8)),(*(($1)+0t8)) printf "qi_qclose() %8x %y\n",(*(($1)+0t12)),(*(($1)+0t12)) printf "qi_qadmin() %8x %y\n",(*(($1)+0t16)),(*(($1)+0t16)) printf "qi_minfo %8x %y\n",(*(($1)+0t20)),(*(($1)+0t20)) printf "qi_mstat %8x %y\n",(*(($1)+0t24)),(*(($1)+0t24)) . ifdef moduleinfo em moduleinfo fi define moduleinfo a 0t286 printf "mi_idnum %8x\n",(*(($1)+0t0)) printf "mi_idname %8x",(*(($1)+0t4)) printf " %S\n",(*(($1)+0t4)) printf "mi_minpsz %8x\n",(*(($1)+0t8)) printf "mi_maxpsz %8x\n",(*(($1)+0t12)) printf "mi_hiwat %8x\n",(*(($1)+0t16)) printf "mi_lowat %8x\n",(*(($1)+0t20)) . ifdef streamtab em streamtab fi define streamtab a 0t174 printf "st_rdinit %8x\n",(*(($1)+0t0)) printf "st_wrinit %8x\n",(*(($1)+0t4)) printf "st_muxrinit %8x\n",(*(($1)+0t8)) printf "st_muxwinit %8x\n",(*(($1)+0t12)) . ifdef PID em PID fi define PID a 0t382 printf "pid_prinactive %8x\n",(*(($1)+0t0)) printf "pid_pgorphaned %8x\n",(*(($1)+0t4)) printf "pid_ref %8x\n",(*(($1)+0t8)) printf "pid_prslot %8x\n",(*(($1)+0t12)) printf "pid_id %8x\n",(*(($1)+0t16)) printf "pid_pglink %8x\n",(*(($1)+0t20)) printf "pid_link %8x\n",(*(($1)+0t24)) printf "pid_pad %8x\n",(*(($1)+0t28)) . ifdef stdata em stdata fi define stdata a 0t1116 printf "sd_wrq %8x\n",(*(($1)+0t0)) printf "sd_iocblk %8x\n",(*(($1)+0t4)) printf "sd_vnode %8x\n",(*(($1)+0t8)) printf "sd_strtab %8x\n",(*(($1)+0t12)) printf "sd_flag %8x\n",(*(($1)+0t16)) printf "sd_iocid %8x\n",(*(($1)+0t20)) printf "sd_iocwait %8x\n",((*(($1)+0t24))&0xFFFF) printf "sd_sidp %8x\n",(*(($1)+0t28)) printf "sd_pgidp %8x\n",(*(($1)+0t32)) printf "sd_wroff %8x\n",((*(($1)+0t36))&0xFFFF) printf "sd_rerror %8x\n",(*(($1)+0t40)) printf "sd_werror %8x\n",(*(($1)+0t44)) printf "sd_pushcnt %8x\n",(*(($1)+0t48)) printf "sd_sigflags %8x\n",(*(($1)+0t52)) printf "sd_siglist %8x\n",(*(($1)+0t56)) printf "sd_eventflags %8x\n",(*(($1)+0t60)) printf "sd_eventlist %8x\n",(*(($1)+0t64)) printf "sd_pollist %8x\n",($1)+0t68 printf "sd_mark %8x\n",(*(($1)+0t100)) printf "sd_closetime %8x\n",(*(($1)+0t104)) printf "sd_rtime %8x\n",(*(($1)+0t108)) printf "sd_stream_lckp %8x\n",(*(($1)+0t112)) .