ifdef as em as fi define as a 0t580 args 2 sa 2 $1+0t20 printf "as [%8x]:" ($1) if ((((*(($1)+0t0))&(0x1*0x1))/0x1) == 1 ) printf " LOCK" fi if ((((*(($1)+0t0))&(0x1*0x2))/0x2) == 1 ) printf " WANT" fi if ((((*(($1)+0t0))&(0x1*0x4))/0x4) == 1 ) printf " PAGLCK" fi printf " keepcnt %6d segs %8x seglast %8x", ((*(($1)+0t2))&0xFFFF), (*(($1)+0t4)), (*(($1)+0t8)) printf " sz %x rss %x\n", (*(($1)+0t12)), (*(($1)+0t16)) printf " hat: pts %8x ptlast %8x pdtp %8x cr3 %8x ref %d\n", (*(($2)+0t0)), (*(($2)+0t4)), (*(($2)+0t8)) (*(($2)+0t12)) (*(($2)+0t16)) . ifdef seg em seg fi define seg a 0t220 printf "%8x:" ($1) printf " base %8x size %x as %x\n", (*(($1)+0t4)), (*(($1)+0t8)), (*(($1)+0t12)) printf " next %x prev %x data %x\n", (*(($1)+0t16)), (*(($1)+0t20)), (*(($1)+0t28)) . ifdef segs em segs fi define segs aa 0t270 printf "%8x" ($1) printf " %8x %8x %5x %x %x", (*(($1)+0t4)), ((*(($1)+0t4))+(*(($1)+0t8))-1), (*(($1)+0t8)), (*(($1)+0t12)), (*(($1)+0t28)) if %v((*(($1)+0t4))) printf " %7x", %p((*(($1)+0t4))) fi pf "\n" setarg 1 (*(($1)+$2)) if $1 == _segs exit fi . ifdef segn em segn fi define segn a 0t110 set _segs ($1) printf " addr base end size as data physical\n" do segs ($1) 0t16 . ifdef segp em segp fi define segp a 0t69 set _segs ($1) do segs ($1) 0t20 . ifdef seg+ em seg+ fi define seg+ a 0t69 set _segs ($1) segs ($1) 0t20 sa 1 $1 + 0t32 ec 1 nx. ifdef hatmap em hatmap fi define hatmap a 0t700 args 2 if ($2 == 0t32) exit elseif ((*$1) != 0) pf "%3x ",$2 convmap (*$1) fi sa 1 $1 + 4 sa 2 $2 + 1 . ifdef hatmcp em hatmcp fi define hatmcp a 0t700 printf " mcp[%8x %8x %8x %8x %8x %8x %8x %8x]\n", *(($1)+0t0), *(($1)+0t4), *(($1)+0t8), *(($1)+0t12), *(($1)+0t16), *(($1)+0t20), *(($1)+0t24), *(($1)+0t28) printf " mcp[%8x %8x %8x %8x %8x %8x %8x %8x]\n", *(($1)+0t32), *(($1)+0t36), *(($1)+0t40), *(($1)+0t44), *(($1)+0t48), *(($1)+0t52), *(($1)+0t56), *(($1)+0t60) printf " mcp[%8x %8x %8x %8x %8x %8x %8x %8x]\n", *(($1)+0t64), *(($1)+0t68), *(($1)+0t72), *(($1)+0t76), *(($1)+0t80), *(($1)+0t84), *(($1)+0t88), *(($1)+0t92) printf " mcp[%8x %8x %8x %8x %8x %8x %8x %8x]\n", *(($1)+0t96), *(($1)+0t100), *(($1)+0t104), *(($1)+0t108), *(($1)+0t112), *(($1)+0t116), *(($1)+0t120), *(($1)+0t124) . ifdef hatpt em hatpt fi define hatpt a 0t394 printf "%8x: forw %x back %x next %x prev %x\n", ($1), (*(($1)+0t0)), (*(($1)+0t4)), (*(($1)+0t8)), (*(($1)+0t12)) printf " pde %x pdtep %x as %x aec %x locks %x pgtp %x\n", (*((($1)+0t16)+0t0)), (*(($1)+0t20)), (*(($1)+0t24)), ((*(($1)+0t28))&0xFFFF), ((*(($1)+0t30))&0xFFFF), (*(($1)+0t160)) hatmcp (($1)+0t32) do hatmap (($1)+0t32) . ifdef hatptn em hatptn fi define hatptn a 0t50 hatpt ($1) sa 1 (*(($1)+0t8)) ec 1 nx. ifdef hatptp em hatptp fi define hatptp a 0t50 hatpt ($1) sa 1 (*(($1)+0t12)) ec 1 nx. ifdef hatptf em hatptf fi define hatptf a 0t50 hatpt ($1) sa 1 (*(($1)+0t0)) ec 1 nx. ifdef hatptb em hatptb fi define hatptb a 0t50 hatpt ($1) sa 1 (*(($1)+0t4)) ec 1 nx. ifdef convmap em convmap fi define convmap a 0t275 args 6 sa 2 ($1>>2)&1F sa 3 $1&0xFFFFF000 sa 4 ($1>>7)&1F sa 3 $3+($4*4) sa 5 (*$3) sa 6 ($5)&0xFFFFFF80 sa 6 $6+($2*4) printf "mapping hat_mcpp +offset hat_epmc +offset pte \n" printf "%8x %8x %8x %8x %8x %8x\n",$1,$1&0xFFFFF000 ,$3,$5,$6,*$6 . ifdef hatconv em hatconv fi define hatconv a 0t275 args 5 sa 4 (%p($1)) sa 3 $1 sa 5 ($4 >> 0t12 )&0xFFFFF do find_page $5 (*pageahead) sa 4 (($1 >> 7)&1F) * 4 sa 1 $1&0xFFFFF000 sa 3 $5 - (*_page+0t8) sa 2 ($3+($3*8)) * 8 sa 3 $3 << 2 printf "%8x %8x %8x %8x\n",$1,$1+$4,*$1+$4, (*_page+10)+$3+$2 . ifdef find_page em find_page fi define find_page aa 0t82 if ($1 >= (*$2+0t8)) & ($1 <= (*$2+0t12)) set _page $2 exit fi sa 2 (*$2) . ifdef table em table fi define table a 0t20 do table_aux $1 0 . ifdef table_aux em table_aux fi define table_aux ai 0t130 if ($2 = 0t1023) exit fi if ((*$1) != 0) printf "dir: %4x address: %8x\n",($1&FFF), (*$1) fi sa 2 $2 + 1 sa 1 $1 + 4 . ifdef tablesz em tablesz fi define tablesz a 0t103 set TBLSZ 0 do tablesz_aux $1 0 printf "Table %8x Entries: %4x Size: %8x\n",$1, TBLSZ, TBLSZ*0t4096 . ifdef tablesz_aux em tablesz_aux fi define tablesz_aux ai 0t120 args 3 if ($2 = 0t1023) set TBLSZ $3 exit fi if ((*$1) != 0) sa 3 $3 + 1 fi sa 2 $2 + 1 sa 1 $1 + 4 . ifdef mem em mem fi define mem a 0t245 args 3 sp $1 proc $1 pf "\n" sa 2 (*(($1)+0t360)) vnode $2 pf "\n" sa 3 (*(($2)+0t20)) pages $3 pf "\n" sa 2 (*(($1)+0t92)) as $2 sa 3 $2 pf "\n" sa 2 (*(($2)+0t4)) segn $2 pf "\n" hatpt (*((($3)+0t20)+0t0)) . ifdef segmap em segmap fi define segmap a 0t715 args 4 segs $1 0t16 pf "\n" sa 2 (*(($1)+0t28)) if ((*(($2)+0t20)) != 0) pf "segvn_data anon_map **anon anon page mapping\n" pf "%8x ",$2 sa 3 (*(($2)+0t16)) sa 2 (*(($2)+0t20)) pf " %8x ",$2 sa 2 (*(($2)+0t8)) pf "%8x ",$2 sa 3 ($3*4) sa 4 ($2+$3) if ((*$4) != 0) pf "%8x ",*$4 sa 4 (*$4) pf "%8x ",*$4+0t4+0t0 sa 4 (*$4+0t4+0t0) pf "%8x \n\n",*(($4)+0t32) convmap *(($4)+0t32) fi else if ((*(($2)+0t8)) != 0) pf "segvn_data vnode page mapping\n" pf "%8x",$2 pf " %8x ",(*(($2)+0t8)) sa 2 (*(($2)+0t8)) pf " %8x",(*(($2)+0t20)) sa 2 (*(($2)+0t20)) sa 2 (*(($2)+0t32)) pf " %8x\n\n",$2 convmap $2 fi fi .