| define sctp_allep_locks |
| set $_inp=sctppcbinfo.listhead.lh_first |
| while ( $_inp != 0 ) |
| printf "inp 0x%x flags 0x%x, mtx 0x%x 0x%x 0x%x, solock 0x%x 0x%x 0x%x\n", $_inp, $_inp->sctp_flags, $_inp->inp_mtx.opaque[0], $_inp->inp_mtx.opaque[1], $_inp->inp_mtx.opaque[2], $_inp->ip_inp.inp.inpcb_mtx.opaque[0], $_inp->ip_inp.inp.inpcb_mtx.opaque[1], $_inp->ip_inp.inp.inpcb_mtx.opaque[2] |
| set $_inp=$_inp->sctp_list.le_next |
| end |
| end |
| document sctp_allep_locks |
| Show all SCTP endpoint locks for MacOS |
| end |
| |
| define sctp_allasoc_locks |
| set $_inp=sctppcbinfo.listhead.lh_first |
| while ( $_inp != 0 ) |
| set $_asoc=$_inp->sctp_asoc_list.lh_first |
| while ( $_asoc != 0 ) |
| printf "stcb 0x%x, state 0x%x, mtx 0x%x 0x%x 0x%x\n", $_asoc, $_asoc->asoc.state, $_asoc->tcb_mtx.opaque[0], $_asoc->tcb_mtx.opaque[1], $_asoc->tcb_mtx.opaque[2] |
| set $_asoc=$_asoc->sctp_tcblist.le_next |
| end |
| set $_inp=$_inp->sctp_list.le_next |
| end |
| end |
| document sctp_allasoc_locks |
| Show all SCTP association locks for MacOS |
| end |
| |
| |
| define sctp_heldlocks |
| printf "sctppcbinfo mtx 0x%x 0x%x 0x%x\n", sctppcbinfo.ipi_ep_mtx.opaque[0], sctppcbinfo.ipi_ep_mtx.opaque[1], sctppcbinfo.ipi_ep_mtx.opaque[2] |
| set $_inp=sctppcbinfo.listhead.lh_first |
| while ( $_inp != 0 ) |
| if ($_inp->inp_mtx.opaque[1] || $_inp->ip_inp.inp.inpcb_mtx.opaque[1]) |
| printf "inp 0x%x flags 0x%x, mtx 0x%x 0x%x 0x%x, solock 0x%x 0x%x 0x%x\n", $_inp, $_inp->sctp_flags, $_inp->inp_mtx.opaque[0], $_inp->inp_mtx.opaque[1], $_inp->inp_mtx.opaque[2], $_inp->ip_inp.inp.inpcb_mtx.opaque[0], $_inp->ip_inp.inp.inpcb_mtx.opaque[1], $_inp->ip_inp.inp.inpcb_mtx.opaque[2] |
| end |
| set $_asoc=$_inp->sctp_asoc_list.lh_first |
| while ( $_asoc != 0 ) |
| if ($_asoc->tcb_mtx.opaque[1]) |
| printf "stcb 0x%x, state 0x%x, mtx 0x%x 0x%x 0x%x\n", $_asoc, $_asoc->asoc.state, $_asoc->tcb_mtx.opaque[0], $_asoc->tcb_mtx.opaque[1], $_asoc->tcb_mtx.opaque[2] |
| end |
| set $_asoc=$_asoc->sctp_tcblist.le_next |
| end |
| set $_inp=$_inp->sctp_list.le_next |
| end |
| end |
| document sctp_heldlocks |
| Show all locks held for MacOS |
| end |